Hoy no tengo mucho tiempo así que seré breve. Acabo de modificar un poquito el programa de la primera entrega del programa para el MTX65+G (recordar que lleva un modem Siemens XT65 en su interior).

java.jpg

 He añadido algún método nuevo a la clase:

initGPS (int segundosURC)

este método se encarga de activar el GPS (con el comando AT^SGPSS=1) y programamos al GPS para que nos envíe un mensaje URC con la posición GPS cada X segundos. En el ejemplo lo he configurado para actualizar la posición cada 5 segundos.

enviarSMS (String mensaje, String numero)

este método se encarga de enviar un SMS con el mensaje al número indicado en los parámetros pasados al método. Lo utilizaremos para enviar la posición GPS obtenida a nuestro número de teléfono.

Resumiendo, con esta segunda entrega, tenemos el programa de la siguiente manera:  el programa activa el GPS y va capturando posiciones. En el momento que recibe un SMS se envía a un número determinado la posición GPS también por SMS.

En una tercera y última entrega haré que sólo se envíe la posición GPS al número de teléfono que envíe un SMS al módem con un texto determinado, por ejemplo el texto “leerposicion”. También configuraremos el programita para que al recibir un SMS con el texto “activa” ponga a “1″ una de las señales GPIO digitales y cuando se reciba el texto “desactiva” la ponga a “0″. De esa forma nos será muy simple activar y desactivar un relé.
 

Aquí tenéis el programita para que quien quiera pueda darle un vistazo:  proyectoAlarma2 

 

Espero que os sean de interés estos posts ;-)


Post relacionados:

  1. Programando en Java con los modems Siemens. Tercera entrega Por fin este Sábado he tenido un poquito de tiempo...
  2. Programando en Java con los modems Siemens. Primera entrega. Hace unos días puse que crearía un programita Java para...
  3. Desarrollando con Zigbee. Segunda entrega. Buenas a todos. Ante todo feliz nuevo año 2008. Hace...
  4. Cómo usar ficheros con módems de Siemens desde Java. Como seguro ya sabéis, varios de los modelos de módems...
  5. Añadir datos a ficheros con módems Siemens-Cinterion desde java En bastantes ocasiones me ha llegado la pregunta de cómo...








18 Respuestas a “Programando en Java con los modems Siemens. Segunda entrega”
  1. gme dice:

    Hola !

    Bueno, otra vez, tu articulo me permitio entender un monton de cosas. Gracias.

    Pero, ahora estoy desarrollando un poco el mismo tipo de aplicacion. Pero, al lado de hacer la transmision a traves de SMS, lo hago a traves de una conexion CSD.

    Es decir, el servidor abre una conexion con el modulo, el modulo la acepta gracias a un “Listener”, y el servidor puede mandar algunos comandos como: “transmite los datos GMS”, “cierra la aplicacion”, “cierra la conexion”…

    El objectivo es abrir cuando lo queremos una conexion para pedir la posicion, cerrarla y abrir la de nuevo etc…

    Durante la primera conexion, todo funciona bien: Todos los comandos que eligí funcionan. Pero, luego, me salen errores. No llegan cada vez al mismo momento (Todo puede pasarse bien durante 3 conexiones y luego no. O se pasa bien a la primera y la segunda conexion no se abre…)

    Estoy un poco perdido… Me parece que viene de los instancias ATCommand, pero no veo como resolver ese problema. Si alguien encontró un error de ese tipo, ayudame por favor!

    De toda manera gracias,

    Salu2

  2. blogElectronica dice:

    Hola gme,

    con los datos que das es difícil ayudarte, pues ni siquiera indicas los errores que te da la aplicación. Tiene pinta de ser un fallo de programación. ¿Cuantas instancias de ATCommand utilizas? ¿Qué tipo de error te da? ¿Puedes poner System.Out.println para ver las trasas del programa? ¿Qué versión de firmware del TC65 estás utilizando?

    Salu2.

  3. Marcelo dice:

    Hola,
    Me parece muy bueno e informativo tu blog.
    Quisiera saber si una vez desarrollada tu aplicacion java en el TC65,hay una forma de protegerla para evitar copias.
    Gracias y Saludos

    marcelo,desde Argentina

  4. gme dice:

    Hola,

    Si perdoname, no era muy claro.
    a la segunda llamada, el error que me sale es:
    “java.lang.IllegalStateException: Error sending AT Command, instance not opened.”
    Utilizo 2 instancias de ATCommand. La primera para esuchar el canal con un Listener y la segunda para los otros comandos. Entre 2 llamadas, no cambio el Listener.
    Intenté liberar los instancias ATCommand, poner mas instancias, pero no me funciona…
    Se que mi error viene de las instancias ATCommand, pero no veo muy claro que son los canales ATCommand, los AT Interpreters, los AT Parsers…
    Si todavia no esta claro, puedo mandarte el codigo.

    Gracias por tu tiempo,

    Salu2

  5. Dani dice:

    Hola,

    Muchas gracias por tus entradas me han ayudado mucho. No se si recuerdas lo que pretendia hacer. Basicamente pretendo que el TC65 haga de puente comunicandose con un servidor y el puerto serie 0 que se comunicara con el controlador.

    He conseguido que me funcione todo pero mi problema ahora se encuentra en el tiempo. En algunas ocasiones se vuelver mortalmente lento. He comprobado si era culpa de alguno de mis proceso que se quedaba bloqueado y no es así. Creo tener acotado el error y pienso que es en el tiempo que tardo en recibir un nuevo ATevent. No se si sabrás porque tarda tanto en despertar a mi programa por un nuevo ATEvent (hasta varios minutos).

    Muchas gracias.

  6. blogElectronica dice:

    Hola Marcelo,

    puedes meter los programas dentro del modem como si fuera un pendrive, pero no puedes sacarlos (por seguridad). Si lo intentas te dará error.

    Salu2.

  7. Pua dice:

    Puedes proteger el TC65 para que la información de la flash no pueda ser sacada.
    Puedes también mendiante un mensaje OTAP proteger el dispositivo para que nadie pueda hacer otap sin esa password.
    Mediante un protoclo de llave pública y llave privada solo se podrá actualizar tu programa si dispones de las llaves.
    Creo que puedes firmar los midles para que no/si puedan ser ejecutados.
    Echa un vistazo al manual de usuaro de java del tC65, creo que al final tienes todos los métodos de seguridad

  8. Javier dice:

    Buenos días a todos. Sigo con interés éste blog. Trabajo en una empresa de gestión de flotas, y estoy diseñando el hardware de un localizador basándome en el xt65. Me faltaría, naturalmente, el soft para que el equipo conecte cada minuto por gprs con nuestro servidor y envíe posición. ¿Alguien se ofrece a encargarse del soft? (Cobrando, claro).

  9. negrek dice:

    hola, lo primero darte las gracias x tda la info q cuelgas. una pregunta: cuales son las diferencias básicas entre el MTX-65+G y el modulo inicial de siemens????? y q diferencia de precio hay entre uno y otro (pensemos en una compra de una única unidad) muchas gracias!

  10. PAULA dice:

    hola.

    me podrias informar como hago para comunicar en java el modem con un software de tarificacion ????

    mil gracias

    saludos,
    paula desde colombia

  11. blogElectronica dice:

    Hola negrek,

    En el post anterior ya contesté una cuestión similar a la tuya a Pablo. Hecha un vistazo a los comentarios de este link:
    http://www.blogelectronica.com/java-mtx65-siemens-modem-gprs-gps/

    Y respecto a los precios lo mejor que puedes hacer es pedirlo al distribuidor, que te dará precio por cantidades.

    Salu2.

  12. blogElectronica dice:

    Hola Paula,

    esa es una pregunta un tanto difícil de contestar. Pues dependerá, en tu caso, del protocolo de comunicación con el sistema de gestión, que debe haber miles y miles distintos y casi todos propietarios. Esto has de hablarlo con la empresa que ha diseñado el software de tarificación que tu tienes. No te puede ayudar nadie más en este tema.

    Salu2.

  13. PAULA dice:

    hola, gracias por contestar.
    lo que pasa es que debo implementar primero el modulo de tarificacion aun software de LanVoIP que ya esta desarrollado, pero ahora la pregunta que surge, es como pegar este software al modem.

    no se, estoy algo desubicada.

    gracias por tenerme en cuenta.

  14. Roge dice:

    Muy bueno el blog. En otro de los posts había consultado como era el tema del Ctrol+z para enviar un SMS desde la aplicación java, pero con este post y la aplicación de ejemplo ya está aclarado. Es una joyita este aparatito.

    En la aplicación que estoy trabajando se pueden detectar eventos URC de llamadas entrantes y SMS y en función de eso hacer una acción determinada, que en este caso es conectarse un socket en un servidor http. En el caso de que el SMS o la llamada sea de un remitente inválido, la aplicación envía un SMS notificando del error.
    Gracias,
    Saludos.

  15. Javier Coll dice:

    SALUDOS, NECESITO SABER UN COMANDO AT CON EL QUE PUEDA CAMBIAR O SIMPLEMENTE QUE NO APAREZCA EL NUMERO REMITENTE DEL SMS, ALGUNA AYUDA??
    MI CORREO: jrcollve@gmail.com

  16. Fran dice:

    hola!e visto tu código pero donde viene conde pides los datos via GPS(posicion)? importas Criteria,Location … etc pero no veo que las uses… lo tienes echo eso kizas en otra clase?nose, si lo usas podrias pasarme el código?
    gracias.
    PD: muy bueno el blog

  17. blogElectronica dice:

    Hola Fran,

    No, la verdad es que sobra la importación de Location y Criteria del ejemplo, pues finalmente utilizo los URC del módem para obtener los datos del GPS. Desde mi punto de vista es más sencillo y cómodo pero para gustos ya sabes.

    Tengo un ejemplo de un compañero (no lo he hecho yo), lo tengo colgado en:
    http://www.blogElectronica.com/TEMP/gpsNoBlogElectronica.zip

    Por si puede ser de tu interés.

    Salu2.

  18. TAIAA MOHAMMED dice:

    Hola,
    Una vez más felicitarte por esta gran labor que estás realizando en blogelectronica y con la que nos ayudas en gran medida.
    Te escribo para pedirte ayuda :
    Soy una estudiante en mi 3 años Licencia de ingeniería eléctrica, tengo un proyecto al final del estudio en ese momento subtítulo MTX-65 + G TERMINAL.
    He hecho un montón de investigación, llegué a conectar MTX-65 + G TERMINAL con el ordenador.
    Desde el hyperterminal le envio al modem el comando AT, y me responde OK, posteriormente le envio AT^SJRA=”A:/tmp/EJEMPLO_GPS.jar”, y me devuelve lo siguiente:
    OK
    Así que la pregunta es, ¿qué es lo que voy a hacer ahora? Para empezar mi programa es que tengo que usar comandos AT? ¿O qué?
    O por ejemplo si quiero hacer lo mismo con sus ALARMAGPS código Java y llegar a esta etapa, que luego tengo que caminar a mi programa?
    Debo añadir que yo uso el código de Java es el enlace: http://www.blogelectronica.com/ejemplos-java-j2me-modem-gprs-siemens/
    Espero su respuesta con el paciente

  19.  
Deja una Respuesta

Puedes publicar un comentario aquí si quieres, pero te recomiendo que uses el nuevo foroElectronica.com para introducir comentarios. Te contestaré más rápido. Recuerda que debes registrarte si no lo estás para publicar un comentario.