
GUIDA ALLO SVILUPPO DI APPLICAZIONI
La seguente guida è ancora da completare, vuole essere soltanto una spinta per chi vorrebbe iniziare ma si scoraggia già all'inizio.
Chi volesse collaborare scrivendo spiegazioni su come compiere determinate operazioni può farlo, servirà d'aiuto per tutti coloro che vogliono programmare utilizzando questo linguaggio.
Hanno collaborato:
Mauro90
nokiomane
xMetallicax
ultimo aggiornamento: 11/06/2009,
- Attesa per il tocco dello schermo e estrazione delle coordinate del tocco
_________________________________________________
Nel tutorial, allo stato attuale, sono trattati i seguenti argomenti (oltre alle funzioni di base):
Aggiunta di un testo a un file IO
Acquisire immagini dalla fotocamera CAM
Apertura di un archivio .zip ZIP
Apertura di un file IO
Apertura di un'immagine GRAPH
Aprire un'applicazione/file APP
Attendere per la ricezione di un sms SMS
Attesa per il tocco dello schermo e estrazione delle coordinate del tocco UI
Attesa per la pressione di un tasto, riconoscimento del tasto premuto UI
Cambiare colore di riempimento GRAPH
Cambiare colore di scrittura GRAPH
Cambiare o ottenere il font utilizzato nel modulo graph GRAPH
Chiudere l'applicazione corrente PROC
Concatenare due o più array ARRAY
Connettersi a un server per la comunicazione TCP/IP. NET
Conoscere la lunghezza di un file audio AUDIO
Conoscere la posizione del file audio in esecuzione AUDIO
Copiare uno o più files FILES
Creazione di una lista UI
Creazione di una lista di elementi modificabili UI
Creazione di un menu UI
Creazione di un file IO
Disegnare una linea GRAPH
Disegnare un cerchio GRAPH
Disegnare un rettangolo GRAPH
Effettuare una chiamata PHONE
Elenco cartelle all'interno di una cartella FILES
Elenco files di una cartella FILES
Estrazione di un numero casuale MATH
Fare partire la canzone da un punto desiderato AUDIO
Ingrandire l'area del programma UI
Inserimento di una variabile UI
Inserimento di un messaggio UI
Inserire un testo GRAPH
Interrompere una chiamata PHONE
Inviare un sms SMS
Leggere una data linea IO
Leggere un sms ricevuto SMS
Lettura di un file per caratteri IO
Lettura di un file per linee IO
Ottenere il codice IMEI del cellulare GSM
Ottenere il colore di uno o più pixel GRAPH
Ottenere il livello del segnale per la rete corrente GSM
Ottenere la data e l'orario corrente TIME
Ottenere l'ID della cella nella quale ci troviamo GSM
Realizzare un'applicazione a tutto schermo GRAPH
Riprodurre un beep AUDIO
Riprodurre un file audio (mid, wav, mp3, ecc...) AUDIO
Salvare solo una porzione di quello che è disegnato GRAPH
Salvare tutto quello che è stato disegnato in un'immagine GRAPH
Sapere quali file sono presenti in un archivio .zip ZIP
Sapere se un file esiste FILES
Scattare e salvare una foto CAM
Scrittura su un file IO
Simulare la pressione di un tasto APP
Stoppare un file audio in riproduzione AUDIO
Tagliare un numero e tenere solo la parte intera MATH
Tagliare un numero e tenere solo la parte decimale MATH
Tagliare un numero e tenere tutta la parte intera e soltanto alcune cifre della parte decimale MATH
Tenere la luce accesa UI
Usare la vibrazione VIBRA
Volume della periferica audio AUDIO
_________________________________________________
INIZIO
Per iniziare a scrivere il codice dobbiamo, ovviamente, prima aprire mShell.
Una volta aperto clicchiamo col tasto di selezione sinistro e selezioniamo "New script".
Qui possiamo già scrivere il codice.
All'inizio del codice dobbiamo specificare di quali moduli faremo uso nella nostra applicazione; facciamo questo tramite l'istruzione use [modulo].
Un esempio, volendo creare un programma nel quale vogliamo fare uso di alcune immagini (anche immagini di design per abbellire il programma) dobbiamo fare uso del modulo GRAPH. Per avere la possibilità poi di gestire i tasti della tastiera del cellulare dovremo fare uso del modulo UI.
La nostra applicazione inizierà quindi con il codice use graph,ui.
Se dobbiamo fare uso di altri moduli basta separare questi tramite una virgola.
OPERAZIONI FONDAMENTALI
Addizione: x+y (somma di due numeri) (concatenazione di due stringhe)
Sottrazione: x-y (sottrazione di due numeri)
Moltiplicazione: x*y (prodotto di due numeri)
Divisione: x/y (quoziente di due numeri)
Resto: x%y (resto della divisione x/y)
Eguagliazione: x=y (x assume il valore di y)
Incremento 1: x++ (la variabile x viene incrementata di 1)
Incremento 2: x+=y (è uguale a scrivere x=x+y, a x viene sommato y)
Decremento 1: x-- (la variabile x viene decrementata di 1)
Decremento 2: x-=y (è uguale a scrivere x=x-y, a x viene sottratto y)
_________________________________________________
CICLI
If : esegue le istruzioni finché la condizione è vera
if condizione/i then
istruzioni;
end;
If-Else: esegue le istruzioni che seguono l'If se la condizione è vera, altrimenti esegue le istruzioni che seguono l'Else
if condizione/i then
istruzioni;
else
istruzioni;
end;
While: esegue le istruzioni finché la condizione è vera
while condizione/i do
istruzioni;
end;
Do-Until: esegue almeno una volta le istruzioni che seguono il Do, e continua a eseguirle se la condizione che segue l'Until è vera
do
istruzioni;
until condizione/i;
For: utile se si deve eseguire una certa operazione un certo numero di volte
for i=0 to 100 by 1 do
istruzioni;
end;
i parte da 0 e finchè non arriva a 100 vengono eseguite le istruzioni. i viene ogni volta incrementato di 1 (by 1).
(Solo in questo caso. i potrebbe partire da un qualsiasi numero e arrivare a un qualsiasi altro numero)
_________________________________________________
CONDIZIONI: (le seguenti condizioni vanno usate come condizioni per If, Else e While)
x=y (x è uguale a y)
x#y (x è diverso da y)
x<y (x è minore di y)
x<=y (x è minore o uguale a y)
x>y (x è maggiore di y)
x>=y (x è maggiore o uguale a y)
PIÙ CONDIZIONI
condizione1 or condizione2 (è vera la condizione1 o è vera la condizione2)
condizione1 and condizione2 (la condizione1 e la condizione2 devono essere tutt'e due vere)
_________________________________________________
FUNZIONI FUORI DAI MODULI:
cls() - pulisce lo schermo.
a=len("parola") - riporta in a la lunghezza della parola scritta tra virgolette.
a=len(array) - riporta in a la lunghezza dell'array scritto tra parentesi.
a=lower("PAROLA") - a assumerà tutte le lettere della parola scritta tra parentesi, soltanto che queste saranno tutte lettere minuscole.
a=num(numero) - utile se la variabile numero non viene ad esempio riconosciuta come numero ma come stringa. In questo modo si effettua la conversione da una stringa a un numero. a sarà quindi il nostro numero.
sleep(numsecondi) - tra parentesi va scritto il numero, in millisecondi, per cui il programma si deve feramre.
a=str(numero) - serve a convertire un numero in stringa formato testuale in modo da poterlo stampare con funzioni le quali vogliono come parametri delle stringhe.
a=substr(vecchiastringa,inizio,lunghezza) - permette di tagliare la stringa vecchiastringa a partire dal carattere inizio per un numero di caratteri uguale a lunghezza. I caratteri "tagliati" andranno a finire nella variabile a.
a=upper("parola") - a assumerà tutte le lettere della parola scritta tra parentesi, soltanto che queste saranno tutte lettere maiuscole.
_________________________________________________
USI VARI DELLE FUNZIONI DEI MODULI:
ricordatevi che per utilizzare le funzioni di ogni modulo dovete specificare, all'inizio del programma, che avete intenzione di usare quel determinato modulo.
Scriverete quindi per esempio: use graph
per utilizzare più moduli nello stesso programma basta scrivere per esempio: use graph,math,ui
AGENDA
-
APP
Aprire un'applicazione/file
app.open("percorso_del_file");
Scrivendo il percorso del file tra virgolette verrà aperta l'applicazione. Per i programmi/giochi è necessario scrivere il percorso del file APP che si trova in C:\SYSTEM\APPS\ o in E:\SYSTEM\APPS\. La funzione può essere usata anche per aprire file che non siano applicazioni; in quel caso verrà aperto automaticamente il programma a cui è associata l'estensione del file.
Simulare la pressione di un tasto
ui.keys(true);
app.key([53,-53])
Dichiariamo prima gli interessi all'uso degli eventi-tastiera tramite la funzione ui.keys().
L'esempio mostra come simulare la pressione di un qualsiasi tasto (in questo caso il tasto 5).
Alla funzione app.key() passiamo come parametri i codici dei tasti da simulare. Il valore positivo indica il tasto premuto, il valore negativo indica il tasto rilasciato. Per simulare altri tasti basta scrivere sempre nello stesso array i codici corrispondenti.
Elenco completo dei tasti con relativo codice tastiera:
joystick sinistra: 14
joystick destra: 15
joystick sopra: 16
joystick sotto: 17
pressione joystick: 167
matita: 18
C: 1
0: 48
1: 49
2: 50
3: 51
4: 52
5: 53
6: 54
7: 55
8: 56
9: 57
*: 42
#: 127
selezione sinistro: 164
selezione destro: 165
spegnimento: 166
blocca tastiera: 169
verde: 196
rosso: 197
menu: 180
ARRAY
Concatenare due o più array.
Se abbiamo due array e li vogliamo concatenare basta usare la funzione array.concat()
ad esempio abbiamo due array:
a=["mela","pera"];
b=["ciliegia","banana"]
c=array.concat(a,b )
print c
-->[mela,pera,ciliegia,banana]
AUDIO
Conoscere la lunghezza di un file audio.
audio.open("percorso_del_file");
a=audio.len();
Con la prima istruzione apriamo il file audio di cui vogliamo conoscere la lunghezza.
Con la seconda nella variabile a viene allocata la lunghezza in millisecondi del file audio
Conoscere la posizione del file audio in esecuzione.
audio.open("percorso_del_file");
a=audio.pos();
Con la prima istruzione apriamo il file audio sul quale vogliamo lavorare.
Con la seconda nella variabile a viene allocata la posizione in millisecondi del file audio in esecuzione, che ovviamente se prima non avviaremo con la funzione audio.play() ritornerà il valore 0.
Fare partire la canzone da un punto desiderato.
audio.open("percorso_del_file");
audio.pos(10000);
audio.play();
while audio.busy() do end;
Se non si vuole eseguire un brano dall' inizio ma ad esempio da 10 secondi, apriamo prima il file. Prima di avviarlo con la funzione audio.play() decidiamo da quanti millisecondi partendo dall'inizio deve suonare la canzone. Dopo ciò riproduciamo il file come spiegato sotto.
Riprodurre un beep
audio.beep(frequenza,millisec);
while audio.busy() do end;
Con questa funzione possiamo far riprodurre al cellulare un determinato suono alla frequenza voluta, per il tempo che desideriamo. Tra parentesi dobbiamo scrivere due numeri: la frequenza del suono da riprodurre e il tempo (espresso in millisecondi) per il quale dovrà essere riprodotto il suono.
Dopo la funzione audio.beep() dobbiamo tenere il cellulare impegnato a fare qualcosa (anche a fare "niente", come nel codice di cui sopra), in questo caso con while audio.busy() do end;, che significa che il cellulare resta impegnato a fare "niente" intanto che l'audio è impegnato (la funzione audio.busy() ci dice se l'audio è o non è impegnato).
Riprodurre un file audio (mid, wav, mp3, ecc...)
audio.play("percoso_del_file");
while audio.busy() do end;
Per riprodurre il suono usiamo la funzione audio.play(). Tra le parentesi scriviamo, dentro virgolette, il percorso del nome del file da aprire. I file che possono essere riprodotti sono quelli che può leggere il cellulare. Ad esempio il 6600 di suo non può aprire files mp3.
Dopo la funzione audio.play() dobbiamo tenere il cellulare impegnato a fare qualcosa (anche a fare "niente", come nel codice di cui sopra), in questo caso con while audio.busy() do end;, che significa che il cellulare resta impegnato a fare "niente" intanto che l'audio è impegnato (la funzione audio.busy() ci dice se l'audio è o non è impegnato).
Stoppare un file audio in riproduzione.
audio.stop();
Per fermare un file audio in riproduzione basta questa semplicissima funzione.
Volume della periferica audio.
audio.volume(volume);
Questa funzione serve per regolare il volume dell'audio che verrà riprodotto con il programma. Il volume desiderato va scritto tra le parentesi della funzione, ricordando che il volume MAX=100 e il volume MIN=0.
BIGINT
-
BT
-
CAM
Acquisire immagini dalla fotocamera.
cam.on(1);
while true do
a=cam.take();
graph.put(0,0,a);
graph.show();
end
Utilizzando la funzione cam.take() è necessario utilizzare anche il modulo graph. Eseguendo questo codice verrà mostrato in alto a sinistra sullo schermo la sequenza delle immagini riprese dalla fotocamera con una risoluzione di 160x120 (questo perchè alla funzione cam.on() abbiamo passato come parametro il valore 1). Le immagini vengono progressivamente archiviate nella variabile a, tramite la funzione graph.put() posizioniamo queste alle coordinate x=0 e y=0 (l'angolo in alto a sinistra) e tramite la funzione graph.show() mandiamo ripetutamente le immagini a video.
Scattare e salvare una foto
graph.size(640,480); //nel caso del Nokia 6600
cam.on(0);
a=cam.take();
graph.put(0,0,a);
graph.save("e:\\immagine.jpg");
E' sempre la funzione cam.take() che permette di acquisire foto. A differenza del punto Acquisire immagini dalla fotocamera in questo caso la dimensione dell'immagine che verrà scattata non sarà di 160x120 bensì di 640x480 (nel caso del Nokia 6600) in quanto alla funzione cam.on() abbiamo passato stavolta il parametro 0. Una volta acquisita l'immagine e salvata questa nell'oggetto a poniamo questa immagine nello spazio riservato alla grafica (senza però necessariamente mandarla a video). Direttamente salviamo l'immagine alla destinazione voluta tramite la funzione graph.save().
Messaggio modificato da masmil1988 il 24 ottobre 2009 - 14:16

Aiuto




















Pubblicità