Programmate in Python e non sapete come creare un file .deb per la vostra distro Debian (o derivate come Ubuntu)? La soluzione è semplice e non serve molto per creare il vostro deb da usare oppure da condividere su internet per tutti i debianizzati.
Per prima cosa create una cartella che conterrà tutti i dati per creare un deb. La cartella (preferibilmente) viene rinominata in questo modo: <nome_programma>_<versione>_<architetture_supportate>. Per esempio creiamo la cartella “prova_0.1_all” in cui all indica il fatto che il programma è compatibile sia con architetture 32 bit o 64 bit.
All’interno della cartella appena creata bisognerà crearne 2: “DEBIAN” e “usr“.
Analizziamole separatamente:
In “DEBIAN” andrà inserito un file dal nome “control”, che serve come preview quando si installa il pacchetto, così fatto (con # indico i commenti che NON andranno inseriti nel file). Il nome inserito come Package sarà il nome del pacchetto installato. Scarica l’esempio di file control
In “usr” vanno create altre 2 cartelle: “bin” e “share”.
Analizziamole separatamente:
In “bin” va messo un file dal nome “prova” (prova è il nome del programma) che andrà reso eseguibile e conterrà le seguenti 3 righe:
#!/bin/bash
cd /usr/share/prova #prova è il nome del programma
env python provaMain.py #provaMain.py è la classe main del programma prova
In “share” andranno messe 3 cartelle: “applications”,”doc”,”prova”. Le 3 cartelle non sono obbligatorie: potete mettere in questa cartella direttamente i file .py del programma oppure potrete aggiungere altre cartelle usate dal programma stesso. “applications” conterrà il file che indica dove posizionare il programma nel menù del sistema operativo, “doc” contiene i file per la documentazione, “prova” è la cartella contenente tutti i file del programma Python.
In questa breve guida spiegheremo solo cosa mettere nella cartella “applications” perchè le altre 2 sono ovvie nei contenuti.
In “applications” andrà messo il file “prova.desktop” (prova è il nome del programma) che indicherà dove mettere il programma nel menù del sistema. Scarica l’esempio di file prova.desktop.
Una volta creato sarà possibile modificarlo solo tramite terminale con il comando (da gnome): “sudo gedit <percorso>/prova.desktop”.
Create le cartelle e i file è ora di creare il file deb con il comando da terminale “fakeroot dpkg -b <percorso>/prova_0.1_all“
Questa è una guida molto semplice e sommaria per capire come creare un file .deb da un programma Python. Se avete problemi lasciate pure commenti.
Vi lascio un link al piccolo programma che ho realizzato con questo procedimento che potrà esservi utile per capire il funzionamento della guida. Scarica il programma come aiuto alla guida.
Far funzionare arduino con ubuntu è molto semplice, basta installare il pacchetto librtx-java che sarebbe la JRE della sun e il compilatore gcc con le libc per programmare il nostro microcontrollore.
Prima di tutto fate un sudoapt-get update per essere sicuri di installare le ultime versioni di tutti i seguenti programmi. Successivamente nel terminale scrivete
adesso sarete più o meno in questa situazione entrando nella cartella dell' ide
Cliccando sull ide vi comparirà questa finestra:
Eseguitelo e se tutto è andato bene vi comparirà l IDE.
Collegate la vostra scheda e dopo aver selezionato la scheda giusta sotto Tools->board e la porta com giusta sotto Tools->Serial Port provate a caricare lo sketch Blink.
Se tutto sarà andato a buon fine allora potrete usare il vostro ide tranquillamente.
Aprire tutte le volte l'Ide entrando nella cartella HOME e premendo sempre esegui è di una noia mortale, allora come crearsi un lanciatore? Semplicissimo.
Per creare un lanciatore arduino su un pannello dovrete cliccare col sinistro sul pannello, poi premete aggiungi al pannello e vi si aprirà questa schermata.
Premete Lanciatore applicazione personalizzato, poi vi si aprirà questa finestrina. Cliccate su esplora e si aprirà la HOME. In home entrate nella cartella in cui è contenuto l IDE e selezionate il File Arduino.
Come Nome mettete Arduino-xxxx dove xxxx sta per la versione, il commento è facoltativo. Per avere l un immagine bellina del lanciatore potrete utilizzarte questa.
Cliccateci sopra e si aprirà in un'altra pagina, poi la salvate con nome nella cartella di arduino in home e la potrete utilizzare come icona del vostro lanciatore.
Per iniziare lo sviluppo in python sui dispositivi mobili dovrete scaricare il compilatore python per il vostro dispositivo all’indirizzo: pys60 prelevate il file .sis e lo installate.
Adesso dovete scegliere se installare python anche sul pc e scrivere gli script e provarli tramite l’emulatore sdk oppure utilizzare il compilatore python installato sul vostro cellulare sfruttando la connessione bluetooth,vediamo queste due soluzioni in dettaglio.
SFRUTTARE LA CONNESSIONE BLUETOOTH:
Creiamo una connessione con Hyper Terminal (Start-Programmi-Accessori-Comunicazioni),digitiamo il nome da dare alla connessione e la COM per la connessione,poi apriamo python nel nostro dispositivo andiamo su Bluetooth console,other e selezioniamo la connessione.
Se abbiamo eseguito tutto dovremmo trovarci con una schermata di questo tipo:
Potete vedere il funzionamento tramite questo video ma me realizzato:
UTILIZZARE EMULATORE:
Se invece vogliamo scrivere gli script e provarli nel computer dobbiamo scaricare python per il nostro computer ad esempio Active Python e scaricare l’ emulatore .
Per eseguire l’emulatore dobbiamo aprire l’eseguibile EPOC32.exe che si trova nella cartella dell’emulatore.
2.Costrutti condizionali
Tramite le strutture di controllo possiamo rendere le nostre applicazioni più “dinamiche” nel senso che se si verifica una certa condizione potremmo ottenere un certo output rispetto che un’altro.
In python come fino ad adesso avete potuto vedere non ci sono punti e vigola da mettere alla fine di ogni istruzione,variabili da dichiarare prima e cosi via,l’unica attenzione che dovete avere è l’indentazione che a differenza degli altri linguaggi fa proprio parte del linguaggio,cioè una volta verificata una condizione vengono eseguite le istruzioni che sono indentate sotto la condizione.
Passiamo a presentare il primo…
-WHILE:
while(condizione):
istruzione 1
istruzione 2
istruzione 3
….
….
istruzione n
Affinchè verrà soddisfatta la condizione del while verranno eseguite le istruzioni 1 e 2 , appena la condizione del while non verrà soddisfatta verrà eseguita l’istruzione 3 e l’esecuzione del programma continuerà ad eseguire le successive istruzioni(se ve ne sono).
Esempio:
a=0
while (a
Quindi viene inizializzata la variabile a al valore zero,quindi fino a che la variabile a è minore o uguale a 10 stampa il valore di a e la incrementa di 1 appena il valore di a è maggiore di 10 non vengo eseguite le condizioni print a e a=a+1 ma viene eseguita print “la variabile a è maggiore di 10, a=”,a
Altro esempio:
a=1
print “Adesso a=”,a
while (a!=0): #il simbolo != significa “diverso”
a=input(”Inserisci un numero,digita 0 per terminare:”)
print “Adesso a=”,a
Inizializza la variabile a ad 1 e stampa nel video il suo valore,poi entra nella condizione del while e permette all’utente d’inserire un valore alla variabile a e lo stampa a video e ripete queste due istruzioni fino a quando l’utente non digita il valore zero (cioè fino a quando a non è uguale a zero).
-IF:
if (condizione):
istruzione1
else:
istruzione2
Se è verificata la condizione allora viene eseguita l’istruzione1,altrimenti(else) viene eseguita l’istruzione2.
Vediamo un’esempio:
a=input(”Inserisci un valore:”)
if (a>=5):
print “il valore della variabile è maggiore o uguale a 5, a=”,a
else:
print “il valore della variabile è minore di 5, a=”,a
Possiamo avere un’altra struttura di if :
if(condizione a):
istruzione1
elsif (condizione b):
istruzione2
else:
istruzione3
Se è verificata la condizione a dell’if viene eseguita l’istruzione1, altrimenti se(elsif) è verificata la condizione b viene eseguita l’istruzione2,altrimenti viene eseguita l’istruzione3
Eccovi un’esempio:
a=input(”Inserisci un valore:”)
if (a=9):
print “il valore di a è compreso tra 4 e 9″
else:
print “il valore di a è maggiore o uguale a 10″
3.Le liste
La lista può essere pensata come una variabile che può contenere più di un valore,anche di tipo diverso,vediamo come si crea: nomelista=[’elemento0′,’elemento1′,elemento2,’elemento3′,elemento4]
Gli elementi 0,1,3 sono di tipo stringa(infatti sono tra le virgolette),mentre gli elementi 2,4 sono di tipo numerico.
All’interno della lista gli elementi vengono “indicizzati” , infatti e vengono contati a partire da zero,quindi: lunghezza_lista=(numero elementi-1)
Se vogliamo sapere che elemento abbiamo in una determinata posizione della lista ci basta scrivere: nomelista[posizione]
Esempio:
lista=[’patate’,'cipolle’,2,’mele’,69,’pesche’]
print lista[1]
print lista[4]
Otterremo come output:
cipolle
69
Se invece vogliamo sapere in che posizione si trova un certo elemento della lista scriviamo: nomelista.index(nome_elemento)
Esempio:
lista=[’patate’,'cipolle’,2,’mele’,69,’pesche’]
print lista.index(’cipolle’)
L’output sarà:
1
Per cancellare un’elemento dalla lista scriviamo: del nomelista(posizione_elemento)
Esempio:
lista=[’patate’,'cipolle’,2,’mele’,69,’pesche’]
del lista(1)
in questo modo cancelleremo la parola “cipolle”
Riepilogando i comandi da potere usare sulle liste sono:
len(nome_lista) –> restituisce la lunghezza della lista
nome_lista.index(nome_elemento)—>restituisce la posizione dell’elemento
nome_lista.append(elemento)–>inserisce un nuovo elemento nella lista
nome_lista.sort()–>ordina la lista
del nome_lista(posizione)–>cancella l’elemento nella posizione
elemento in nome_lista–>restituisce true se l’elemento è nella lista
nome_lista=range(valore)–>la lista conterrà gli elementi che vanno da 0 a valore
nome_lista=range(valore1,valore2) –>la lista conterrà gli elementi compresi tra valore1 e valore2
TUPLE:
Le tuple sono delle liste dove gli elementi non si possono modificare,esse si dichiarano in questo modo: nome_tupla=(’elemento1′,’elemento2′,’elemento3′)
4.I dizionari
Adesso passiamo ad esaminare una delle strutture più potenti di Python,i dizionari.
I dizionari sono formati da parole chiavi e valori,ad ogni parola chiave corrisponde un valore che può essere di tipo numerico,stringa,lista.
Possiamo dire che i dizionari sono una “particolare” lista ,solo che gli elementi anziché essere indicizzati mediante un indice numerico,gli elementi vengono identificati da una chiave: chiave1–>elemento1
chiave2–>elemento2
Eccovi i comandi che si usano sui dizionari:
dizionario={’A’:’Alberto’,’B’:’Bernardo’,’C’:’Claudia’,’D’:’Dora’} print dizionario #stampa tutto il dizionario (chiavi e valori) print dizionario.values() #stampa solo i valori print dizionario.keys() #stampa solo le chiavi print len(dizionario) #restituisce la lunghezza print dizionario.has_key(’A’) #restituisce TRUE se la chiave esiste,FALSE altrimenti print dizionario.has_key(’Bernardo’) #restituisce FALSE perchè Bernardo è un valore e no una chiave
5.Modulo Appuifw
Il modulo appuifw è di uno di quei moduli che utilizzeremo in quasi tutte le nostre applicazioni.
Con esso possiamo avvisare l’utente tramite delle note o possiamo chiedere l’inserimento di dati,vediamo come funziona.
Per prima vediamo inserimento dei dati che possono essere:testo,numero,data,ora,password,domanda.
Oggi impariamo ad usare al meglio le stringhe che come ogni altro elemento in Python è in oggetto,quindi ha dei metodi che ne facilitano l’utilizzo.
I caratteri della stringa vengono indicizzati da 0 ad (n-1).
-Lunghezza:
supponiamo di avere una stringa(frase): frase =’’supercalifragilissichespiralitoso”
se vogliamo sapere la lunghezza della stringa,basta scrivere >>>len(frase)
>>>33
-Lo slicing:
Tramite lo slicing possiamo estrapolare dalla stringa una parte di essa,ad esempio >>>frase[:10] #stampa i primi 10 caratteri
>>>supercalif
>>>frase[-10:] #stampa gli ultimi 10 caratteri
>>>piralitoso
>>>frase[2:8] #stampa dal terzo carattere al numero 8
>>>percal
>>>frase[::10] #stampa ogni 10 caratteri
>>>srh
7.Modulo Sysinfo
Adesso presenteremo il modulo sysinfo che ci fornisce le informazioni del dispositivo dove viene eseguita l’applicazione.
Innanzitutto importiamo il modulo con la sintassi import sysinfo .
1.Per avere lo stato della batteria: >>>sysinfo.battery() #ci restituirà un valore compreso tra 0-7
2.Per sapere la risoluzione in pixels del nostro schermo: >>>sysinfo.display_pixels()
3.Ci restituisce la quantità di memoria libera: >>>sysinfo.free_drivespace()
4.Ci restituisce la quantità di ram libera: >>>sysinfo.free_ram()
5.Ci restituisce la ram totale: >>>sysinfo.total_ram()
6.Ci restituisce la rom totale: >>>sysinfo.total_rom()
7.Per sapere l’imei del dispositivo: >>>sysinfo.imei()
8.Restituisce la versione del sistema operativo: >>>sysinfo.os_version()
9.Tipo di suoneria impostato: >>>sysinfo.ring_type()
10.Restituisce il livello del segnale: >>>sysinfo.signal() #valore da 0 a 7
8.Modulo e32
1.Conoscere i drive del nostro dispositivo: >>>e32.drive_list() #restituisce una lista
2.Per conoscere la versione installata di python: >>>e32.pys60_version
3.Per conoscere la versione del s.o: >>>e32.s60_version_info
#restituisce una tupla con due valori
(1,2) per s60 prima edizione
(2,0) per s60 seconda edizione
(2,6) per s60 seconda edizione Feature Pack 2
4.Per “addormentare” l’applicazione un certo numero di secondi: >>>e32.ao_sleep(2) #addormenta il programma per 2 secondi
5.Per aprire un’applicazione: >>>e32.start_exe(NomeFile,Comando)
6.Per copiare un file: >>>e32.file_copy(Path di arrivo,Path sorgente)
Quando si effettua uno sketch con arduino che invia/riceve dati verso/dalla seriale è necessario un programma che recepisca o mi permetta di scrivere dati sulla porta seriale. Per effettuare i test solitamente si utilizza il monitor dell'IDE ma se si vuole automatizzare qualche passaggio o se si vuole rendere indipendente lo sketch è necessario "captare" le informazioni che transitano sulla seriale ed eventualmente rispondere.
Molti programmi hanno una libreria che permette di dialogare con la seriale.
In questo articolo vi parlerò con pyserial la libreria per python che comunica con la seriale.
pyserial
Si presuppone che sulla vostra macchina sia installato python.
Personalmente mi trovo bene con la versione 2.5
La pagina principale del progetto è http://pyserial.sourceforge.net/
Potete scaricare la libreria da questa pagina: http://sourceforge.net/projects/pyserial/files/ e diversi esempi qui http://pyserial.sourceforge.net/shortintro.html
Pyserial e Arduino
A questo punto vi voglio presentare una piccola parte di uno programma che ho fatto ultimamente in python.
L'idea è quella di recepire delle stringhe inviate da Arduino e in base a ciò che c'è scritto agire in diversi modi con il sistema operativo.
A questo scopo, dopo aver importato la libreria:
import serial
dopo aver inizializzato la seriale con una velocità di 9600 baud:
s=serial.Serial(1)
Su windows sarebbe COM1 mentre su Linux la /dev/ttyUSB1
Si può passare ad un ciclo che legge dalla seriale:
line=s.readline()
A questo punto il programma completo anche se depurato delle parti necessarie a me per interagire con il sistema operativo risulta molto semplicemente come segue:
import serial s=serial.Serial(1)
while(1): line=s.readline()
# interazioni con la variabile s
Definizione “lampo”: Python di per sè è un linguaggio di programmazione, molto semplice rispetto al nativo linguaggio di programmazione C++ per Symbian OS e molto più accessibile, data la diffusione e disponibilità delle librerie, come fosse un progetto Open Source.
Detto ciò possiamo brevemente definire che le applicazioni destinate a dispositivi Symbian S60, possono essere sviluppate in:
C++, linguaggio nativo. Vengono rilasciati per l’utente finale pacchetti d’installazione .sis.
Java. Vengono rilasciati per l’utente finale pacchetti d’installazione .jar. Symbian OS ha il supporto per la piattaforma Java, nel caso specifico mobile, Java Micro Edition.
Python. Anche per le applicazioni sviluppate in Python vengono spesso rilasciati pacchetti d’installazione .sis per facilitare l’utente finale. Tuttavia, poichè funzionino, occorre installare il supporto per Python, ovvero il cosiddetto interprete Python for S60 o PyS60 che Symbian OS non ha nativamente. Ripeto che, per facilitare l’utente finale, anche le applicazioni sviluppate in python vengono impacchettate come dei .sis, altrimenti avremmo dei .py, ovvero degli script da far “girare” attraverso la ScriptShell, definibile allora come la componente che interpreta le linee di comando.
Symbian S60 1st Edition (Symbian OS v6.1)
7650, N-Gage, N-Gage QD, 3650, 3620, 3660, 3600 Symbian S60 2nd Edition Feature Pack 1 (Symbian OS v7.0s)
6600, 6620, 3230, 6670, 6260, 7610 Symbian S60 2nd Edition Feature Pack 2 (Symbian OS v8.0a)
6630, 6680, 6682, 6681 Symbian S60 2nd Edition Feature Pack 3 (Symbian OS v8.1a)
N70, N90, N72 Symbian S60 3rd Edition (Symbian OS v9.1)
N80, N71, N91, N92, N73, N93, E62, E50, E60, E70, 5500, 3250, N75, N93i, N77, E61i, E65 Symbian S60 3rd Edition Feature Pack 1 (Symbian OS v9.2)
N95, 6290, N76, 6110, E90, 5700, 6120, 6121, N81, N81 8GB, N95 8GB, E51, N82, 6124, E66, E71, E63 Symbian S60 3rd Edition Feature Pack 2 (Symbian OS v9.3)
6210, 6220, N78, N96, 6650, 5320, N79, N85, 5630 Symbian S60 5th Edition (Symbian OS v9.4) la piattaforma touch screen
5800 XpressMusic, N97 Cos’è Python: è un linguaggio di programmazione semplice e dinamico dotato di ampie librerie standard e che si integra fortemente con altri linguaggi e strumenti di programmazione. Per questo può essere utilizzato per lo sviluppo di vari software tra cui applicazioni destinate ai dispositivi S60. Il tutto racchiuso in un progetto Open Source, dunque ampio l’interesse sia da parte di programmatori amatoriali, data la semplicità di questo linguaggio di programmazione, che da parte dell’utente finale data la possibilità di usufruire di applicazioni spesso molto interessanti in maniera del tutto gratuita. PyS60 (Python for S60) è l’interprete Python per i dispositivi Symbian S60. Oltre alle caratteristiche standard del linguaggio Python, offre un accesso diretto alle caratteristiche software degli smartphone come otocamera, contatti, calendario, audio video, protocollo TCP/IP, funzioni di telefonia.
Per utlizzare applicazioni scritte in Python su un dispositivo S60 occorre aver installato PythonForS60 (PyS60), inteso come system runtime la cui definizione stà in quanto descritto prima per l’interprete (un software che fornisce i servizi necessari all’esecuzione di un programma) e la relativa SciptShell. Python Script Shell è un ambiente di lavoro per le linee di comando con la quale si possono eseguire degli script. Anche se è opportuno installarla, a meno che non siate degli informatici esperti non la utilizzerete mai.
Versione Beta
L’ ultima versione beta per l’interprete e la relativa ScriptShell di Python for S60, destinata all’utente finale intento ad utilizzare applicazioni scritte in Python sul proprio dispositivo, è la 1.9.7.
Riassunto delle puntate precedenti
Si parte dalla release beta 1.9.0. Di qui si susseguiranno una serie di ulteriori versioni beta 1.9.x, il cui sviluppo finale porterà alla nuova versione definitiva di Python for S60, la 2.0. 1.9.0: ora l’applicazione si basa su Python 2.5.4, con disposnibilità di più moduli e dunque maggiori opportunità per gli sviluppatori. Aggiunto anche il supporto per la piattaforma 5th edition. 1.9.1: migliorato il supporto per la piattaforma 5th edition. 1.9.2: è stato migliorato il supporto per i sensori, per un migliore accesso ai sensori dei dispositivi il cui funzionamento si basa su librerie S60 Sensor Framework (Es. accelerometro 3rd edition FP2 e 5th edition). 1.9.3: il supporto touch screen è stato aggiunto agli oggetti Canvas. Praticamente immagini cursori e altri elementi grafici riconoscono l’imput tocco. Ora anche altri elementi User Interface come testi, listbox, moduli (application manager, calendario, contatti, messaggistica, gestione multimediale, log, ecc), funzionano a dovere su interfaccia touch screen. 1.9.4: Nokia ha signato un unico pacchetto software installabile su tutti i dispositivi S60 3rd e 5th edition. Nuove funzionalità e miglioramenti in stabilità, sono state aggiunte Nuove API (Application Programming Interface, set di istruzioni che permettono al programmatore di aggregarsi con il software ad Hardware o livelli di software superiore, presenti in un sistema), novità per quel ch riguarda il pacchetto d’installazione, ScriptShell compatibile con l’interfaccia touch screen. 1.9.5: minor update, fondamentalmente è stata aumentata la heap-size di default per le applicazioni in Python, da 100k,4M a 4k,1M; un’opzione “Continue with missing dependencies”, è stata implementata nel packaging tool. Abilitando questa opzione, le dipendenze perse verranno mostrate come pericoli e si continuerà con la generazione del SIS. Ulteriormente sono stati corretti alcuni bug. 1.9.6: rappresenta un minor update ricco di bugfix e una nuova caratteristica: un D-pad virtuale che compare sul fondo dello schermo dei dispositivi touch screen. E’ un’impostazione di default che disabilita, in questa versione, la visualizzazione a schermo intero delle applicazioni. Tale carattersistica è supportata solo nella modalità di orientamento display in landscape. 1.9.7: Tra le nuove, aggiunto il supporto touch screen per l’interfaccia di controllo degli elementi canvas (rendering dinamico di una bitmap). Un Pad direzionale viene visualizzato per impostazione predefinita sui dispositivi touch screen abilitati. Un esempio tipico è dato dall’ applicazione – gles_touch_demo.py, avviabile tramite la ScriptShell e che dimostra tale funzionalità; le opzioni di selezione multipla sono cambiate: “opzioni” per “seleziona/deseleziona” e “indietro” per tornare sulla lista; il Pad direzionale, supporta la modalità di visualizzazione in landscape; aggiunte nuove API canvas (”begin_redraw” e “end_redraw”); miglioramenti anche per l’applicazione “Scribble”.
Occorre installare prima l’interprete e poi la relativa ScriptShell, e si può scegliere di installare il tutto, sulla memory card o sulla memoria telefono (ovviamente date ad entrambe la stessa destinazione). Consigliato tuttavia optare per la memoria telfono. Sembra che le vecchie versioni installate si sovrascrivino, forse tuttavia opportuna la rimozione prima di aggiornare. Dwnload Python 1.9.7 beta (Interprete+Scriptshell)
Python_1.9.7 per tutti gli S60 3rd edition e 5th edition
Python ScriptShellper tutti gli S60 3rd edition e 5th edition
Download Python 1.9.3 beta (Interprete+ScriptShell)
Esiste un pacchetto d’installazione dedicato ai Symbian S60 3rd edition e 3rd edition FP1 e un pacchetto d’intallazione dedicato ai Symbian S60 3rd edition FP2 e 5th edition. Dunque seguite l’ordine di installazione e di compatibilità per il dispositivo opportuno come seguentemente schematizzato:
1) PyS60 (l’interprete)
Python_1.9.3_3rdEd.sis per 3rd edition e 3rd edition FP1
Python_1.9.3_5thEd.sis per 3rd edition FP2 e 5th edition
2) Python ScriptShell (un ambiente di lavoro per le linee di comando)
PythonScriptShell_1.9.3_3rdEd.sis per 3rd edition e 3rd edition FP1
PythonScriptShell_1.9.3_5thEdFP2.sis per 3rd edition FP2 e 5th edition
Di seguito tutti i downloads
Qui le release notes Di seguito il download delle precedenti beta e dell’SDK
Differenza tra versioni singed ed unsigned: facilitando e riferendomi alla questione delle certificazioni in termini di protezione, introdotta a partire dai dispositivi Symbian S60 3rd edition, vi posso dire che la versione unsigned garantisce un accesso standard alle funzioni del dispositivo, “user-grantable”, mentre la versione signed, appunto da certificare garantisce un accesso pi invasivo alle funzioni del dispositivo, dunque aumentano le possibilità di script e le possibilità di compatibilità per le applicazioni scritte in Python.
Versione Stabile
La versione stabile dell’interprete e la relativa schell è invece la 1.4.5. Come sempre installare prima l’interprete PythonForS60 (PyS60) e successivamente la relativa ScriptShell.
Per questa versione l’installazione è obbligatoriamente da effettuarsi sulla memoria telefono, le vecchie versioni installate non si sovrascrivono, dunque rimuoverle prima di aggiornare. Qui i downloads per tutti i 3rd edition (anche FP1 e FP2).
Python for S60 1.4.5
Python Script Shell 1.4.5
Questa versione non è ufficialmente compatibile con i 5th edition. Qui i downloads per tutti i 2nd edition
Python for S60 1.4.5 e Python Script Shell 1.4.5
per Symbian S60 2nd Edition Feature Pack 1 (Symbian OS v7.0s)
6600, 6620, 3230, 6670, 6260, 7610 Symbian S60 2nd Edition Feature Pack 2 (Symbian OS v8.0a)
6630, 6680, 6682, 6681 Symbian S60 2nd Edition Feature Pack 3 (Symbian OS v8.1a)
N70, N90, N72 QUI le RELEASE NOTES
Esiste per i 3rd edition anche un MegaPyModulePack (ultima versione 2.01, non testata su 5th edition), forse una raccolta di librerie, che occorre installare per far funzionare alcune applicazioni.
Qui il download, per l’installazione del MegaPyModulePack occorre certificazione
Una volta che sul dispositivo sono presenti interprete e relativa scriptshell è possibile utilizzare sui dispositivi le applicazioni scritte in Python, esattamente come si utilizziamo tutte le altre. Quasi sempre il sorgente per l’installazione delle applicazioni in Python è un .sis, dunque da installarsi alla consueta maniera, ovvero inviando il file sul telefono tramite bluetooth e facendo per aprirlo in messaggi al fine di avviarne l’installazione, oppure trasferendolo sul dispositivo con la modalità archiviazione di massa, e dunque facendo per aprirlo dal file browser del telefono al fine di avviarne l’installazione. Oppure si può utilizzare comodamente Nokia PC Suite. Rarissime volte possiamo trovarci di fronte ad un file .py (uno script). In questo caso,trasferite il file sulla memory card e tornando poi sul dispositivo, utilizzare un’applicazione file browser del tipo X-plore, per destinarlo all’interno del seguente percorso: C:/System/Apps/Python. Questo per quanto riguarda i 2nd edition. Per quanto riguarda invece i 3rd edition il percorso di destinazione è il seguente: E:/data/python (occorre aver installato Python e relativa ScriptShell sulla memory card). Quando il sorgente dell’applicazione è un .py occorre avviarne l’esecuzione dallo Scrypt (icona python che compare tra le applicazioni del dispositivo) facendo OPZIONI-RUN SCRIPT.
Molte applicazioni in Python compatibili con dispositivi Sybian S60 3rd edition FP1 che vertono a sfruttare le funzioni dell’accelerometro integrato (ovviamente per i dispositivi che ne sono dotati. L’accelerometro è una componente hardware che rivela l’orientamento del dispositivo nello spazio e permette funzioni come la rotazione dello schermo in landscape o protrait a seconda che il dispositivo sia orientato in posizione verticale o orizzontale), non funzionano sui 3rd edition FP2 e superiori. Questo perché il software per il funzionamento dell’accelerometro è diverso tra le due generazioni di Symbian (quello dei Symbian S60 3rd edition FP2 si basa su librerie S60 Sensor Frameworks. Quello dei 3rd edition FP1 si basa su di un plug in).
Per far funzionare l’accelerometro sui dipositivi 3rd edition FP1 occorre aggiornare il firmware alle ultime versioni oppure installare il suddetto plug-in