Nokioteca [Nokia] Forum: [m-shell] I Moduli .mm - Nokioteca [Nokia] Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[m-shell] I Moduli .mm Cerchiamo di capire come funzionano

#1 L   Nick_7 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 339
  • Iscritto: 20 novembre 2008
  • Località:Luna
  • Cellulare:Omnia HD
  • Firmware:I8910XXJB1

  Inviato 01 dicembre 2009 - 23:02

Beh credo che già solo il titolo di suo dica tutto... :P
0

#2 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 02 dicembre 2009 - 10:39

Visualizza MessaggiNick_7, il 01/12/2009 - 23:02, ha scritto:


Per comprendere il concetto di moduli, consiglio di verificare a quale dei due gruppi di persone si appartiene:
1° Gruppo.
____non si conosce il concetto di funzione, o di variabile locale/globale.

2° Gruppo
____(scrivendolo in programmatese) 2°Gruppo = not 1°Gruppo..
0

#3 L   Nick_7 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 339
  • Iscritto: 20 novembre 2008
  • Località:Luna
  • Cellulare:Omnia HD
  • Firmware:I8910XXJB1

Inviato 02 dicembre 2009 - 18:05

Diciamo che sono nel gruppo 1.5 che più o meno sa che cos'è una funzione ma non una variabile locale/globale :thumbs:
0

#4 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 03 dicembre 2009 - 00:21

Ok! Spiegazione per il primo gruppo:
I moduli sono programmi scritti in c++ oppure direttamente in mShell che permettono di estendere i comandi o funzioni
disponibili, o di aggiungere dati sotto forma di variabili.

I moduli sono sistemati in due tipi di directory:
Quelli scritti in c++ sono posizionati in directory non visibili ne (normalmente) modificabili dall'utente finale.
Questo tipo di moduli ne avrete letto di sicuro sul manuale sono graph,ui,time,array ecc.. differiscono da un modulo scritto in mShell per il fatto che non sono del testo ma sono del codice eseguibile.

Invece i moduli scritti con linguaggio mShell sono molto simili ai programmi sorgenti ma terminano con estensione (.mm) vanno posizionati generalmente nella stessa directory dove risiedono i vostri programmi (.m).
Comunque nel menu delle opzioni di mShell è possibile impostare una directory diversa.
Questi files possono essere editati e listati ma non possono essere eseguiti direttamente, per eseguirli bisogna richiamarli
tramite il comando use dal programma che state scrivendo.
Quando si incontra la riga di programma use nomemodulo nel vostro sorgente, mShell carica in memoria ed esegue il programma contenuto nel modulo.
Questo permette al resto del vostro sorgente di usare questi comandi come se fossero parte integrante di mShell.

Quello che distingue i comandi nativamente presenti da quelli aggiunti dai moduli, è l'obbligo di porre il nome
del modulo seguito da un punto prima del comando.
use graph;

graph.clear();

La funzione clear() che serve a pulire lo schermo grafico per poter essere usata (attivata) va preceduta
dal nome del modulo e da un punto graph.clear()

Il comando use permette di indicare il modulo e di impostare un abbreviazione (Alias) da poter usare in alternativa.
use graph as g;
g.clear();

In questo esempio la g.clear() e l'equivalete di graph.clear() si può usare indistintamente
tutti e due i modi nel programma. L'abbreviazione rende più facile, breve e comprensibile la scrittura/lettura di programmi.

la virgola permette di caricare piu moduli usando un solo comando use
use graph as g, ui, time as t, array;
Questa riga di codice attiva i moduli graph, ui, time, array assegnado a graph l'alias g e a time l'alias t .

Lo scopo dei moduli e duplice:
1) Economizzare la memoria (ram) utilizzata, si caricano solo i moduli (comandi) che servono.
2) Semplificare i programmi e ridurre gli errori di programmazione.

Ricordatevi che i comandi contenuti nei moduli diventano disponibili solo quando il modulo è richiamato in memoria.
g.clear();
use graph as g;

In questo esempio avrete dei seri problemi, state tentando di usere un comando non ancora caricato!.

Per il gruppo 1° E' tutto (almeno credo?).
Ho volutamente saltato la possibilità di attivare funzioni asincrone con i moduli da vedersi nel 2° Gruppo.
0

#5 L   Nick_7 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 339
  • Iscritto: 20 novembre 2008
  • Località:Luna
  • Cellulare:Omnia HD
  • Firmware:I8910XXJB1

Inviato 29 dicembre 2009 - 22:53

Che cosa sono le funzioni asincrone? :rolleyes:
Andando a intuito sono quelle che fanno più operazioni contemporaneamente come il multitasking per esempio, se così fosse forse si riuscirebbe a risolvere il mio problema con il touchscreen
Per visualizzare questo link registrati o esegui il log in.

Messaggio modificato da Nick_7 il 29 dicembre 2009 - 23:20

0

#6 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 30 dicembre 2009 - 11:46

Visualizza MessaggiNick_7, il 29/12/2009 - 22:53, ha scritto:

Che cosa sono le funzioni asincrone? <_<
Andando a intuito sono quelle che fanno più operazioni contemporaneamente come il multitasking per esempio, se così fosse forse si riuscirebbe a risolvere il mio problema con il touchscreen
Per visualizzare questo link registrati o esegui il log in.

Guarda quì:
Per visualizzare questo link registrati o esegui il log in.


Anche la seconda parte della trattazione sui moduli......mi sà che non riesco a finirla......

Chiunque se la sentisse di scrivere qualcosa farebbe un grande piacere agli adoratori di mShell!. :angel:
0

Condividi questa discussione:


Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione