Posts Tagged “java”

Como vimos hace ya un tiempo, con las nuevas versiones de SDK de las nuevas releases de firmware de los módulos TC65 (versión actual 3.0), XT65 (versión actual 2.0) y TC65i (versión actual 1.0) se han incorporado nuevas clases java.

Meses atrás vimos la nueva clase Watchdog. Hoy voy a poner un pequeño ejemplo de uso de las nuevas clases InPort y OutPort que nos permiten de una manera muy sencilla poder gestionar los pines de entradas y salidas digitales de nuestros módems Siemens / Cinterion. ´

Programación java Siemens


EJEMPLO_GPIO_API
(Download)

Descripción: Para el ejemplo me he basado en el MTX65v3. Como sabéis este teminal dispone de 4 entradas y salidas digitales que son la GPIO1, GPIO2, GPIO3 y GPIO4.

En el ejemplo configuro la GPIO1 y GPIO2 como entradas y la GPIO3 y GPIO4 como salidas y presupongo que se unen directamente, mediante unos cables de conexión, los pines GPIO1 con GPIO3 y GPIO2 con GPIO4. En el ejemplo se van variando el estado de las salidas (GPIO3 y GPIO4) y se va mostrando por la salida estandard (System.out.println) el valor de las entradas (GPIO1 y GPIO2). En el ejemplo java podéis ver que está comentado el código línea por línea por lo que no me extiendo más por aquí. Si utilizáis un MTX65v3 y ejecutáis la aplicación, este debería ser el resultado:

Válido para los módems: TC65 (v3.0), TC65i, XT65 (v2.0) y MTX65v3

Espero que os resulte de utilidad. Otro día más.

P.D. suerte mañana día 22 a todos con la Lotería de Navidad, a ver si hay suerte y cae algo ;)

Etiquetas: , , , , ,

Comments No Hay Comentarios »

El otro día empecé unos capítulos de optimización de aplicaciones J2ME para nuestros módems gprs Siemens / Cinterion TC65 / XT65. Hoy voy con otra entrega que sigue el hilo al anterior, en lo referente a memoria y se trata de la creación de objetos.

En un lenguaje orientado a objetos como es el java en ocasiones tenemos tendencia a crear y utilizar más objetos de los que son realmente necesarios. Como dije anteriormente, en un PC de sobremesa no tiene mayor importancia, pero en un módulo embebido sí que lo tiene. Debemos intentar evitar crear objetos innecesarios, pues cada uno de estos objetos necesitan memoria y su creación además consume un precioso tiempo de CPU.

Además, cuantos más objetos creamos, mayor es la frecuencia en la que el Garbage Collector entrará en acción, lo que se traduce en una bajada de rendimiento de nuestras aplicaciones, pues es como tener otro thread funcionando en background.

Optimizar aplicaciones J2ME

  Lee el resto de esta entrada »

Etiquetas: ,

Comments 1 Comentario »

No es lo mismo realizar aplicaciones para un Core 2 Duo que para un módulo embebido, como puede ser un módem Siemens / Cinterion TC65 ó XT65. Cuando desarrollamos aplicaciones para PCs convencionales, aunque debiéramos intentar optimizarlas, no vamos a notar grandes diferencias si gastamos unos cuantos cientos de KBytes de Ram más o menos, pues a día de hoy casi todo los ordenadores tienen de 1GB de Ram para arriba ni tampoco es crucial si no está todo lo optimizado que pudiera estar el código, cuando estamos hablando de procesadores a 3GHz. Esto es cambio, sí es muy importante para pequeños dispositivos embebidos.

Para el caso de los módulos embebidos hay dos maneras básicas de incrementar el rendimiento de las aplicaciones. Una es tener cuidado con el uso de la memoria, evitando utilizar más memoria de la necesaria. La otra es el tiempo de ejecución del código que implementamos. Por ejemplo en java, al igual que en cualquier lenguaje orientado a objetos, la creación y destrucción de objetos necesita de tiempo de procesador, además de requerir memoria cada objeto instanciado.

Voy a poner una serie de posts breves, por capítulos, sobre cosas a tener en cuenta a la hora de realizar aplicaciones J2ME, para obtener un mejor rendimiendo de las mismas.

Optimizar aplicaciones J2ME

Lee el resto de esta entrada »

Etiquetas: ,

Comments 4 Comentarios »

Muy buenas. Hoy voy a poner un pequeño post relacionado con el autostart de aplicaciones para los módems de Siemens TC65, XT65 y los terminales TC65T, MTX65 y MTX65+G distribuidos por Matrix. Es algo conocido probablemente por la mayoría de vosotros, pero desde luego no lo es para quien se está iniciando, por lo que no está mal escribir unas líneas al respecto.

Si empiezas a trabajar con estos módems de Siemens/Cinterion, probablemente pasarás un tiempo leyendo un poco la documentación inicial, instalando el entorno de desarrollo y haciendo tus primeros pinitos en programación J2ME ( tal vez con algún ejemplo encontrado en Internet ;) ).

Llegará un momento en que tienes tu aplicación Java hecha y querrás que, cuando des alimentación al módem, automáticamente arranque la aplicación que hayas realizado, pues no tiene sentido, salvo por pruebas, arrancar siempre la aplicación con el comando AT^SJRA.

Para autoconfigurar el módem para que arranque automáticamente una aplicación se utiliza el comando AT^SCFG.   Si escribes un AT^SCFG?  verás multitud de datos de configuración. Abajo, casi al final, verás algo como:


^SCFG: “Userware/Autostart”,”1″
^SCFG: “Userware/Autostart/AppName”,”a:/HelloWorld.jar”
^SCFG: “Userware/Autostart/Delay”,”100″

Programación java Siemens

Lee el resto de esta entrada »

Etiquetas: , , , , , , ,

Comments 34 Comentarios »