19
Python para s60 1 Python para S60 ( PyS60 ) 2 Instalación de PyS60 en el teléfono 3 Desarrollo de aplicacio nes usando Microsoft Wind ows 4 Desarrollo de aplicacio nes usando GNU/Linux 5 Ejemplos de prueba

Python Para S60

Embed Size (px)

DESCRIPTION

python para s60 en nokia

Citation preview

Page 1: Python Para S60

Python para s601 Python para S60 (PyS60) 2 Instalación de PyS60 en el teléfono 3 Desarrollo de aplicaciones usando Microsoft Windows 4 Desarrollo de aplicaciones usando GNU/Linux 5 Ejemplos de prueba

Page 2: Python Para S60

Pagina principal

1.1 Python

1.2 Pys60

1.3 Características

Page 3: Python Para S60

• 3.1 Configuracion y uso de una consola bluetoooth

Para desarrollar aplicaciones en PyS60 necesitamos : Descargar algún entorno de desarrollo integrado (IDE por sus siglas en inglés) que soporte la sintaxis de Python para el sistema operativo Microsoft Windows:

por ejemplo Eric4 para Windows:www.die-offenbachs.de/eric/eric4-download.html]www.die-offenbachs.de/eric/eric4-download.html

Instalar ActivePython 2.4 http://www.icewalkers.com/Linux/Software/512620/ActivePython.html Figure 1: Imagen que muestra el IDE ActivePython 2.4Edite el código en cualquier editor y guardelo con extensión py. Transferir el archivo creado al dispositivo (guardarlo en la carpeta Python si el teléfono pertenece a la tercera edición de S60). Ejecutar Python en el teléfono, elija Run Script y abra el script recién copiado para que se ejecute.

Pagina principal

Page 4: Python Para S60

• 5.1 Hola Mundo ! • 5.2 Envío de SMS • 5.3 Recepción de SMS • 5.4 Uso de cámara fotográfica • 5.5 Uso de FTP • 5.6 Envío de MMS

Pagina principal

Page 5: Python Para S60

• Para ejecutar aplicaciones Python en un dispositivo Nokia S60 se necesita:• Instalar el interprete de Python de acuerdo a al modelo de tu dispositivo, el cual

puedes descargar de http://sourceforge.net/projects/pys60. • Descargar los 2 archivos necesarios para que funcione el interprete PyS60

– El intérprete de Python: PythonForS60__1_4_0_3rdEd.sis. – El Scriptshell_1_4_0_3erEd.sis.

• Para la tercera Edición se utilizó la versión: PythonForS60_1_4_0_3rdEd.sis y PythonScriptShell_1_4_0_3erEd.sis. Es recomendable descargar la versión mas actualizada.

• Instalar los archivos descargados en el teléfono, en el siguiente orden: primero PythonForS60 (descargar a)), después del ScriptShell (descarga b)). Para su instalación se recomienda utilizar el Nokia PC Suiteo bien cualquier otro software para copiarlo al teléfono que sea soportado por sistema operativo. – Nota: para dispositivos de la 3rd . es necesario crear la capeta ‘Python’ en la

unidad e: (memoria adicional o disco duro del teléfono) a donde transferirás los scripts que elabores. Si el dispositivo no es 3rd Ed., no es necesario crear la carpeta ni especificar en dónde se instalarán las aplicaciones el Asistente lo hace automáticamente

Pagina principal

Page 6: Python Para S60

• Python es un lenguaje de programación creado por Guido van Rossum en el año los 1990s, en la actualidad Python se considera un proyecto de código abierto, administrado por Python Software Fundation, la última versión estable fue sacada en septiembre de 2006.

• Python para S60 (PyS60) además de las características estándares del lenguaje, proporciona el acceso a muchas de las funciones de teléfonos inteligente pro ejemplo : cámara fotográfica, calendario, grabación de sonidos y jugar con el audio, contactos y Bluetooth .

• Python tiene la capacidad de acceder a la API de C++ de manera más transparente permitiendo el desarrollo de prototipos y pruebas de conceptos que de otra manera resultarían más costoso.

Pagina principalRegresar

Python

Page 7: Python Para S60

Pys60• Python para la Serie S60 (PyS60) es una versión modificada del

Python adaptada para la Serie S60 del sistema operativo Symbian usado en dispositivos móviles.

• PyS60 está basado en Python 2.2.2. la cual apoya muchos de los módulos estándares de la biblioteca de Python pero tiene además algunos módulos específicos de la plataforma móvil:

• Widgets nativos del GUI, • Bluetooth • Establecimiento de una red de GPRS • Información de la localización del G/M, • Mensajería de SMS, • Acceso a la cámara fotográfica, etc..

Pagina principalRegresar

Page 8: Python Para S60

Características• Simple: Python es en lenguaje simple y minimalístico. El pseudo-código natural de Python es una de sus

grandes fortalezas ya que permite concentrarse en la solución del problema en lugar de la sintaxis, es decir el propio lenguaje.

• Sencillo de Aprender: Con Python es extremadamente sencillo de iniciarse en la programación ya que ofrece una sintaxis extraordinariamente simple.

• Libre y Fuente Abierta: Python es un ejemplo de un FLOSS (Free/Libre and Open Source Software – Gratuito/Libre y Software de Fuente Abierta). Se pueden distribuir libremente copias de este software, leer su código fuente, hacerle cambios, usar partes del mismo en nuevos programas libres, y en general lo que quieras. FLOSS esta basado en un concepto de una comunidad que comparte conocimiento. Esta es una de las razones por las cuales Python es tan bueno, ha sido creado y mejorado por una comunidad que solo quiere ver un mejor Python.

• Lenguaje de Alto Nivel: Cuando escribes programas en Python nunca debes preocuparte por detalles de bajo nivel, como manejar la memoria empleada por tu programa.

• Portable: Debido a su naturaleza de ser Open Source, Python ha sido portado (es decir, cambiado para hacerlo funcionar) a diversas plataformas. Python se puede usar sobre Linux, Windows, Macintosh, Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE y PocketPC.

• Interpretado: Python al ser un lenguaje interpretado convierte el código fuente en una forma intermedia llamada bytecode, después los traduce en el lenguaje nativo de la computadora y ejecuta. Todo esto hace el uso de Python mucho más sencillo. Solo basta con ejecutar los programas, no se debe de enlazar y cargar librerías, esto lo convierte en portable ya que solo basta con copiar el código y correrlo en algún otro sistema. Orientado a Objetos: Python permite programación orientada a procedimientos así como orientada a objetos. En lenguajes orientados a procedimientos, el programa esta construido sobre procedimientos o funciones los cuales no son nada mas que piezas de programa reutilizables. En lenguajes orientado a objetos, el programa es construido sobre objetos los cuales combinan datos y funcionalidad. Python ofrece una manera muy poderosa y simple de emplear programación orientada a objetos, especialmente, cuando se compara con lenguajes como C++ o Java.

Pagina principal Siguiente Pagina

Page 9: Python Para S60

• Ampliable: Se puede combinar código de C con Python. • Empotrable: Se puede insertar Python dentro de tu programa en C/C++ para ofrecer las facilidades de scripting dentro del

mismo. • Ampliable: Se puede combinar código de C con Python. • Empotrable: Se puede insertar Python dentro de tu programa en C/C++ para ofrecer las facilidades de scripting dentro del

mismo.• Librerías Extendidas: La librería estándar de Python es de hecho muy amplia. Las cuales ayudan al desarrollo de aplicaciones

que tengan que ver con: expresiones regulares, generación de documentos, evaluación de unidades, pruebas, procesos, bases de datos, navegadores web, CGI, FTP, correo electrónico, XML, XML-RPC, HTML, archivos WAV, criptografía, interfaz gráfica del usuario (GUI por sus siglas en inglés) usando TK, y también otras funciones dependientes del Sistema. Recuerde, Además de la librería estándar, hay otras librerías de calidad superior como el Python Imaging Library que es una sorprendente librería para la manipulación de imágenes.

• 2 Instalación de PyS60 en el teléfono• Para ejecutar aplicaciones Python en un dispositivo Nokia S60 se necesita:• Instalar el interprete de Python de acuerdo a al modelo de tu dispositivo, el cual puedes descargar de

http://sourceforge.net/projects/pys60. • Descargar los 2 archivos necesarios para que funcione el interprete PyS60

– El intérprete de Python: PythonForS60__1_4_0_3rdEd.sis. – El Scriptshell_1_4_0_3erEd.sis.

• Para la tercera Edición se utilizó la versión: PythonForS60_1_4_0_3rdEd.sis y PythonScriptShell_1_4_0_3erEd.sis. Es recomendable descargar la versión mas actualizada.

• Instalar los archivos descargados en el teléfono, en el siguiente orden: primero PythonForS60 (descargar a)), después del ScriptShell (descarga b)). Para su instalación se recomienda utilizar el Nokia PC Suite (ver imagen o bien cualquier otro software para copiarlo al teléfono que sea soportado por sistema operativo.

– Nota: para dispositivos de la 3rd. es necesario crear la capeta ‘Python’ en la unidad e: (memoria adicional o disco duro del teléfono) a donde transferirás los scripts que elabores. Si el dispositivo no es 3rd Ed., no es necesario crear la carpeta ni especificar en dónde se instalarán las aplicaciones el Asistente lo hace automáticamente.

Pagina principalRegresar

Page 10: Python Para S60

Configuracion y uso de una consola buetooth.• PyS60 la opción de utilizar una consola del Bluetooth la cual para la

comunicación se nos permite utilizar la línea de comandos de Python desde la PC donde los comandos son ejecutados realmente en el teléfono.

• Para utilizarla realice lo siguiente:• Abra una hyperterminal desde la PC, se puede utilizar la Hyperterminal de

Windows pero también se pueden utilizar terminales compatibles que usen emulación VT100

• Contar con Bluetooth en la PC y un puerto válido COM (de tipo servidor). Para esto se pueden verificar la configuración en Panel de Control/COM Local Bluetooth

• Figure 2: Puertos COM Locales.• En el teléfono ejecute Python y seleccione Bluetooth console ,

automáticamente aparecerá la consola de Python en la PC y podrá introducir código desde la PC y éste se ejecutará en el teléfono (ver imagen).

• Figure 3: Shell de Python ejecutándose en la hyperterminal de Microsoft Windows

Pagina principalRegresar

Page 11: Python Para S60

Desarrollo de aplicaciones usando GNU/Linux• Para desarrollar aplicaciones en PyS60 necesitamos : • Descargar algún IDE o editor de textos que de preferencia soporte sintaxis

de Python – Emacs es una buena opción:

Para instalarlo en Debian use:<FONT SIZE=2># wajig install emacs21 </FONT>

• Instalar Python versión 2.4 o superior Para instalarlo en Debian use:<FONT SIZE=2># wajig install python </FONT>

• Edite el código en cualquier editor y guardelo con extensión py. • Transferir el archivo creado al dispositivo (guardarlo en la carpeta Python

si el teléfono pertenece a la tercera edición de S60). • Ejecutar Python en el teléfono, elija Run Script y abra el script recién

copiado para que se ejecute.

• 4.1 Configuración y uso de una consola Bluetooth• 4.2 Ejecución de Aplicaciones utilizando la Consola Bluetooth

Pagina principal

Page 12: Python Para S60

Configuración y uso de una consola Bluetooth

• http://epx.com.br/artigos/pys60.php Asegurese de seleccionar el servicio correcto (usualmente el puerto que corresponde a SyncMLClient).

• <FONT SIZE=2># sdptool records 00:12:D2:61:B5:66 </FONT> Agregue un puerto serial a el servicio de nombres SDP Bluetooth, de tal manera que el dispositivo lo pueda encontrar [, ]:

• <FONT SIZE=2># sdptool add --channel=10 SP # while true; do rfcomm listen /dev/rfcomm0 10; done </FONT> Inicie PyS60 en el dispositivo. Posteriormente, abra la consola Bluetooth. Seleccione la conexión correcta.

• <FONT SIZE=2># while true; do rfcomm listen /dev/rfcomm0 10; done Waiting for connection on channel 10 Connection from 00:12:D2:61:B5:66 to /dev/rfcomm0 Press CTRL-C for hangup </FONT> Una vez que se haya conectado, ejecute en una terminal de la computadora, cualquiera de los dos siguientes comandos.

• <FONT SIZE=2># screen /dev/rfcomm0 # cu -l /dev/rfcomm0 </FONT>

Pagina principalRegresar

Page 13: Python Para S60

Ejecución de Aplicaciones utilizando la Consola Bluetooth

• PyS60 trae la opción de utilizar la consola del Bluetooth la cual nos permite utilizar la línea de comandos del Python en la PC donde los comandos son ejecutados realmente en el teléfono.

• Para utilizarla es necesario: • Abrir una hyperterminal desde la PC si se esta utilizando Windows se puede

utilizar la Hyperterminal de Windows pero también se pueden utilizar terminales compatibles con el tipo de emulación VT100

• Contar con Bluetooth en la PC y un puerto válido COM de tipo servidor. Para esto se pueden verificar la configuración en Panel de Control/COM Local Bluetooth

• Figure 4: Hyperterminal de Windows, selección del puerto COM libre para servidor• En el teléfono correr Python y seleccinar Bluetooth console automáticamente

aparecerá la consola de Python en la PC y podrás introducir código• Figure 5: Iniciación de Bluetooth Console desde el teléfono• Figure 6: Creación de Aplicaciones desde la hiperterminal de Windows

Pagina principalRegresar

Page 14: Python Para S60

Hola Mundo !

<FONT SIZE=2>import appuifw appuifw.note(u"Hellow World!", "info") """ NOTA: Las cadenas de texto deben de ser definidas como unicode.

u"..." El mobil no puede desplegar los textos apropiadamente de otra

manera.

""" </FONT>

Pagina principalRegresar

Page 15: Python Para S60

Envío de SMS<FONT SIZE=2>""" Copyright (c) 2005 Jurgen Scheible this script lets you send an sms to 2 users at the same time. """ """ import the messaging module ""“import appuifw import messaging """ create text input field """ data = appuifw.query(u"Type your name:", "text") """ define the mobile numbers here""" nbr1 = "123456" nbr2 = "234567" """ define the text that the sms shall contain ""“ txt = u"Greetings from:" +data """ create a query with type: "query" -&gt; appuifw.query(label, type) by using an if statement one can check whether the user has

pressed "ok" -&gt; True or "cancel" -&gt; False ""“ if appuifw.query(u"Send message to your 2 friends","query") == True: """ send out the sms; include the mobile number and the text to be sent ""“ messaging.sms_send(nbr1, txt) messaging.sms_send(nbr2, txt) """ confirm with a pop-up note that the sms has been sent out """ appuifw.note(u"Messages sent", "info") else: """ in case the user had pressed "cancel", send a pop-up note that the messages have not been sent out """ appuifw.note(u"Well, your Messages are not sent then", "info") </FONT>

Pagina principalRegresar

Page 16: Python Para S60

Recepción de SMS<FONT SIZE=2>""“ Copyright (c) 2006 Jurgen Scheible This script waits for an incoming sms, reads itscontent and shows it inside a pop-up note NOTE: PyS60 version 1.3.1 or higher is needed to run this script. """ """ import the module inbox (that handles incoming sms things) """ import inbox import e32 """ create a function that does the content sms reading """ def read_sms(id): e32.ao_sleep(0.1) """ create once more an instance of the inbox() class ""“ i=inbox.Inbox() """ read the content out of the message that has just arrived ""“ sms_text = i.content(id) """ display the content inside a pop-up note ""“ appuifw.note(u"sms content: " + sms_text , "info“) """ create an instance of the inbox() class """ i=inbox.Inbox() print "send now sms to this phone“ """ put the phone into waiting stage to wait for an incoming message ""“ i.bind(read_sms) </FONT>

Pagina principalRegresar

Page 17: Python Para S60

Uso de cámara fotográfica<FONT SIZE=2>import e32, camera, appuifw, key_codes def finder_cb(im): canvas.blit(im) def take_picture(): camera.stop_finder() pic = camera.take_photo(size = (640,480)) w,h = canvas.size canvas.blit(pic,target=(0, 0, w, 0.75 * w), scale = 1) pic.save('e:\\Images\\picture1.jpg') def quit(): app_lock.signal() canvas = appuifw.Canvas() appuifw.app.body = canvas camera.start_finder(finder_cb) canvas.bind(key_codes.EKeySelect, take_picture) appuifw.app.title = u"My Camera" appuifw.app.exit_key_handler = quit app_lock = e32.Ao_lock() app_lock.wait() </FONT>

Pagina principalRegresar

Page 18: Python Para S60

Uso de FTP<FONT SIZE=2>""" Copyright (c) 2006 Jurgen Scheible this script lets you upload a file to a URL using the FTP protocol NOTE: you need to install first the ftplib library to your phone before you can use ftp, because the Nokia Python for S60 package does not incude it by default. NOTE: You need to install the ftplib.py file on your phone as a python library (not a python script). The ftplib.py (comes originally with the desktop python version) ""“ """ in order to get this script work, you need to fill in: - your servername (your server must be capable of using FTP) - username and password - the correct folder where to store the file ""“ import appuifw from ftplib import FTP """ name of file to be uploaded (path on phones hard drive)""“ picselection = "c:/testimg.gif“ def fireupfile():global picselection ftp = FTP('www.exampleserver.com') """ give servername""“ ftp.set_pasv('true') ftp.login('username','password') """ give login anonymous""" """ give correct folder where to store the image """ ftp.cwd('public_html/examplefolder') F=open(picselection,'r') """ give name of image to be stored as URL ""“ ftp.storbinary("STOR image.gif",F,1024) ftp.quit() F.close() if appuifw.query(u"fire up image?","query") == True: fireupfile() </FONT>

Pagina principalRegresar

Page 19: Python Para S60

Envío de MMS<FONT SIZE=2>""" Copyright (c) 2007 Jurgen Scheible this script lets you send an mms to another phone including text and an image """ import appuifw import messaging """ create text input field ""“ data = appuifw.query(u"Type your name:", "text") """ define the mobile number here where to send the MMS """ nbr = "123456" """ change the mobile number here ""“ """ define the text that the sms shall contain ""“ txt = u"Greetings from:" +data """ image attachment: You must have an picture already available with the name picture1.jpg inside the folder called Images on your memory card. ('e:\\Images\\picture1.jpg') otherwise the script won't work. (use video or sound file instead of image) send out the mms; include the mobile number, the text and the attachement to be sent """ messaging.mms_send(nbr, txt, attachment='e:\\Images\\picture1.jpg') """ confirm with a pop-up note that the sms has been sent out ""“ appuifw.note(u"MMS sent", "info") </FONT>

Pagina principalRegresar