A lo largo de los últimos meses he ido poniendo toda una serie de ejemplos de programación de los módems gprs de Siemens (TC65 y XT65) y de los terminales (TC65T, MTX65 y MTX65+G) distribuidos ambos grupos por Matrix en España.
 
Hoy Sábado os pongo una batería de ejemplos también para éstos módems, ordenaditos para cuando los necesitéis ;) . La mayoría de ellos los podréis encontrar en posts anteriores, aunque hay alguno que otro nuevo.

Son ejemplos rápidos, es decir, no gestiono completamente todas las excepciones ni mucho menos, pero desde luego, si estas empezando con estos módems, creo que pueden resultarte una buena guía. Verás como la inmensa mayoría de las aplicaciones que puedas llegar a hacer para proyectos reales están basadas en pequeñas tareas, que son las que muestro en los siguientes ejemplos.
 

Programación java Siemens

Vamos allá, éstos son los ejemplos que os cuelgo en el blog:
 
 

EJEMPLO_HelloWorld (Download)
 
Descripción: Muestra una aplicación básica que lo único que hace es sacar información por la salida estandard del módem. Deberás configurar previamente la salida estandard con el comando AT^SCFG, por ejemplo, AT^SCF=”Userware/Stdout”,”",”ASC0″
 
Válido para los módems: TC65, XT65, TC65T, MTX65 y MTX65+G
  
 
 
 
EJEMPLO_SMS (Download)

Descripción: Básicamente el ejemplo lo que hace es enviar cada minuto un SMS a un determinado número de teléfono.

Válido para los módems: TC65, XT65, TC65T, MTX65 y MTX65+G
 
 
 

EJEMPLO_Thread (Download)

Descripción: El programa lanza un hilo que lo que hace es contar hasta 5 sacando el resultado por la salida estandard. El programa espera a que acabe el hilo antes de finalizar.

Válido para los módems: TC65, XT65, TC65T, MTX65 y MTX65+G
 
 
 

EJEMPLO_Timer (Download)

Descripción: este ejemplo crea un timer de 5 segundos. Es decir, cada 5 segundos se ejecuta una tarea que lo que hará es sacar datos por la salida estandard del módem.

Válido para los módems: TC65, XT65, TC65T, MTX65 y MTX65+G
 
 
 
 
EJEMPLO_GPIO (Download)

Descripción: Muestra como configurar un GPIO de entrada y otro de salida desde Java, como cambiar el estado del GPIO de salida y cómo leer el de entrada.

Válido para los módems: TC65, XT65, TC65T, MTX65 y MTX65+G
 
 
 

EJEMPLO_ConexionTCP (Download)

Descripción: Muestra como crear una conexión TCP/IP con la clase ATCommand. El ejemplo crea una conexión con un socket que se conecta a la IP de Google, envía una trama por el socket y recibe una cadena por el socket, que muestra por la salida estandard.

Válido para los módems: TC65, XT65, TC65T, MTX65 y MTX65+G
 
 
 

EJEMPLO_ConexionTCP2 (Download)

Descripción: Muestra como crear una conexión TCP/IP utilizando las clases propias de Java. El ejemplo crea una conexión con un socket que se conecta a la IP de Google, envía una trama por el socket y recibe una cadena por el socket, que muestra por la salida estandard.

Válido para los módems: TC65, XT65, TC65T, MTX65 y MTX65+G
 
 
 

EJEMPLO_Ficheros (Download)

Descripción: Muestra cómo crear un fichero en la memoria flash del módem, cómo escribir datos en el mismo y cómo leerlos.

Válido para los módems: TC65, XT65, TC65T, MTX65 y MTX65+G
 
 
 

EJEMPLO_GPS (Download)

Descripción: Muestra la utilización del GPS con la clase ATCommand. El programa al arrancar activa el GPS y lo programa para recibir un URC con la posición cada 5 segundos. Esta posición se almacena en una variable y además se muestra por la salida estandard.

Válido para los módems: XT65 y MTX65+G
 
 
 

EJEMPLO_GPS_JSR179 (Download)

Descripción: Ejemplo que muestra brevemente cómo capturar una posición GPS sin utilizar la clase ATCommand, es decir, utilizando la clase Location de la JSR179.

Válido para los módems: XT65 y MTX65+G
 
 
 

EJEMPLO_HTTP (Download)

Descripción: Este ejemplo crea una conexión GPRS y utilizando la clase de java HttpConnection se descarga y muestra por la salida estandard la página de inicio de Google.

Válido para los módems: TC65, XT65, TC65T, MTX65 y MTX65+G
 
 
 

EJEMPLO_PuertoSerie (Download)

Descripción: Muestra cómo utilizar el/los puertos serie del módem desde Java. Abre los dos puerto serie ASC0 y ASC1 y lo que recibe por el ASC0 a 115200 baudios lo retransmite por el ASC1 a 57600 y viceversa. Está pensado para el TC65, pero sirve para ver cómo manejar el puerto ASC0 del XT65.

Válido para los módems: TC65, TC65T y MTX65 (XT65 y MTX65+G sólo 1 puerto serie).
 
 

EJEMPLO_Watchdog (Download)

Descripción: muestra cómo utilizar el nuevo watchdog del TC65v3. El programa cuenta hasta 25.000. Ha partir de la cuenta 10.000 el programa deja de refrescar el watchdog, por lo que a los 15 segundos verás cómo se resetea.

Válido para los módems: TC65, TC65T y MTX65 (con versión 3.0 de firmware)
 
 
 
 
Espero que encontréis de utilidad estos ejemplos. Intentaré poner algunos más dentro de poco, relativos a modos de bajo consumo y FTP.
  
Y bueno … enhorabuena a los que estáis ya de vacaciones, y a los que no, como yo, ánimo, que ya falta poco!!! ;)     Otro día más.
 
 
 

21 Respuestas a “Ejemplos Java para módems de Siemens”

  1. borjaga dice:

    Muy interesante este artículo, sobre todo para los que estamos empezando a hacer aplicaciones en J2ME con estos modems! ¿Sabes si existe algún tipo de emulador para estos modems de Siemens?
    Por cierto ya me funciona el MES :D , era cuestión de permisos a la hora de instalarlo!

    Salu2,

    Borja.

  2. blogElectronica dice:

    Muy buenas borjaga,

    me alegra que te sean de utilidad los ejemplos y que te funcione el MES. Era muy extraño ese error que te daba, de hecho nunca lo había visto antes. El hecho de que te ocurriera el error incluso sin tener conectado el módem, apuntaba tema soft …

    Y respecto a los emuladores, no conozco ninguno. Si no es indiscrección ¿para qué estás interesado en un emulador?

    Salu2.

  3. borja dice:

    Hola,

    Estoy interesado en un emulador para no tener que pagar una conexión GPRS, mientras desarrollo aplicaciones en mi tiempo libre. Por cierto estaría muy bien un artículo de cómo se debuga con los modems GPRS de Siemens :D .

    Salu2

  4. Jose dice:

    Muy muy interesantes estos articulos, sobre todo para alguien que empieza con los modems de siemens que es mi caso.

    Sobre los ejemplos, que es mejor para crear una conexion gprs, usar comandos AT o crearla con las clases del WTK? y para mandar y leer datos, los comandos AT SISW y SISR o utilizar metodos de java? Desde mi punto de vista es mas facil usar AT y gestionar la lectura de datos con URC, pero no se si es lo mas correcto o lo mas rapido. Agradeceria muchisimo una respuesta.

    Un saludo

  5. blogElectronica dice:

    Muy buenas Jose,

    a ver, en principio sería mejor hacerlo con las clases de Java, pues creo que la clase ATCommand hace uso de estas. De todas maneras conozco empresas que utilizan un tipo y el otro tipo, y ambas van bien. A mi la clase ATCommand me gusta por la sencillez, y pq me resulta más cómodo, pero utilizar las clases de java debería ser más rápido, para transmisiones largas.

    Salu2

  6. Carlos dice:

    ¿Se puede lanzar un *.jar desde otro *.jar?
    Si es posible, se dejaría de correr el primer programa para correr el segundo o correría el segundo anidado dentro del primero?

    Saludos

  7. blogElectronica dice:

    Hola Carlos,

    no se puede. Como mucho puedes configurar el autoexec del comando AT^SCFG para que al finalizar una aplicación se arranque la otra.

    Salu2

  8. Luis dice:

    Hola,

    hay alguna manera de enviar archivos a traves del puerto com y comandos AT?

    Salu2

  9. blogElectronica dice:

    Hola Luis,

    no se si te entiendo. Si te refieres por FTP, sí, puedes hacerlo. En el manual de comandos AT tienes un ejemplo.

    Salu2.

  10. Luis dice:

    Hola,

    Gracias por tu respuesta.

    Por ftp me imagino que sera como con OTAP?.

    Lo que yo quiero saber es si conecto el modulo al ordenador es posible enviar archivos al modulo sin necesidad de ir a mi pc, module…. y luego pegar el archivo.

    Gracias y saludos!

  11. blogElectronica dice:

    Hola Luis,

    mírate uno de los últimos comentarios de Pua en:
    http://www.blogelectronica.com/otap-siemens-tc65/

    puedes utilizar el protocolo Obex, pero no lo he utilizado nunca para nada distinto a lo del bluetooth, por lo que aquí no te puedo ayudar.

    Salu2.

  12. faru dice:

    Muy buenos los ejemplos, tenes alguno enviando datos por HTTP con POST?

    Desde ya muchas gracias.

  13. Pua dice:

    hola Luis,

    si tienes instalado el MES, puedes utilizar los comados y hacerte un bath que copie/borre/reemplace los ficheros.
    En el directorio de instalación del MES podrás encontrar estos ficheros ejecutables

    Salu2

    Pua

  14. davidgamo dice:

    Hola Jose,

    Muchas gracias por los ejemplos y la dedicación a este blog.

    estoy probando el ejemplo del uso de los puertos serie ASC0 y ASC1 en un MTX-65 v2.0.

    Desde ambos puertos serie puedo enviarle comandos AT al dispositivo y me responde correctamente. Cuando programo el ASC1 para que envíe una secuencia de bytes y monitorizarlo en un PC, funciona correctamente.
    Cuando programo el ASC0 para que envíe una secuencia de bytes y monitorizarlo en un PC, no envía nada.

    ¿Que está ocurriendo? ¿Debo configurar algo?

    Saludos.

  15. blogElectronica dice:

    Hola Faru,

    pues por el momento no tengo ninguno. Intentaré hacer algún ejemplo y colgarlo cuando tenga un rato.

    Salu2

  16. blogElectronica dice:

    Hola davidgamo,

    pues muchas cosas no deberían poder pasar. Bien que no utilices un cable correcto (debe ser un DTE-DCE), bien que no esté bien configurado el puerto serie del PC a los baudios adecuados, o bien que tengas activado el control de flujo en un lado y el otro no. Haz una prueba rápida desactivando el control de flujo en ambos equipos. En el MTX hazlo poniendo a off el autocts y autorts que puedes ver en los ejemplos.

    Salu2.

  17. David dice:

    Hola Jose,

    poniendo a off autocts y autorts funiona correctamente!!!

    Muchas gracias.

    Saludos.

  18. Sergi dice:

    Hola,

    Estoy utilizando un XT75(MTX-65+) y creando una aplicación java para ello. Sé que ya se ha hablado de esto en algun otro post pero sigo sin conseguir que me funcione. Mis preguntas son las siguientes:

    - Se puede visualizar los System.out por la Consola de Eclipse cuando se ejecuta un jar?
    - Qué hay que configurar para poder debugar una aplicación? Tengo el la conexión de red “Ip for remote debugging” pero no consigo conectarme con el modem. Consigo descargar los ficheros pero cuando quiere inicializar el debug me dice “Wrong initialization response received from the module”.

    Alguna sugerencia?

    Sergi

  19. Rogelio dice:

    Hola,

    ¿Es posible correr en el siemens un servidor http que acepte conexiones?

    Muy bueno el blog.

    Saludos,
    Gracias,
    Rogelio

  20. blogElectronica dice:

    Hola Sergi,

    Respecto a la primera pregunta creo que la respuesta es no, o al menos yo siempre la saco por procom (hyperterminal). Respecto a tu segunda cuestión ¿Tienes la guia de debugging del TC65? Si no la tienes te la puedo hacer llegar, ya que hay varias cosas a tener encuenta a la hora de debuggar.

    Salu2.

  21. blogElectronica dice:

    Hola Rogelio,

    Pues un servidor muy simplón http currado por ti entero sí, no veo inconvenientes. Hoy mismo se lo he comentado a Netflanders:
    http://www.blogelectronica.com/que-es-la-tenologia-gprs/#2824

    Tal vez haga un ejemplo muy simple y lo cuelgue en el blog.

    Salu2

Deja una Respuesta