Hace unos días puse que crearía un programita Java para el modem Siemens MTX65+G, ya sabéis el módem terminal que dispone de un módulo Siemens XT65 en su interior que a su vez incorpora un GPS.

Bueno, pues hoy os cuelgo una primera parte del programita que he hecho esta tarde-noche. En unos días os cuelgo la segunda parte. En esta primera entrega, los que no sabéis cómo programar nada de este módulo de Siemens, podéis utilizar este programita como una especie de plantilla para otras pequeñas aplicaciones que vosotros hagáis.

java.jpg

Realmente la aplicación que os cuelgo no hace casi nada, pero es la base para la aplicación final que recuerdo consistirá en que enviaremos un SMS con nuestro móvil al módem MTX65+G, éste lo recibirá y procesará, y si es un SMS válido cogerá la posición GPS y se la enviará también por SMS al móvil (típica aplicación de localización GPS). También haremos que podamos enviar un SMS desde el móvil y que el módem MTX65+G active o desactive una salida digital con la que activaremos / desactivaremos un relé, por ejemplo, para activar nuestro PC de forma remota ;-) .
 

Vale ¿pero qué puedo ver realmente esta primera entrega?

Lo mejor que puedes hacer es dar un vistazo al código fuente, lo he comentado todo para que sea muy clarito.

Algunas cositas del programa:

1.- He creado un timer en java para que veáis como se utilizan. El timer lo único que hace es sacar por el puerto serie del módem el valor de un contador cada segundo.

2.- Utilizo las clases ATCommand y ATList  (de Siemens) que son las que utilizaremos para enviar comandos AT al módem y procesar la respuesta (ATCommand) y la que utilizaremos (ATList) para procesar los mensajes URC (ya sabéis, un mensaje inesperado cuando se recibe una llamada entrante, un SMS, …)

3.- He creado el método setConfigInicial.
En este método configuramos el modem para nuestra aplicación. Enviamos el PIN si es necesario, activamos los mensajes URC para cuando entre un SMS, configuramos los SMS salientes como texto (no PDU) y activamos y configuramos un pin GPIO de salida.
 
 
¿Y cómo lo ejecuto?

Coge los archivos de la carpeta deployed ALARMA.jar y ALARMA.jad y cópialos dentro del módem.  Luego desde el hyperterminal ejecuta el comando AT:
AT^SJRA=”a:/ALARMA.jar”
 
 
¿Y qué veré?

Pues verás cómo en la ventana del hypertérminal algo como esto:

java-siemens-1.gif

es decir, aparece una linea de texto cada segundo.  Si puebas enviar un SMS al módem o haces una llamada, verás como aparecen los mensajes URC (en la figura anterior puedes ver como he hecho una llamada al MTX65+G mientras corría el programa).

Casi se me olvida, podéis bajaros el proyecto de aquí:  proyectoAlarma


Bueno, espero que aquellos que estáis un poco desorientados encontréis de interés esta primera entrega. Si tenéis dudas o comentarios ya me diréis ;-)

 


Post relacionados:

  1. Programando en Java con los modems Siemens. Segunda entrega Hoy no tengo mucho tiempo así que seré breve. Acabo...
  2. Programando en Java con los modems Siemens. Tercera entrega Por fin este Sábado he tenido un poquito de tiempo...
  3. Desarrollando con Zigbee. Primera entrega. Hoy voy a hablar un poco de Zigbee desde un...
  4. Autoarranque de aplicaciones Java en módems Siemens Muy buenas. Hoy voy a poner un pequeño post relacionado con...
  5. Cómo usar ficheros con módems de Siemens desde Java. Como seguro ya sabéis, varios de los modelos de módems...








127 Respuestas a “Programando en Java con los modems Siemens. Primera entrega.”
  1. Dani dice:

    Hola,

    Muchísimas gracias, tu programa me ha servido de gran ayuda.

    Me gustaría plantearte una nueva duda. Aquí dices que para ejecutar el programa es necesario el comando at^sjra. Mi duda es ¿cómo hago para que el programa se ejecute nada mas arrancar el TC65T?

    Gracias

    Siento ser tan pesado.

    Salu2

  2. blogElectronica dice:

    Tienes que utilizar los comandos:

    AT^SCFG=”USERWARE”,”AUTOSTART”,”",”1″
    AT^SCFG=”USERWARE”,”AUTOSTART”,”APPNAME”"”,”programa.jar”
    AT^SCFG=”USERWARE”,”AUTOSTART”,”DELAY”,”",”50″

    (lo pongo de memoria, revísalo con el manual).

    Salu2.

  3. Dani dice:

    Hola,

    Muchas gracias por tu anterior respuesta. Si no es mucha molestia me he topado con otro problema. Como te había dicho mi intención es comunicarme con el TC65T via GPRS con un servidor, el TC65T se conectara con el controlador mediante el puerto serie 0. La aplicación se conecta perfectamente el problema surge a la hora de recibir datos. La aplicacion se despierta por un nuevo evento ^SISR leo los datos con un comando at^sisr=,1500 pero no consigo nada. Imprimo el resultado del comeando y no veo los datos. Se ve un ^SISR: , pero nada más. Espero que puedas ayudarme ya que no se que hacer.

    Gracias por todo.

  4. blogElectronica dice:

    Hola Dani,

    ¿estás leyendo los datos con el comando at^sisr por el mismo socket por el que estás recibiendo datos, es decir, por el socket que te indica el evento ^SISR?

    Es decir, si los recibes por el socket ID=1 tienes que leerlo con el comando AT^sisr=1,1500.

    Tal vez lo has visto pero si no lo has visto prueba de seguir el ejemplo (utilizando comandos AT) que se hace en el vídeo siguiente:

    http://www.matrix.es/videos/demoGPRS_Siemens.htm

    Salu2.

  5. Daniel dice:

    Gracias por contestar tan rapido pero no es ese el problema, lo compruebo y se hace sobre el ID correcto el problema esta en q lo que recibo solo se ve ^SISR: 1, pero no me aparece el mensaje.

    Espero conseguirlo pronto.

  6. Dani dice:

    Hola,

    Ya lo he conseguido, bueno en parte sigo teniendo pequeños errores pero funciona en parte.

    Muchas gracias por tu ayuda.

  7. pablo dice:

    que tal, he seguido tus entregas y me gustaria saber cuando publicas la tercera
    gracias ademas me gustaria saber donde puedo comprar el xt65 y por que utilizas el MTX65+G, en lugar de el primero que es mas barato

  8. blogElectronica dice:

    Hola Pablo,

    la publicaré cuando tenga un poquito de tiempo, estoy con muchas cosas a la vez. Supongo que en unos días la publicaré.

    Con respuecto a porqué utilizar el MTX65+G en lugar del XT65, la respuesta es que son dos cosas distintas. El MTX65+G es el XT65 con caja, es decir, listo para ser integrado en un vehículo o en cuelquier otro sitio. El XT65 es únicamente el módulo de Siemens, es decir, necesitas diseñar una placa PCB, una circuitería y meterlo en una caja para poder utilizarlo.

    Es lógico que si el MTX65+G tiene esa circuitería y una caja, es decir, es un producto acabado, sea superior en precio al XT65. Es un poco como decir que por qué no utilizas el motor de un coche en lugar del coche entero, si el motor sólo (sin la carrocería, ruedas, …) es más barato.

    Salu2

  9. Abel dice:

    Hola BlogElectronica…Bueno me meti en esta web en busqueda de un sistema de marketing mediante GPRS que pueda comandar a pantallas publicidades…No se si tendras algo de eso para ofrecerme…Por otro lado me intereso mucho este material y el tema, ya que soy tecnico electronico pero esta rama es una rama pendiente, que me gustaria meterme y poder descubrirla y hacer aplicaciones…Mas aun si lo haces ver facil y no complicado…

    QUeria saber si me podrias decir donde, como o que tengo que leer para poder aplicar el sistema a funcionar…Y que me saques ciertas dudas, como por ejemplo, es un servcio pago?? que tipo de conexiones tecnologicas – servicios hay desde poner un modulo en el auto hasta mandar el SMS desde el celular o de donde sea…

    Bueno muchas gracias, espero me llegue la respuesta a mi mail, saludos…

  10. pablo dice:

    gracias por tu ayuda,y te agradezco haber respondido tan pronto, creo que me decidire por el MTX65+G

  11. blogElectronica dice:

    Hola Abel,

    respecto a si deseas crear un sistema de publicidad con pantallas gestionadas por GPRS pues puedes utilizar un modem Siemens TC65T o MTX65. Para la pantalla seguramente te resulte interesante utilizar GOTs de Axiomtek si las pantallas no tienes que ser excesivamente grandes. Estos GOTs son panel-PC, es decir, una pantalla con PC incorporado. Disponen de conectores convencionales como USB y RS232, con lo que podrás conectar este dispositivo a un modem GPRS para actualizar los contenidos de forma remota.

    Salu2.

  12. Abel dice:

    Blogelectronica te agradezco que me hayas dado una mano, es la 1era vez q me meto en este tema y me resulta interesante lo que comentas y lo que me contestaste a mi.

    Queria saber que pasos me recomendas seguir, para poder llevar a cabo esto, para saber presupuestos, alguna empresa que de estos servicios?? algun lugar donde explique como llevar esto a cabo?que tan dificil es hacerlo solo? bueno esas cosas como para orientarme mas…

    Saludos, gracias!

  13. Leonardo dice:

    blogElectronica,

    Te pasaste… espectacular tu blog…. se agradece que haya gente que comparta sus conocimientos :D

    Nuevamente, gracias.

    Saludos,

    Leonardo

  14. blogElectronica dice:

    Hola Leonardo,

    me alegra que te guste mi blog.

    Para quien le interese acabo de publicar hoy Sábado la tercera y última entrega del proyecto.

    Salu2.

  15. Lorenzo dice:

    Hola blogElectronica, es curioso encontrar gente interesada en los módulos embebidos y que divulguen su KnowHow.
    No se hasta que punto conoces los módulo Java de siemens pero me gustaría saber que AMR (7 o 9) utilizan en su versión XT65 (w/GPS), es importante ya que la máquina virtual se mueve con dificultad en el ARM7 y me estoy decidiendo en el desarrollo de un sistema GPRS+GPS entre el módulo de Wavecom(OpenAt) y su buque estrella el Q2686 (ARM9) o el módulo de Siemens.

    Gracias

  16. blogElectronica dice:

    Hola Lorenzo,

    la verdad es que conozco bastante bien los módulos de Siemens. El XT65 monta un ARM7. Lo que dices que la JVM se mueve con dificultad … hombre …, yo creo que no, que funciona correctamente. Prueba de ello es la aplicación que he colgado en estos últimos posts. La puedes probar, verás que funciona perfectamente.

    No conozco en profundidad los módulos de Wavecom, pero el Q2686 perse a ser un ARM9, a nivel de comunicaciones GPRS es inferior en velocidad, pues es de clase 10, mientras que el XT65 de Siemens es GPRS clase 12.
    El XT65 lleva un chip GPS de Ublox en su interior integrado. Con el módulo de wavecom tienes que ponerselo a parte, con el consiguiente costo en tiempo de diseño y componentes.

    Salu2.

  17. Lorenzo dice:

    En efecto, el XT65 tiene un ARM7 a 54Mhz y el Q2686 un ARM9 a 104Mhz con gestion de velocidad para ahorro de consumo. EL primero corre código interpretado y el segundo código nativo compilado en “C”. EL Q2686 tiene un “plug-in” para poder conectar la parte de radio de un GPS (eRide) con el consecuente ahorro en el silicio (lo mismo con bluetooth y su stack).
    Creo que cada uno tiene su hueco en el mercado, de todas formas gracias por tu info. Por cierto, existe algún foro donde se hable del J2ME de los módulo de Siemes (a aparte del tuyo por supuesto).

    PD: Enhorabuena por tu página!!!

  18. blogElectronica dice:

    Hola Lorenzo,

    pues si, son dos conceptos distintos y posiblemente enfocados a aplicaciones distintas en muchos casos. No discuto que en ocasiones trabajar en código nativo no sea mejor (sobre todo en cuestión de rendimiento) pero creo que la tendencia es otra. Trabajar sobre java, vb.net, c# y lenguajes interpretados (o no codigo nativo) pienso que da mucha portabilidad para cambiar en un momento dado de plataforma, ya sea esta un módem, procesador, o lo que sea.

    Si quieres ver tendencias de módulos + gps Siemens de lo que vendrá dentro de poco, mira el final del tercer párrafo del siguiente link: http://www.3g.co.uk/3GForum/showthread.php?p=340112
    Eso sí, por ahora ese módulo no es programable. Por ahora.

    Respecto a otros foros lo desconozco, desde luego en español creo que no hay.

    Salu2.

  19. Dito dice:

    Una pregunta que seguramente será chorras pero que ahora no se como responder.

    Si configuras un módulo para que lance una aplicación en el arranque, supongo que, al igual que cuando la lanzas con el comando at^sjra, se “apropiará” del puerto serie y no permitirá la introducción de comandos AT. Como podrás pués reconfigurar el módem para evitar que la aplicación se lance de inicio?

    Tendrás que emplear multiplexación en el puerto serie o algo así para poder hacerlo? Como se haría si este fuese el caso?

    Gracias por anticipado y saludos.

  20. blogElectronica dice:

    Hola Dito,

    lo más fácil que puedes hacer es configurar, igual que estableces el parámetro autostart = 1 para arrancar automáticamente una aplicación, establece el parámetro delay= 250. Con eso tendrás 25 segudos desde que arrancas el equipo para cambiar los parámetros que quieras, antes de que arranque la aplicación.

    Salu2.

  21. Dito dice:

    Esa solución ya la había pensado, pero realmente me parece bastante cutre. Es decir, si yo tengo el módem integrado en otro sistema mayor y una aplicación que debe de correr en el módem tan pronto como sea posible nada más alimentar el sistema, como es mi caso, no desearé que esa aplicación tarde 25 segundos, ni 5 segundos en ejecutarse. Lo deseable sería que se pudiese configurar para que la aplicación se lanzase nada más alimentar el módem y que se dispusiese de un mecanismo alternativo para reconfigurar el dispositivo. ¿Debo de entender que no existe ese mecanismo, y que si configuro el módem para autoarranque con delay cero ya no podré nunca más reconfigurarlo ??????

    Saludos.

  22. blogElectronica dice:

    Dito,

    las cosas son como son y a mi no me parece “una solución cutre”. Te puedo decir que en la mayoría de las aplicaciones con este módem se deja un periodo de pocos segundos antes de lanzar el programa. Es así como funciona.

    Si tu quieres poner 0 segundos y luego quieres cambiar la configuración, deberás conectar el módem a una aplicación especial de Siemens por el pueto serie (no recuerdo el nombre, a ver si te lo puedo decir mañana) que permite poder obtener el control por el puerto serie de un modem que tenga una aplicación java con autostart=1 y con delay=0.

    Salu2.

  23. David dice:

    Hola:

    Acabo de comprar un modem como el que estais destripando (tambien en Matrix) y he leido el post de Abel, sobre cómo gestionar publicidad por GPRS en pantallas.

    Nosotros lo que hemos hecho ha sido conectar un Access Server de Bluegiga por cable serie a un panel LED, y le enviamos los mensajes que queremos que muestre, añadiendo un pequeño script al equipo. Se puede ver la solución aquí:

    LEDs

    También les podemos enviar a las pantallas mensajes mediante Bluetooth (jorl) con un teléfono móvil.

    Un saludo.

  24. Juan Francisco dice:

    Hola. Tengo un terminal TC65 y estoy haciendo mis primeras armas en este tema. Mi intención es hacer correr la aplicación de esta primera entrega en mi módulo. Es esta aplicación compatible con el TC65?

    Además, según estuve viendo, en mi módulo la salida por defecto para System.out es ASC1, la cual no se encuentra disponible en este Terminal! Leyendo el manual, encuentro que la salida para System.out es configurable, mediante el comando AT at^scfg. Obviamente, aún no sé trabajar con estos comandos. Alguna ayuda???

    Desde ya, muchas gracias, y felicitaciones por este excelente espacio que han creado!!!

    J.F.

  25. blogElectronica dice:

    Hola Juan,

    si, es compatible con el TC65, poque no sale nada de GPS en esta primera entrega.

    Respecto a cambiar la salida estandard, básicamente consiste en conectarte con el hyperterminal y enviar el comando AT^SCGF? Con el interrogante verás las respuestas del equipo y verás lo que tienes que poner. Tienes que poner la salida estandard como el ASC0. Pero mira el manual, ahí lo tienes todo. Es enviar el comando at^scfg=”Userware/Stdout”,”ASC0″.

    Salu2.

  26. Hola! Gracias por la rápida respuesta! Pues me he llevado una sorpresa: la version de firmware de mi terminal es la 1.041 :(

    Existe alguna manera de cambiar la ‘stdout’ en esta versión? El comando que tu mencionas no es válido para la 1.041… Ni siquiera aparece en la lista que arroja el comando AT^SCGF?.
    Sino, como puedo hacer debug visual (reemplazar el metodo System.out.println() ) a través de ASC0 ?
    Realmente, esta sorpresa no ha sido grata…:(

    Agradezco sugerencias de posibles soluciones, excluyendo romper en mil pedazos mi 1.041 y adquirir alegremente un 2.0! Es la más atrayente, pero la menos económica… ~:)

    Desde ya, muchas gracias a blogElectronica, y también a todos los que han leido estos comentarios!

    Saludos!!!

    J.F.

  27. blogElectronica dice:

    Hola Juan Francisco,

    no hay nada que hacer, con la versión 1.04 no se puede cambiar la salida estandard. Tampoco puedes hacer un upgrade a la v2.0 porque cambia un poquito el HW. Lo siento.

    Sólo te queda abrir el modem y sacar fuera el puerto serie1, pero deberás añadir lógica externa MAX232 … otra opción es eliminar las pistas que van al TX y RX del puerto serie 0 y cambiarlos al 1, pero corres serio riesgo de cargarte el módem si no lo haces bien.

    Salu2.

  28. Felipe dice:

    Hola de nuevo,

    Una vez más felicitarte por esta gran labor que estás realizando y con la que nos ayudas en gran medida.

    Te escribo para pedirte ayuda una vez más:

    He probado esta primera aplicación java en mi MTX-65, y va de lujo, sin embargo me ocurre el siguiente problema:

    abro el proyecto con el eclipse, y no me da ningún problema, todo perfecto, sin embargo, creo los archivos ALARMA.jar y ALARMA.jad, y la aplicación no funciona:

    Me he roto la cabeza buscando que es lo que no funciona, y no tengo ni idea de que puede ser, pues tengo configurado el entorno eclipse tal y como muestra el manual de siemens, etc…

    Desde el hyperterminal le envio al modem el comando AT, y me responde OK, posteriormente le envio AT^SJRA=”a:/ALARMA.jar”, y me devuelve lo siguiente:

    OK
    JAVA ERROR: MIDlet initialization failed: java.lang.Error: ClassFormatError: 56

    Sabes a que puede ser debido esto??

    Muchas gracias por adelantado

  29. Feje dice:

    Hola blogElectronica,

    Ayer escribí aquí un mensaje pero debió de haber algún problema con mi ordenador que no aparece… Te lo dejo hoy de nuevo:

    Tengo un MTX-65, modem similar al que utilizas para las entregas java que has hecho, pero sin GPS, por lo que en principio, esta primera entrega debería funcionar en mi terminal.

    Y en efecto, si copio los archivos .jar y .jad de la carpeta deployed en mi terminar, y le envio el comando para ejecutar, este lo ejecuta correctamente, y me van apareciendo los diferentes mensajes en el hyperterminal, sin problema alguno. (después de cambiar la salida del puerto ASC1 al ASC0).

    Mi problema viene cuando intento “compilar” dicha aplicación para generar los ficheros .jar y .jad por mi cuenta: he revisado de nuevo toda la instalación del eclipse, y demás, y todo está correcto, según como pone en el manual de siemens, y que muestras en un post anterior.

    Eclipse “compila” correctamente, y me genera mis archivos .jar y .jad, pero cuando los introduzco en el terminal, no se ejecuta la aplicación, de da un error, que ahora mismo no te sabria decir exactamente lo que muestra, pero algo similar a lo siguiente:

    OK
    Java Error: MIDlet error ……. ClassError: 56

    he revisado todo, y la verdad es que no he cambiado nada de los archivos que has colgado en el post, excepto el pin en el fichero .jad, lo demás es idéntico. ¿Sabes a que puede ser debido?

    No se si te servirá de algo, pero mi fichero .jar ejecutable ocupa 4.30k frente a los 4.32 del tuyo, con lo cual, hay algo que falla.

    ¿Podrias echarme una mano?

    Saludos, y gracias

    PD: Siento no poder escribirte todo el mensaje del error, pero es que estoy fuera de casa, y en unos dias no volvere…
    PD: Como se pararía la aplicación una vez que está funcionando el contador?? se podría parar desde el hyperterminal?? Yo no lo he conseguido

  30. blogElectronica dice:

    Hola Feje,

    ¿Estás utilizando el SMKT adecuado? ¿No estarás usando el SDK del TC65 con el XT65 o viceversa? ¿Qué plugin has utilizado durante la instalación del entorno de desarrollo, la 1.2.3 o la 1.5? ¿Has utilizado exactamente las mismas versiones de TODO que indica en el Java User Guide del modelo de módem que estás utilizando?

    Salu2

  31. Feje dice:

    Hola de nuevo,

    Pues parece que al final si que te llegó el primer mensaje ;) (Me llamo Felipe, pero me llaman Feje)

    Te cuento como lo hice:

    primero instalé la maquina java, la que me proporcionó Matrix Electr.

    Luego instalé el eclipse 3.1.2., bueno, copie la carpeta en el escritorio.

    Luego instalé el plugin 1.2.3 según pone el manual

    Y por último, instalé el IDE de Siemens para el TC65, el que me proporcionaron también en Matrix Electrónica, siguiendo todos los pasos, poniendo la carpeta donde estaba el eclipse.

    Reinicié el ordenador, y copie en el workspace que eclipse pone por defecto, la aplicación java que nos has proporcionado en esta primera entrega, excepto el contenido de la carpeta “deployed”.

    Abrí el eclipse, abrí el proyecto, abrí el fichero .jad y cambié el pin de la tarjeta sim, y di a “Build All”.

    Por último, en la ventana “Package Explorer”, click con el botón derecho en “ALARMA”, y en la opción “J2ME”, click en “Create Package”, y listo, en la carpeta deployed aparecen los dos ficheros: “ALARMA.jar” y “ALARMA.jad”.

    Los copio en el módulo, y… sorpresa no funciona. Exactamente, como te puse en el primer mensaje, aparece por pantalla en el hyperterminal:

    OK
    JAVA ERROR: MIDlet initialization failed: java.lang.Error: ClassFormatError: 56

    ¿Alguna idea? ¿Estoy haciendo algo mal?

    Y MUCHISIMAS GRACIAS DE ANTEMANO

    Un saludo

  32. blogElectronica dice:

    Hola Feje,

    aparentemente lo estás haciendo bien, pues lo detallas todo muy bien. ¿qué versión de firmware tienes de TC65 (comando ATI)? Si quieres envíame a jose @ blogelectronica.com los compilados y los pruebo en el mío. ¿Puedes probar con la aplicación ejemplo del Hello world que aparece en el Java User Guide a ver si la ejecuta correctamente?

    Salu2.

  33. Gustavo dice:

    Hola, ante todo enhorabuena por el artículo y tus comentarios blogElectronica.

    Recientemente he adquirido un MTX65+G (SIEMENS XT65 REVISION 01.001), he instalado todas las herramientas tal como indica el manual de Siemens, he generado los paquetes para el ejemplo “HelloWorld” y para tu programa “ALARMA”, en ambos casos el sistema descarga los programas en el terminal y los ejecuta, pero no muestra salida en pantalla (ni en la consola de Eclipse ni en el HyperTerminal). ¿Puedes darme por favor alguna pista de lo que puede estar ocurriendo?

    Muchas gracias.

    Un saludo.

  34. Gustavo dice:

    Hola nuevamente, ya tengo resuelto una parte el problema que acabo de plantear, con el comando at^scfg=”Userware/Stdout”,”USB” se redirige la salida al puerto USB. Ahora desde el HyperTerminal puedo ver el resultado, la pregunta es ¿Cómo puedo verlo desde Eclipse? ¿En la consola? ¿En modo debug?

    Cuando ejecuto el debug el sistema me responde en la consola:

    ====================
    Starting XT75 emulator for debugging application. Please wait …
    ====================

    COM port used for “emulator session”: COM15

    Configure USB port..
    >>> Starting Download of Jar and Jad file…

  35. blogElectronica dice:

    Hola Gustavo,

    efectivamente es necesario cambiar la salida estandard a ASC0. Respecto a cómo ver la salida estandard en el eclipse, yo no fui capaz en su día de que se muestre dentro del IDE. Siempre la obtengo en el hyperterminal (o el procom en mi caso).

    Salu2.

  36. Yo dice:

    Hola!
    Tengo un problema con un TC65 que salta un SHUTDOWN cada 20 seg , sin ni siquiera ejecutar el programa java(solamente conectando el hiperterminal). Me comentaron que la solucion es reinstalar el firmware, la versión que tengo del modulo es la 2.0 . Cuales son los pasos a seguir para reinstalar el firmware?, podria llegar a tener algún problema por este motivo?.
    Tengo otros modulos TC65 que funcionan perfectametne ocn el el programa embebido de java.

  37. blogElectronica dice:

    Hola,

    puedes probar reinstalar el firmware a la nueva versión 2.8 ó 3.0. Tu distribuidor te puede proporcionar las herramientas para ello. No estoy seguro, pero no se si se puede reinstalar la versión 2.0 sobre la misma 2.0

    Salu2.

  38. Pua dice:

    hola,

    El hardware de la versión 2.0 soporta tambien la 2.8 y la 3.0

    Pero si instalas las 2.8 ó la 3.0 no podrás volver a la 2.0

    Particularmente me gusta la 3,0 pues incorpora wacth-dog, classes desde Java para los GPIO’s y Jammig(ESto no lo uso)

    Habla con tu suministrador para obtner la versión, documentación y SDK de esa versión

    Saludos

  39. Pua dice:

    Por cierto te dice algo mas aparte de Shutdown?

    que te pone antes y después en el puerto serie?

    No habrás configurado el ^SCFG=”Autoexect” para que te apage el módulo cada cierto tiempo?

    Saludos

  40. Feje dice:

    Hola de nuevo,

    una vez más, ¡¡necesito ayuda!!.

    En primer lugar, agradecer una vez más estas entregas de java, que nos resultan muy útiles para los que estamos empezando en este campo de la electrónica.

    En segundo lugar, mi cuestión: imaginemos que tengo ejecutando en mi TC65 esta aplicación java, pero que necesito enviarle ocasionalmente información a la aplicación. Vease:
    - Modifico la aplicación para que cuando yo envíe por el puerto serie la secuencia “SMS” la aplicación envie un sms a un número predeterminado.
    - Si envio la secuencia “CALL”, el modem haga una llamada al número predeterminado.
    - … etc…

    En principio, todo lo que sea sacar cosas por el puerto serie es muy sencillo, simplemente utilizando:
    System.out.println(“texto”); o bien
    System.out.print(“texto”);

    Pero, ¿Y para leer datos del puerto serie?
    He intentado probar con System.in.read() pero el Eclipse me da error: “System.in cannot be resolved”
    (NOTA: he hecho el import java.io.*;)

    ¿Alguna idea de como leer datos por el puerto serie?

    Gracias de antemano

    Un saludo

  41. blogElectronica dice:

    Hola Feje,
    pues por ejemplo utiliza algo como:

    CommConnection com = null;
    buffer = new byte[200];

    com = (CommConnection) Connector.open(“comm:com0;baudrate=115200″);

    com_os = com.openOutputStream();
    com_is = com.openInputStream();

    //Si hay datos …
    if (com_is.available() > 0)
    {
    //Leemos los datos del puerto serie …
    len = com_is.read(buffer);
    }

    Salu2.

  42. Feje dice:

    Hola de nuevo,

    He colocado en la aplicación, justo despues de las declaraciones de las variables lo siguiente:

    byte[] buffer = null;

    CommConnection com = null;
    OutputStream com_os = null;
    InputStream com_is = null;

    buffer = new byte[200];

    com = (CommConnection) Connector.open(“comm:com0;baudrate=2400″);

    com_os = com.openOutputStream();
    com_is = com.openInputStream();

    Y dentro del timer:

    //Si hay datos …
    if (com_is.available() > 0)
    {
    //Leemos los datos del puerto serie …
    com_is.read(buffer);
    }
    System.out.println(buffer);

    Y Eclipse me da dos errores, concretamente, me pone lo siguiente:

    Syntax error on token “;”, { expected after this token (line 32)
    Syntax error, inset } to complete Block (line 40)

    Pues bien, la línea 32 es la línea que contiene “InputStream com_is = null;”, y la línea 40 es “com_is = com.openInputStream();”.

    Y llegados a este punto, no se que hacer…

    ¿Alguna idea?

    Saludos

    PD: Te dejo un enlace que he encontrado por internet, no se si te servirá de algo…
    http://forum.java.sun.com/thread.jspa?threadID=5176145&messageID=9680887

  43. blogElectronica dice:

    Feje,

    es muy complicado ver por qué te falla, puesto que el programa no está completo. Por las descripción del error ¿No te faltará cerrar alguna llave {} o faltará algún ; en algún punto del programa? A veces los compiladores fallan a la hora de decirte en qué línea está el fallo …

    Salu2

  44. Feje dice:

    Hola de nuevo,

    Ya he resuelto el problema. Resulta que las líneas:

    com = (CommConnection) Connector.open(”comm:com0;baudrate=2400″);

    com_os = com.openOutputStream();
    com_is = com.openInputStream();

    hay que colocarlas dentro de un “try”…

    Una cosa más, hay algún método para convertir lo almacenado en la variable buffer (que es de tipo byte[]) a tipo String??

    Un saludo

    PD: Ya se que es un blog personal, pero ya que todos compartimos aquí nuestros conocimientos, y yo hasta ahora no he aportado nada, me gustaría aportar mi granito de arena. ¿Que te parece si te paso esta “versión” de la primera entrega de Java, en la que se recogen datos por el puerto serie, y pones un enlace para que se pueda descargar? Creo que sería interesante que alguien más pueda acceder a ella, ya que es un poco engorroso lo de leer datos por el puerto serie, y si con ello le puedo ahorrar a alguien que esté empezando, como yo, unos cuantos minutos de buscar información…

  45. blogElectronica dice:

    Hola Feje,
    mándamelo a jose @ blogelectronica.com y lo cuelgo.

    Salu2.

  46. Isaac dice:

    Como cargo programas JAVA si mi terminal no tiene puerto USB?

  47. blogElectronica dice:

    Hola Isaac,

    por el puerto serie. Si haces click con el botón derecho del ratón en el icono azul del MES en propiedades, puedes especificar el puerto serie por donde subir los programas.

    Salu2.

  48. blogElectronica dice:

    Hola Feje,

    cuelgo aquí tu programa:

    http://www.blogelectronica.com/TEMP/PuertoSerieTC65.zip

    y tus comentarios del email que me escribiste, para que la gente lo entieda los cambios.

    Pues bien, aquí te paso el programa que dejaste en la primera entrega de Java un tanto retocado:

    - El timer, en vez de ser de 1 segundo, es de 5 segundos, y el contador lo incrementamos en 5 unidades.
    - Durante los 5 segundos entre mensajes por pantalla del timer, tenemos tiempo suficiente para introducir texto.
    - Si cuando se activa el timer hay datos disponibles, hacemos eco con ellos, es decir, los volvemos a mostrar por pantalla.
    - Si los datos recibidos son “exit”, se termina la aplicación y se apaga el módulo (at^smso).
    - Si el módulo recibe un sms, responde con otro sms con texto predeterminado a un número predeterminado.
    - Si el módulo recibe una llamada, responde con un sms con otro texto predeterminado al mismo número predeterminado.
    (los mensajes y el número se guardan en el fichero ALARMA.jad bajo los identificadores mensaje1, mensaje2 y num respectivamente. Igual que el pin)
    IMPORTANTE: Para la comunicación, el baudrate es de 2400. (cada uno que lo modifique a lo que quiera, o añadir unas líneas de código para obtener el baudrate y luego asignarlo…)

    Por lo demás, creo que no hay nada nuevo.

    gracias Feje por tu aportación,

    Salu2.

  49. berni dice:

    Buenas, el caso es que los tutoriales están de miedo. Muchas gracias, blogelectronica.

    Lo que pasa es que estaba siguiéndolos, y me topé con el error de Feje/Felipe: JAVA ERROR: MIDlet initialization failed: java.lang.Error: ClassFormatError: 56

    Él parece que lo solventó pero no sé cómo, ¿podríais explicarlo?

    Muchas thankyous

  50. Feje dice:

    Hola berni,

    El error que me apareció, y que comentas, me apareció después de instalar en mi portatil (tal como viene en el manual) todo el software necesario para programar en java el TC65.

    La verdad es que no tenía ni idea del porqué del error, y sigo sin tenerla, pero quizás pueda ayudarte:

    El error es debido a una mala compilación del programa que quieres introducir en el modem, o alguna cosa similar, pues el archivo .jar generado de esta forma ocupa un poco menos que el generado correctamente.

    Después de desinstalar y reinstalar varias veces el software, se me ocurrió probar con el ordenador de sobremesa que tengo en casa, y ¡¡¡funcionó!!!

    Todavía no se porqué sigue sin funcionarme en el portatil, aunque supongo que será por una máquina virtual de java que tuve instalada hace bastante tiempo…

    Como ves, no puedo ayudarte mucho, solo te cuento lo que me ocurrió a mi.

    Saludos

    • Elite dice:

      Hola FEJE y BENI. he estado investigando el fallo ese de :

      JAVA ERROR: MIDlet initialization failed: java.lang.Error: ClassFormatError: 56

      ya se como solucionarlo. Lo que esta ocurriendo es que la version del compilador de java produce unos bytecodes que (por lo menos) el TC65 Rev1100 no puede interpretar. Lo que hay que hacer es cambiar en el eclipse la version del compilador y esto se hace asi:
      En el menu superior pinchamos en: window\preferences\java\compiler

      y en el desplegable “compiler compilance level” elegimos una version menor, por ejemplo la 1.3 y ya esta.. recompilamos el proyecto y andando. espero que le sirva a alguien

  51. berni dice:

    Gracias feje, yo también he estado probando y probando, y probando hasta que conseguí hacerlo funcionar. creo que tenía que ver con el .jar y el .jad concrétamente que no había añadido al .jad el midlet con la clase correspondiente.
    Eso sí, una vez que ves cómo hacerlo es sencillote. Si “blogelectrónica” me lo permite, voy a referenciar un blog donde también esplican paso por paso cómo instalar eclipse (lo único que en vez de la wtk de siemens instalan la de sun, pero vamos, sabiendo que nosotros tenemos que instalar la de siemens, todo sería igual) y hacer un primer proyecto. El blog en cuestión es: http://dani.profesionalvirtual.es/?p=3

    Espero que os sirva de ayuda.

    Un saludo

  52. Kriyeng dice:

    Buenas,

    Estoy intentando generar mi primera aplicación con el TC65. Tengo el mismo modem que muestras tu en el video de como conectarlo al pc para empezar a trabajar con eclipse, pero sin el USB.

    Tengo una duda. En tu ejemplo, cuando ejecutas un System.out.println, recibes por el hiperterminal los datos. ¿Estos datos te vienen por el puerto serie o por el USB?

    En mi caso necesito crear un servicio socket mediante java i deseo que los datos que van llegando me salgan por el puerto serie. ¿Es eso posible?

    Ahora simplemente he programado esta prueba:

    public class Prueba{

    /**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println(“Prueba Salida Datos”);
    }

    }

    La ejecuto desde el hyperterminal con “at^sjra=”a:/mijar.jar” y simplemente me contesta OK, pero no me muestra “Prueba Salida Datos”
    ¿Es un problema de que estoy haciendo algo mal o es que los datos estan saliendo por otro puerto?

    Muchas gracias por adelantado!
    Saludos,

  53. blogElectronica dice:

    Hola Kriyeng,

    ejecuta un AT^SCFG?

    verás al final el parámetro:
    ^SCFG: “Userware/Stdout”,”ASC1″

    Stdout es la salida estandard. Especifica ASC0, ASC1 ó USB en función de por dónde quieres que te salgan los datos que envíes por printf.

    Salu2.

  54. Francesc dice:

    Hola saludos y felicidades por tus articulos.

    Tengo un problema, no consigo que mi aplicacion.jar se autoejecute al arrancar el modem.

    Le mando los comandos:
    AT^SCFG=”Userware/Autostart”,”1″
    AT^SCFG=”Userware/Autostart/AppName”,”aplicacion.jar”
    AT^SCFG=”Userware/Autostart/Delay”,”50″

    Siempre me da ERROR.
    No tendra que ver que ejecute el programa Switch Autostart off?
    Para que sirve este programa.

    Saludos y gracias.

  55. blogElectronica dice:

    Hola Francesc,

    creo que la línea correcta es:
    AT^SCFG=”Userware/Autostart/AppName”,”A:/aplicacion.jar”

    ( te falta el A:/ )

    El programa Switch Autostart off te sirve para quitar el autorstar=1, es decir, configura el módem con autostart=0. Lo encontrarías muy útil si en el Delay en vez de poner 50 hubieses puesto 0, es decir, que la aplicación java arranque inmediatamente después de alimentar el módem. Pues sin desactivar el autostart (con la aplicación java running vamos) no puedes subir nuevos archivos jad y jar al módem.

    Salu2.

  56. Francesc dice:

    Hola saludos de nuevo.
    No consigo configurar el autostart ni incluso usando la orden:

    AT^SCFG=”Userware/Autostart/AppName”,”A:/aplicacion.jar”

    En todas me da Error.

    Que puedo estar haciendo mal???

    Gracias.

  57. blogElectronica dice:

    Francesc,

    disculpame, hoy estoy muy liado y he ido muy deprisa y no me he fijado que había dos fallos.

    AT^SCFG=”Userware/Autostart/AppName”,”",”A:/aplicacion.jar”

    faltaban las comillas de enmedio (el password)

    Salu2.

  58. Francesc dice:

    Gracias por tu rapida respuesta.

    Agradecido ya funciona en autostart.

    Un saludo.

  59. pablois dice:

    hola:

    intento que mi apicacion envie un mensaje cuando se active un gpio, pero quiero escribir el numero y el mensaje a enviaren el .jad para que sea configurable.¿ alguna ayuda que me puedan brindar sobre como leer los parametros del .jad?

  60. blogElectronica dice:

    Hola Pablo,

    puedes utilizar algo como esto:

    //Método para leer una variable del fichero JAD
    public String leerVariableJad(String variable)
    {
    String valor=”";
    try
    {
    valor=getAppProperty(variable);
    }
    catch (Exception e)
    {
    e.printStackTrace();
    valor=null;
    }
    return valor;
    }

    Salu2.

  61. LuisFer dice:

    Hola,

    He instalado todo el SW necesario. He desarrolado con eclipse una aplicación muy sencilla. Cuando intento copiar los .jad y .jar en el modem TC65 no me deja. Los intento copiar en Module (el dispositivo que se crea en MiPC al instalar el SMTK). Cuando pincho con el botón derecho del ratón en propiedades me dicen que las propiedades del archivo no están disponibles.
    Sabéis que puede estar mal? Estoy intentando conectar con el puerto serie para ejecutar at^srja=a:\Ejemplo.jar pero no hace nada

    Muchas gracias, un saludo

  62. blogElectronica dice:

    Hola Luis Fer,

    ¿Has probado conectar con el USB? ¿Si conectas con hiperterminal por puerto serie, te responde a los comandos AT? ¿Qué velocidad de puerto estás utilizando, no lo tendrás en autobauding (AT+IPR=0)? si es así cámbialo a AT+IPR=115200.

    Y por otro lado es at^srja=a:/Ejemplo.jar , con / no \

    Salu2.

  63. LuisFer dice:

    Muchas gracias por su ayuda,

    Sí me contesta a los comandos AT conectándome por puerto serie con el hyperterminal. Perno no consigo copiar los archivos .jar y .jad.
    Lo he intentado hacer como dice el paso 5 del manual, context menu de Ejemplo.java y seleccionando Emulated J2ME Midlet del Item run as. (conexión a través del puerto serie).
    El puerto USB no me lo detecta pese haber instalado los drivers….
    ¿De la manera anterior puedo copiar y ejecutar sin usar el puerto USB?
    El error que me dice No Ras device installed, y me dice la consola del eclipse que arranque el SMTK de nuevo y repare la instalación…

  64. LuisFer dice:

    Ya he conseguido copiar los .jad y .jar
    Parece que en el PC del trabajo no se instalaba bien el MES-SMTK por cuestiones de seguridad, no sé. En mi portátil no he tenido ningún problema.
    Cuando ejecuto at^srja=a:/Ejemplo.jar con el hyperterminal conectado al puerto COM a que está conectado al modem GPRS, me dice OK. Pero no imprime el hola mundo.
    Sabes a qué puede ser debido?

    Muchas gracias de nuevo. Y enhorabuena por el blog. Estoy consultando las entregas y me vienen muy bien.

    Un saludo

  65. LuisFer dice:

    Buenos días.

    Ya sé porqué no me estaba escribiendo en el hyperterminal, hay que redirigir la salida estándar al puerto al que tienes conectado el dispositivo GPRS:
    at^scfg=”Userware/Stdout”,”ASC0″
    (En mi caso el primer puerto serie)

    Muchas gracias.

    Espero que os sirva de ayuda. Enhorabuena otra vez por el blog. Esta página ya está en mis favoritas

  66. Marc dice:

    Hola,

    En primer lugar enhorabuena por la web, está realmente genial, y me está sirviendo de gran ayuda.

    Quiero desarrollar una aplicación con el XT65, pero mientras tengo lista toda la parte hardware, estoy desarrollando la parte software (excepto el tema del GPS) con el TC65T sin problemas.

    Ahora bien, ¿qué hardware necesitaría conectar al XT65 para poder pasarle los archivos .jad y .jar al XT65 a través del MES, como vengo haciendo en el TC65T?

    ¿Sería suficiente con la circuitería para el RS232 (con un MAX232), un zócalo para la tarjeta SIM, y una fuente de alimentación a 3.3V? ¿Sería necesaria una circuitería extra?

    Muchas gracias, y un saludo,
    Marc

  67. sandra dice:

    hola, primero de todo enhorabuena por este blog que nos es de ayuda a tanta gente interesada en este tema. Gracias por compartir tu experiencia y conocimientos!
    yo he encontrado este blog desde google buscando el modem tc65 porque estaba buscando una solución a un problema que tengo a la hora de ejecutar cualquier programita desde eclipse para este modem. La cuestión es que he instalado todo el sw tal y como tu explicabas en un post, pero a la hora de ejecutar cualquier código desde eclipse me da este error: “Wrong java start response received from the module”. La verdad es que no sé muy bien por donde tirar…
    Además veo en muchas entradas tuyas que hablas del hyperterminal y de cargar programas dentro del modem y no tengo ni idea como hacer eso…
    Quizás mis dudas sean un poco más básicas que las de la gente que frecuenta este sitio, pero si pudieses orientarme o indicarme donde encontrar información más básica estaría muy agradecida.

    Muchas gracias y sigue adelante tan bien como hasta ahora!

  68. blogElectronica dice:

    Hola Marc,

    lo más sencillo es que abras el TC65T, saques el módulo del TC65 que tienes dentro y metas el XT65. Son pin a pin compatible. Funcionará sin problemas, yo lo hice en su día.

    Otra opción es montar el HW que aparece al final del manual de HW del XT65, pero ya te digo que la opción más rápida es utilizar hasta que tengas el diseño “la caja” del TC65T.

    Salu2

  69. blogElectronica dice:

    Hola Sandra,

    tienes que instalar / utilizar el software MES. Cuando vayas a Mi PC verás un icono azul. Botón derecho -> propiedades. asígnale el COM con el que te comunicas con el módem. Después podrás acceder a él como un pen drive. Hay muchos post por el blog hablando de ello.

    Salu2

  70. Marc dice:

    Hola,

    Muchas gracias por tu respuesta. ¡Sería genial si pudiera colocar el XT65 en la caja del TC65T! En este caso, solo me quedan dos preguntas:

    1) Si empleo el XT65 en la caja del TC65T, ¿necesitaré actualizar el SMTK y el Eclipse, o puedo seguir utilizando los del TC65T?

    2) Aunque esto sea una solución temporal, finalmente tendré que implementar el hardware, y ahora que estoy liado con el SCH y el PCB, me gustaría saber si la circuitería que aparece en el “Sample Aplication” del datasheet del XT65 es suficiente para pasar los archivos al XT65 a través del MES.

    Muchas gracias, y un saludo,
    Marc.

  71. blogElectronica dice:

    Hola Marc,

    1.- Seguramente puedes utilizar el SDK del TC65T sobre todo si el firmware de tu TC65 es la v2. Aunque no podrás usar la JSR179 si la necesitas. De todas formas te recomiendo utilizar el SDK del XT65.

    2.- Si pretendes usar el USB para el MES no hay mayor complicación, el circuito te sirve. Si pretendes utilizar el puerto serie necesitas el MAX para transformar niveles de TTL a RS232.

    Salu2.

  72. sandra dice:

    hola de nuevo.
    ya había hecho eso que me explicas (se me olvidó mencionarlo) y puedo acceder perfectamente al módem y de hecho me carga los .jar y .jal correspondientes. Por eso no entiendo lo que está ocurriendo… También intenté reparar el MES pero no hay ninguna mejora :(

  73. Marc dice:

    Hola,

    Muchas gracias por tus respuestas, me han sido de gran ayuda. Enhorabuena por la labor que desempeñas.

    Un saludo,
    Marc.

  74. blogElectronica dice:

    Sandra,

    cuando cargues la aplicación en el módem (el .jar y el .jad) ves al hyperterminal y ejecútala con el comando:

    AT^SJRA=”A:/nombreDeTuAplicacion.jar”

    Salu2.

  75. Fer dice:

    Buenas a todos!

    Tengo conectado a un portátil el MTX65 por uart (ASC0) y usb. He activado la ejecución automática de un .jar al arranque y me funciona ok, pero si la salida Stdout la marco como “USB” se queda “colgado” el puerto COM correspondiente a ese USB (vaya, el hiperterminal). Si la marco como “ASC0″ va todo OK, así que usaré el USB como vía alternativa de comunicación y debugeo…

    *es este un error típico?*

    Por otra parte, al ejecutar “ALARMA.jar” (que me funciona ok), si intento acceder por el COM del USB al terminal no me responde y la única forma de finalizar el aplicación es apagando la alimentación…se supone que es así o el micro del modem debería de escuchar al USB (en este caso) para ejecutar comandos at enviados?

    Gracias y enhorabuena por el blog”

  76. blogElectronica dice:

    Hola Fer,

    1) pues no, no es un error típico. Si la salida estandard la rediriges al USB, el System.out.println debe sacarlo por ahí y deberías poder verlo en el hyperterminal.

    2) Cuando ejecujas una aplicación java ésta toma el control de los puertos COM y USB, lo que se traduce en que no puedes enviar comandos AT desde, por ejemplo, el hyperterminal. Obviamente la forma de finalizar una aplicación java no es necesariamente quitar la alimentación. Puedes hacer una llamada a destroyApp(true) en algún punto de la aplicación y un notifyDestroyed() dentro del método destroyApp.

    Salu2

  77. Benji dice:

    Hola a todos,

    Estoy intentando conectar un MTX65 a un bus 1wire (ibutton) para capturar datos de distintios sensores (temperatura, etc). Lo estoy haciendo a traves del adaptador DS9097U, conectado al puerto ASC0, pero no consigo ni siquiera encontrar el adaptador. Tengo cargadas las librerias owapi para j2me, y he intentado esnifar el puerto asc0 mientras se hacia la busqueda del dispositivo, pero ni siquiera actividad en el puerto.
    Teneis alguno experiencia en este tema??

    Un saludo,

  78. blogElectronica dice:

    Hola Benji,

    pues la verdad es que no tengo experiencia en este equipo, que para serte sincero, no conocía y me alegra que me lo comentes porque parece muy muy interesante.

    Ahí va el datasheet para quien le interese:
    http://datasheets.maxim-ic.com/en/ds/DS9097U-009-DS9097U-S09.pdf

    Sólo un comentario. Ten en cuenta que el módem es un DCE y el PC un DTE, es decir, si el adaptador DB9 está pensado para un PC no te funcionará si lo conectas directamente en el módem. Entre él y el módem deberías colocar un cable DCE y DCE (RX y TX están invertidos enposición a como está en un DTE). No vayan a ir por ahí tus problemas.

    Salu2

  79. Jorge dice:

    BlogElectronica y/o Benji————–
    Con esto me podría armar un monitoreo a distancia de la temperatura en un vehículo? Un MTX65 (o un TC65T) un conversor 232-1Wire, y una sonda DS1820

    He notado que puede haber otra solución incorporando ZigBee, mas no se cual sería la mejor opción.
    Salu2

  80. Benji dice:

    Hola de nuevo,

    Os agradezco los comentarios. Como comentas estoy utilizando un cable null modem, que invierten rx y tx.
    El problema aparece al utilizar las librerias para 1 wire para j2me. Por lo visto hay que añadir unas cuantas variables de entorno, que no se como introducir desde eclipse al JVM del TC65. El enlace es el siguiente:
    http://jstampu.systronix.com/appnotes/listow/cldc_1wire.htm

    Como veras, utiliza Jembuilder, y por temas de conversion del codigo de J2SE a J2ME, se tienen que cambiar/añadir algunas variables
    de entorno como “os.name”, etc, que son propias de J2SE.

    La idea seria poder sacar la variable (os.name, etc) con:

    System.getProperty(“os.name”);

    Habiendola introducido inicialmente… desde el JAD??

    Un saludo,

  81. Antonio dice:

    Hola a todos, necesito me dijeran si se puede inicializar variables de entorno en un siemens mtx65 a unos valores que yo le indique y como se hace,
    o si puedo añadir en el fichero jad variables y estas convertirse en variables de entorno.

    Otra pregunta, ¿de donde se puede descargar la aplicación Jembuilder?

  82. blogElectronica dice:

    Hola Jorge,

    hombre, con zigbee es mucho más fácil. Dale un vistazo a los módulos Xbee y Xbee Sensors de Maxstream. Con un Adapter RS232, un XBee Sensor y el MTX65 lo tienes hecho sin desarrollar HW.

    Salu2

  83. hola a todos.
    Recientemente adquiri un terminal mxt-65-g. Instale java, eclipse + eclipseme1.5, el smtk de xt65 y el entrenador de siemens. Solde un cable propio para conectar el terminal con el pc, segun los pines del tutorial.

    Tengo un problema: Mediante hiperterminal, y el entrenador de siemenes funciona perfectamente, responde a comandos bien. Pero el MES no me deja conectarme al modulo.

    “Sale un error diciendo que no esta conectado al modulo que estaba fijado o que no es un modulo Siemens con la flash activada.”
    Eclipse tambien falla a la hora de compilar y ejecutar en el modulo.

    Solo tengo un puerto serie COM1 y no se que puede fallar.

    ¿podeis echarme una mano, gracias?

  84. blogElectronica dice:

    Hola Ricardo,

    tienes que configurar el módulo con AT+IPR=115200
    Ese cable que has hecho UTILIZA SÓLO los 5 pines de TX,RX,RTS,CTS y GND.

    Salu2.

  85. Gracias Blogelectronica, ha sido desconectar los pines sobrantes y mandar el commando at y a funcionar perfectamente….gracias

  86. JF dice:

    Hola a todos!
    Estimado Benji, has tenido alguna novedad al respecto al uso las de librerias para 1 wire para j2me? Yo necesito hacer un sonda de temperatura similar con un TC65, y si lo que tu planteas funciona correctamente en Eclipse, creo que me decidirìa finalmente por esa opciòn.
    Serìa interesante que nos mantengas al tanto de tu avance…
    Desde ya, MUCHAS GRACIAS!

  87. Benji dice:

    Hola JF,

    Siento decirte que hemos descartado seguir este proyecto con el siemens TC65 debido a las incompatibilidades de las librerias de 1 wire con el j2me de este dispositivo. En su lugar vamos a emplear un C4 que corre con j2se.

    Un saludo,
    Benjamin

  88. Juanra dice:

    Buenas a todos tengo un problemilla con el XT65 y es el siguiente.

    Cuando abro más de una conexión TCP simúltaneas, me aparece este mensaje URC:

    ^SBC: Undervoltage

    Y se apaga.

    Se pueden tener más de una conexión TCP abierta? En mi caso tengo abierto un socket TCP y una conexión a un servidor FTP para descargar del Log.

    Un saludo y muchas gracias

  89. blogElectronica dice:

    Hola Juanra,

    sí, se pueden tener hasta 6 sockets cliente o 2 sockets listener y 4 clientes. ¿Has mirado con un osciloscopio la alimentación del equipo? Te lo recomiendo.

    Tiene toda la pinta de que la fuente de alimentación que utilizas (o la etapa de alimentación) es insuficiente. Piensa que puedes tener picos de hasta 2A. De hecho el URC que indicas es el que el módulo saca cuando la tensión de alimentación es baja justo antes de apagarse por ese motivo.

    SAlu2.

  90. Pua dice:

    Hola juanrra,

    Ese URC es de voltaje insuficinete. el calculo de ese URC es la media de último minuto, creo recordar. Eso es que estas alimentando al módulo insuficientemente.

    Salu2

    Pua

  91. Barjuan dice:

    Hola a todos

    En primer lugar felicitarte por el blog, porque es una gran ayuda para la gente que programa estos dispositivos.

    Y ahora la pregunta, tengo un MTX65 y para realizar comunicaciones GPRS, enviar SMS, etc necesita la SIM. Esta SIM debe ser de algún tipo en especial? cuando la compre debo decir que tenga alguna característica determinada? Vale cualquier SIM?

    Perdonad por la pregunta tan simple que hago, pero es que soy muy nuevo en esto.

  92. blogElectronica dice:

    Hola Barjuan,

    no hay nada que perdonar, nadie nace sabiendo.

    Respecto a la SIM lo normal es que las SIM ya vengan provisionadas para GPRS, por lo que te diría que con cualquier SIM (al menos con Vodafone, Orange y Movistar que son las que yo manejo habitualmente) no debes tener problema alguno.

    En ocasiones puede que sólo te interese, por ejemplo, tener datos, es decir tener una SIM que sólo realice conexiones GPRS y mande SMS pero no quieres que realice llamadas de voz. Para eso sí que tienes que hablar con el operador. Orange por ejemplo tiene una tarifa sólo datos de 3Euros/mes con 20MB de transferencia.

    Salu2.

  93. AQ dice:

    Hola:

    Disculpa, tengo una duda, intento manipular un puerto GPIO, ya lo configure como entrada y mi duda es como puedo leer desde la aplicacion java, y si hay manera de implementar un listener para cada cambio de nivel en el pin.

    Gracias espero que me pudieras ayudar

    • blogElectronica dice:

      Hola AQ,

      puedes leerlo con el comando AT^SGIO y sí, puedes recibir un URC pero debes configurar un puerto para ello. Mírate el capítulo 20 del manual de comandos AT, el comando AT^SCPOL, no seas vagote.

      Salu2.

      • Pablo dice:

        Hola, al hilo de esto, he estado mirando el manual y no he encontrado ningun comando para hacer un listener del puerto serie ASC0, mediante SCPOL no es posible. Se puede hacer con un bucle e ir comprobando con el método available si hay datos nuevos pero si hay un comando que lo haga me parece mejor solución. Existe este comando? Muchas gracias.

  94. AQ dice:

    Hola de nuevo:

    Gracias por tu respuesta me ha sido de gran ayuda, ya revise el comando AT^SCPOL
    y efectivamente me ayuda a verificar un pin, lo que pretendo hacer es decodificar una señal infrarroja de control remoto, segun veo, la velocidad de pollin es de 4.6ms pero necesito hacerlo a menos de 1ms. Me gustaria saber si hay manera de poder hacerlo.

    Te agradeceria bastante tu ayuda
    saludos!!

  95. Diego1980 dice:

    Hola a todos,
    Exelente blog.
    Mi consulta es si con el XT65, haciendo una aplicacion en j2me puedo manejar el usb para controlar un celular, o un pic u otro periferico.
    Espero que alguien me pueda ayudar,
    Gracias.

  96. blogElectronica dice:

    Hola AQ,

    olvídate de hacer eso con un pin del TC65, no es posible. Debes utilizar un chip intermedio para la tarea, pero no directamente el TC65. No está concebido para hacer un muestreo tan rápido.

    Salu2.

  97. Mario dice:

    Hola a todos:
    Me gustaría saber si disponeis de un ejemplo de conectar un módulo MTX a GPRS, para que una vez conectado, usar sockets desde java en lugar de usarlos mediante comandos AT.
    Muchas gracias de antemano,
    Mario

  98. Mario dice:

    Tengo un modem MTX65G.
    Este modem tiene un conector de 15 pines y viene con un cable que tiene un RJ un un subd9. Por lo que he podido ver, para conectar ese subd9 a mi PC tengo que cruzar las señales.
    He realizado aplicaciones de prueba y efectivamente cruzando el cable el modem puede enviar datos al PC pero al contrario no, mi modem no lee nada.
    He conectado una caja de luces entre el modem y el PC y lo que he visto es que el modem tira la señal de datos del PC.
    ¿Teneis alguna noticia de esto que me pueda ayudar?
    Muchas gracias de antemano,
    Mario

    • blogElectronica dice:

      Hola Mario

      NO utilices ese cable directamente, el DB9 NO es un cable RS232. de ese conector DB9 (o del DB15) utiliza ÚNICAMENTE los pines RX,TX, RTS, CTS y GND. Utilizando el DB9 del cable que me comentas con un PC lo único que haces es cortocircuitar señales como la DTR, … con el bus I2C … lo que te digo, utiliza sólo los 5 hilos y verás como todo te va bien.

      Salu2.

      • Mario dice:

        Es necesario usar el RTS y el CTS? Me explico:
        Yo abro el puerto con las opciones:
        “autocts=off;” +
        “autorts=off”;
        Tengo una caja que me permite cruzar o quitar ciertas señales. Por las pruebas que he realizado, en el modem MTX65 usando el puerto com1 (el del conector de 15 pines) sólo necesito GND, TX y RX. Con la misma configuración de cables, con el modelo MTX65-G, necesito introducirle al modem la señal CTS en activo para que me envíe datos y lo que no he podido es enviarle datos desde mi PC.

        Otra cosa que he observado, con una caja de luces es que el modem algunas señales son bajas.

        Por otro lado, he visto que el MTX65 puedes acceder a la consola de comandos AT por el puerto serie o bien por el USB si lo conectas, sin embargo con el MTX65-G aún no lo he conseguido.

        Muchas gracias,
        Mario

  99. AQ dice:

    Que tal:
    Estoy intentando habilitar la comunicacion por spi, pero no se como enviar mensajes, en el manual esta el formato del mensaje, mi duda es si es el con el comando at^sspi o existe algun otro comando, cuando ejecuto la aplicacion java, habilito el spi con la siguiente linea:

    atc.send(“at^sspi=1020,0000,0000,0000,0000″ + “\r”.toUpperCase());

    despues intento enviar un mensaje con esta linea:

    atc.send(“at^sspi=” + “\r”.toUpperCase());

    es el formato que viene en el manual, pero me manda una excepcion, no se si sea correcto hacerlo asi o haya algun error.

    Les agradecería mucho su ayuda
    Saludos!!

  100. Shintarillo dice:

    Hola a todos,
    Estoy intentando instalar el MTX65+G-V3 y no hay drivers en el ftp de matrix. ¿Sabeis como los puedo conseguir o simplemente es que no tengo acceso a ellos?

  101. martha dice:

    holas! cómo estás? soy nueva en tu blog y buena en realidad no sé mucho de estas cosas estoy trabajando en un proyecto en la u y recién he empezado a utilizar este modem y tengo una duda, logro instalarlo bien pero luego al conectarlo no puedo abrir el módulo y me sale como si no estuviese conectado pero en el hyperterminal si lo reconoce entonces no sé que debo hacer o donde debo copiar los archivos que pones, te agradeceria que me respondas.

  102. pablois dice:

    Hola martha:

    Deves tener instlado el MES que viene en en el disco que te envian
    junto con el modulo asi lo reconocera por usb y puedes copiar los archivos en a:/ dentro del modulo que te aparecera en mi pc, si ya lo tienes instalado dale clic derecho a el icono en mi pc y verifica que puerto esta usando

  103. Sete dice:

    Somos nuevos en esto y estamos intentando hacer funcionar el ejemplo de alarma. Tras introducir el comando de ejecución nos devolvia ok pero no muestra nada mas, asi que intentamos cambiar la salida al usb con at^scfg=”userware/stdout”,”usb” y con at^scfg=”userware/stdout”,”usb”, pero el modem nos responde ERROR.
    Esto tambien lo hemos probado con el helloworld
    ¿tienes alguna idea de donde estamos metiendo la pata?
    Gracias de antemano

  104. pablois dice:

    no tengo el manual a la mano pero me parece que te hace falta el pasword
    intenta
    at^scfg=”userware/stdout”,”",”usb”

  105. Sete dice:

    Gracias a ambos. He tardado en responder porque he tenido problemas para cargar esta página (clasico error 404) y hoy por fin me ha dejado.
    Lo del password lo habia probado y no me funcionaba, pero da igual. Al final me hice un cable para el otro puerto y ahi es donde me responde.

    Un saludo

  106. Antonio dice:

    Hola , tengo el siguiente problema , a ver si podeis ayudarme.

    Tengo un modem de los nuestros el cual crea una una conexion gprs en modo servidor para que un cliente pueda preguntarle cual es su posicion GPS , para , que el cliente sepa la ip , lo que hago es actualizar el dyndns ,hasta aqui todo correcto , el problema es que cuando pierde la cobertura ya no puedo acceder mas al systema , creo que pierde la ip , y no se como darme cuenta que ha recuperado la ip y que esta ha cambiado , para volver a informar al dyndns y no se si tendre que volver a abrir la conexion gprs del lado servidor (creo que no)

    gracias

  107. Antonio dice:

    A alguien se le ocurre como hacer que se pierda la covertura y por tanto cambie de ip , incluso he metido el modem en papel albal y nada sigue conectao !!

  108. Pua dice:

    hola,

    Prueba a hacer deattach de GPRS con at+cgatt, creo recordar” y perderás la conexión GPRS completamente.

    Salu

    Pua

  109. LINA dice:

    Hola,
    Primero queria felicitarte por esta pagina y agradezco que compartas tus conocimientos con todos en la red!
    Tengo una pregunta un tanto basica pero la verdad no he logrado encontrar algun comando con el que abortar un programa que se ha ejecutado desde el hyperterminal.
    Probe ejecutar con AT^SJRA el proyecto alarma y se queda con el contador en buble infinito que comando puedo introducir en el hypertermial para abortar el programa?

    Gracias!

  110.  
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.