Ejemplos Java para módems de Siemens
Escrito por: blogElectronica en 2.DISPOSITIVOS (práctico), Comunic. GSM/GPRSA 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.

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.


Julio 15th, 2008 a las 11:25
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?
, era cuestión de permisos a la hora de instalarlo!
Por cierto ya me funciona el MES
Salu2,
Borja.
Julio 15th, 2008 a las 20:10
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.
Julio 17th, 2008 a las 11:28
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
.
Salu2
Julio 17th, 2008 a las 12:52
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
Julio 17th, 2008 a las 20:11
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
Julio 28th, 2008 a las 20:33
¿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
Julio 28th, 2008 a las 23:28
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
Julio 30th, 2008 a las 19:49
Hola,
hay alguna manera de enviar archivos a traves del puerto com y comandos AT?
Salu2
Julio 30th, 2008 a las 21:11
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.
Julio 31st, 2008 a las 16:45
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!
Julio 31st, 2008 a las 18:04
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.
Julio 31st, 2008 a las 22:53
Muy buenos los ejemplos, tenes alguno enviando datos por HTTP con POST?
Desde ya muchas gracias.
Agosto 5th, 2008 a las 11:39
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
Agosto 6th, 2008 a las 10:20
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.
Agosto 6th, 2008 a las 17:34
Hola Faru,
pues por el momento no tengo ninguno. Intentaré hacer algún ejemplo y colgarlo cuando tenga un rato.
Salu2
Agosto 6th, 2008 a las 17:38
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.
Agosto 6th, 2008 a las 17:49
Hola Jose,
poniendo a off autocts y autorts funiona correctamente!!!
Muchas gracias.
Saludos.
Agosto 7th, 2008 a las 16:50
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
Agosto 22nd, 2008 a las 17:32
Hola,
¿Es posible correr en el siemens un servidor http que acepte conexiones?
Muy bueno el blog.
Saludos,
Gracias,
Rogelio
Agosto 23rd, 2008 a las 10:02
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.
Agosto 23rd, 2008 a las 10:03
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
Agosto 28th, 2008 a las 16:43
Hola BlogElectronica,
Muchas gracias por tu respuesta. No lo hice en mi otro comentario pero debo agradecerte por la info que pones en este blog pq realmente es de mucha ayuda. Respecto a la guia de debug ya la tengo pero no he conseguido hacer funcionar el debugging. Los pasos que he seguido son:
1) Instalar el WTK en mi ordenador (se crea una conexión telefonica en Conexiones de Red)
2) Instalar Eclipse, el plug-in EclipseME
3) Crear una aplicación del estilo “Hello world”, compilarla y debugar.
Me parece que hay que entrar el PIN antes de debugar
He conseguido ejecutarla y “debugar” viendo el resultado en el HyperTerminal.
El problema es que me gustaría conectar el módem con un microcontrolador via RS-232 y necesito saber lo que corre en el bus. Para ello he preparado un programa que podría hacer de “bridge” entre ambos pero me gustaría debugar para poder conocer que es lo que recibe el modem.
La secuencia de inicialización que obtengo de Eclipse es la siguiente:
=========================================================================
Starting XT75 emulator for debugging application. Please wait …
=========================================================================
COM port used for “emulator session”: COM4
Configure USB port..
>>> Starting Download of Jar and Jad file… >> Establishing TCP/IP connection “IP connection for remote debugging”…
Agosto 29th, 2008 a las 11:15
Parece que no ha entrado todo el comentario. Quería agradecerte este blog porque es de mucha ayuda. Está muy bien explicado.
Muchas gracias
Sergi
Septiembre 5th, 2008 a las 9:11
Hola, ante todo enhorabuena por el blog, es completisimo, pero aún así no he encontrado nadie que le suceda algo parecido a lo que me sucede a mi:
Estoy trabajando con el MTX65, mi aplicacion debe mandar mensajes de unos 400 bytes via GPRS, un mensaje cada 2 segundos, y en esos mensajes debe aparecer la regerencia geoestacionaria (coordenadas GPS+hora) entre otros datos que recibo por el puerto serie, pues funciona muy bien, hasta que llega un momento que me salta un error en la funcion sendAT del tipo ‘IllegalStateException’ de la clase ATcommand. No se si tendrás idea de a qué puede deberse esto.
Muchas gracias de antemano.
Nota post post: Perdona si te he duplicado el comentario pero la otra entrada me he dado cuenta que era más antigua que esta.
Septiembre 7th, 2008 a las 16:39
Hola Grande,
es muy complejo saber lo que te ocurre sin ver el programa. ¿Has establecido alguna pauta para que te aparezca el error? ¿Estás utilizando la clase ATCommand para enviar datos GPRS o la clase SocketConnection? ¿Para la lectura del GPS utilizas ATCommand o la JSR179? ¿Al hacer qué con la clase ATCommand te devuelve el error (enviar datos, leer GPS, …)?
Salu2.
Septiembre 8th, 2008 a las 8:32
Hola de nuevo, tanto para GPS como para GPRS utilizo la clase ATcommand. El error se produce al intentar enviar con ‘at^sisw’. He intentado usar la clase SocketConnection pero no logro enviar nada a mi servidor.. he usado tu ejemplo tal cual, cambiendo solo la direccion del servidor y el puerto. La lectura del GPS la hago con ‘at^sgpsp=2′ y la capturo con la clase ATevent. Espero haberte podido prorporcionar mas datos para que puedas echarme una mano. Gracias por tu interes.
Septiembre 8th, 2008 a las 12:09
Creia que el error podia deberse a que ejecutaba un comando at antes de que se terminara de ejecutar otro comando ( necesito mandar muchos mensajes GPRS, uno cada 2 segundos aproximadamente), pero he puesto todas las llamadas a la clase ATcommand en el mismo hilo, asi que no deberia pasar y sin embargo me sigue saliendo el error. Me sucede cuando el equipo lleva un tiempo funcionando, rara vez salta el error al principio. Pero no me aparece ningun error de desbordamiento de pila ni nada por estilo.
Septiembre 11th, 2008 a las 11:06
Hola grande,
según leo en los manuales:
“IllegalStateException”
Signals that a method has been invoked at an illegal or inappropriate time. In other words, the Java environment or Java application is not in an appropriate state for the requested operation.
Por lo que en algún instante estás enviando un comando AT con la clase ATCommand en un mal momento. ¿No estarás enviando algún comando AT de forma asíncrona aunque lo tengas todo en el mismo hilo? Es decir, no estarás también enviado comandos AT en un timer o en la clase ATevent? ¿Enviando qué comando te falla y cual es el comando previo?
Salu2
Septiembre 12th, 2008 a las 9:13
Inicialmemte si enviaba AT en la clase ATevent, pero lo quite, y en el TImer no uso ATcommand. Lo que si tengo abierto es el puerto serie pues necesito mandar por GPRS lo datos que recibo por dicho puerto. Tengo pues un hilo dedicado exclusivamente a la recepcion por el puerto serie, pero no uso ATcommand en ese hilo, solo lo uso en la clase principal. Los comandos que ejecuto son tres principalmente, ‘at^siso’ para comprobar la conexion, ‘at^sisw’ para enviar el mensaje y ‘at^sisr’ para leer el buffer. El error siempre se produce en torno al uso de AT^SISR, osea el ejecutar el propio comando o al ejecutar el comando posterior. Se me ha ocurrido parar el hilo del RS232 durante el envio y recepcion GPRS, y parece que va mejor pero esta solucion no me convence porque me ralentiza el programa ya que pierdo datos, (los que no se reciben por el RS232) y debo esperar otra vez que lleguen esos datos para poderlos enviar.
No se si me habré explicado con claridad para que me puedas echar una mano, no obstante te reitero las gracias por el interes que muestras. Enhorabuena por la idea del Blog y por lo bien que lo llevas.
Septiembre 12th, 2008 a las 17:15
Hola Grande,
te envío por email un ejemplo que puede ser de tu interés. Dale un vistazo. Entiendo tu problema, pero si me dices que sólo tienes 1 hilo con ATCommand …, no se me ocurre decirte otra cosa que uses las clases de java para el socket o controles la excepción. El ejemplo que te envío utiliza la clase socketconnection.
Salu2
Septiembre 23rd, 2008 a las 11:35
Hola blogelectronica,
ante todo, enhorabuena por vuestro magnífico blog. Utilizo el TC65 de Siemens y tengo una pregunta sobre el ejemplo de SMS, quizá fácil de responder, pero es que acabo de llegar a esto:
He cargado el ejemplo en el TC65 y como única respuesta me imprime por pantalla “Recibido otro URC: ^SYSSTART”, ni siquiera se ejecuta la configuración inicial. ¿Cómo puedo solucionarlo? Muchas gracias.
Septiembre 23rd, 2008 a las 12:14
Hola de nuevo,
con respecto al comentario anterior, no sólo es que aparezca lo del SYSSTART, es que también el hyperterminal queda bloqueado y no puedo introducir ningún comando AT más. Espero vuestra ayuda.
Un saludo
Septiembre 23rd, 2008 a las 20:04
Hola Superlópez,
cuando, desde apagado, enciendes el módem, antes de ejecutar la aplicación java, recibes el ^SYSSTART ? ¿Por casualidad no tendrás configurado el módem en autobauding (AT+IPR=0)? Si lo tienes en autobauding ponlo a AT+IPR=115200. ¿Qué versión de TC65 tienes (comando ATI)?
Salu2.
Septiembre 24th, 2008 a las 9:03
Hola,
Tengo la versión 3 del TC65.
La señal de ^SYSSTART la recibo correctamente, y el bitrate es de 115200.
¿Podría ser que el URC ^SYSSTART bloqueara la salida del programa y por eso en el hyperterminal no se pueda introducir ningún comando más? Gracias.
Un saludo.
Septiembre 24th, 2008 a las 11:13
Hola,
ya se ha solucionado el problema del bloqueo:
Como los mensajes no se enviaban introduje algunas trazas por el programa y comenté la llamada a destroyApp.
Sin embargo, los mensajes siguen sin enviarse, no llegan al teléfono. Le echaré un vistazo al post de PDU y revisaré la configuración en los AT.
Saludos y gracias!!!!!
Septiembre 25th, 2008 a las 12:31
Alguien sabe cómo se envía un mail a traves de un servidor de correo son SSL activado?? Sé enviar mails a través de servidores normales pero si tiene este tipo de seguridad me da error.
Alguna idea?
Gracias!
Septiembre 26th, 2008 a las 13:54
Hola,
una preguntilla, estoy implementando un método que imprima por pantalla un SMS cuando llega al TC65.
Al recibir el +CMTI extraigo el índice del mensaje, lo convierto en string y con send (String) lo envío.
¿Con el método send (String) es posible obtener respuesta del comando, es decir, si con send (String) envío el comando AT+CMGR y el índice del mensaje se debería imprimir por pantalla? Es que yo sólo consigo cambiar parámetros de comandos.
Saludos
Septiembre 26th, 2008 a las 16:20
buen dia,
excelente blog, se nota que es mantenido por alguien que sabe del tema y muy suelto con su know how.
Me asalta una duda, ¿cómo apago el gps?, es decir, lo activo, tomo las coordenadas y lo envio a un server via http, y después de eso apagar el gps y desconectar de internet, tengo el XT75.
Y lo estoy tratando de hacer uniendo los dos ejemplos que tienes publicados, el de http y el de gps.
Gracias por lo que me puedas ayudar.
PD:Excerlente blog
Septiembre 26th, 2008 a las 18:57
Hola Superlópez,
a ver …
… “que imprima por pantalla” …
… “Con el método send” …
tienes que pensar que quien lee un post no sabe a qué te refieres y hay que ponerlo todo muyyy clarito, pq eso de por pantalla yo no se si estás haciendo el programa para un PC que se quiere comunicar por puerto serie con un módem, o estás haciendo un programa java por un módem y donde dices pantalla quieres decir puerto serie. Lo mismo con lo del método send. Método send ¿de qué clase? ¿de la clase ATCommand?
Si lo que te refieres es que si por ejemplo al hacer:
str = atc.send(”AT\r”);
en str puedes recibir un “OK” la respuesta es sí.
Si lo que quieres es sacarlo por la salida estandard, puedes hacer un:
System.out.println(str);
Salu2.
Septiembre 26th, 2008 a las 19:00
Hola Oskar,
lo puedes apagar con el comando AT^SGPSS, dale un vistazo al manual de comandos AT a ese comando y verás los parámetros para apagarlo.
Salu2.
Septiembre 29th, 2008 a las 9:30
Hola blogElectronica,
gracias por tu aclaración. Lo siento mucho, pero es la primera vez que expongo dudas de programación en un blog y la inexperiencia se nota
El programa en Java lo implemento en un PC (con Eclipse), que se comunica por puerto serie con el módem TC65 versión 3. El SMS lo envío desde un móvil al TC65 para imprimirlo por la pantalla del Hyperterminal, cuya salida está asociada a ASC0.
Bien, para todo esto utilizo la clase ATCommand. He añadido al código la implementación de la interfaz ATCommandListener y la activación de los URC para SMS (at+cnmi=3,1,2,0,1) que tú proporcionas en este post. He mirado los parámetros de este comando pero creo que la combinación que mejor viene es esta.
En mi método, para imprimir el SMS por el Hyperterminal, capturo el índice del mensaje, proporcionado por +CMTI. La captura la hago con el método charAt de la clase String. Luego con el método send de la clase ATCommand envío at+cmgr con el índice que he capturado.
Y luego, al ejecutar y enviar el SMS desde el móvil:
Llega el +CMTI, pero el mensaje de “Recibido el URC de SMS entrante” que está programado en la implementación de ATCommandListener no se imprime. Tampoco se imprime el SMS recibido.
El caso es que si llega otro URC que no sea ni RING ni CMTI sí imprime el mensaje asignado, “Recibido otro URC”.
El método para imprimir el SMS lo he colocado en startApp, dentro de un bucle que cuenta hasta 100 segundos, para que en ese tiempo reciba el SMS y lo imprima, así que no creo que el problema sea porque la aplicación acabe.
¿Puede ser que esté haciendo algo mal al capturar el evento? Bueno, por supuesto he creado un objeto ATCommand y con addListener he añadido un objeto de la implementación de ATCommandListener.
Espero haberme explicado mejor. Muchas gracias y saludos.
Septiembre 30th, 2008 a las 1:15
Una pregunta…
Como leches hago para que me salga el debugging! cuales son los pasos a seguir, por que me he descargado un ejemplo y me funciona el debugging perfectamente, pero en el momento que toco cualquier cosa, luego ya me sale el mensaje de “No debuggin session is started!”.
no sé ya que hacer chicos!!
Gracias!
Sitol.
Septiembre 30th, 2008 a las 22:57
Hola Superlópez,
sí, te has explicado muy bien. El caso es que dices que “llega el +CMTI” y el mensaje no se imprime. No me cuadra mucho que sí recibas el evento y no se muestre en pantalla. ¿Es decir, si realizas una llamada perdida al módem, no te muestra por pantalla el URC de llamada entrante????
Puedes probar sin tener java corriendo, es decir, con la configuración apropiada y conectado el módem al hyperterminal, llamar al módem y enviar un SMS y comprobar si con el hyperterminal recibes los URCs? ¿Has probado con otra SIM sin pin?
Salu2
Septiembre 30th, 2008 a las 23:01
Hola Sito,
la verdad es que, y ya es una opinión mía, resulta un tanto tedioso y terriblemente lento trabajar con el debuging del Eclipse. Casi todas las empresas que conozco que desarrollan estas aplicaciones acaban usando el típico debugging por trazas (System.out.println) de toda la vida. Yo mismo rara vez utilizo el debug.
No comentas que plataforma estás utilizando. Si no estás debugando por USB (si no por serie) te aconsejo que lo hagas.
Salu2
Octubre 4th, 2008 a las 0:26
Hola,
He mirado la informacion que has subido, pero aun no logro iniciar el eclipse con el emulador del Xt75, he seguido la instalacion sujerida en el Java User Guide, pero se me pieden las librerias, cuando actualizo desde el sitio de eclipseme, tampoco funciona. Yo se que es muy basico pero, no lo he logrado poner a funcionar con el emulador, por que aun no tengo el Xt75; si me pudieras ayudar te agradeceria mucho, tambien mire los videos basicos que has subido para la configuracion del eclipse.
No se si por tanto tratar de hacer que funcionara haya dañado el eclipse.
Muchas gracias.
Octubre 6th, 2008 a las 11:22
Hola Sito,
Hay una opción, depende de tu IDE, para dar mas tiempo y mas memoria al debugger.
Con el tiempo que viene por defecto aplicaciones algo mas completas que un HelloWord no darán tiempo a que el debug se inizialize
Salu2
Pua
Octubre 15th, 2008 a las 1:05
Cuales seria los pasos para establecer una comunicacion GPRS entre dos modems conectados un microcontrolador-modem y en el otro extremo modem-pc.
Como configuro cada uno
si me pudieras dar los pasos,te agadeceria
manejo transmision de datos via sms,asi que tengo bastante experiencia en comandos at,mi interes es poder transmitir datos de temperatura via gprs y se recibidos por otro modem conectado a un pc,no a pagina web,si no a traves de una aplicacion en VisuAL bASIC.
He desarrollado todo esto pero via SMS,y me gustaria migrar a GPRS
gracias
sOLAMENTE NECESITO EL PROTOCOLO QUE HAY QUE SEGUIR CON LOS COMANDOS A USAR EN CADA PASO
SALUDOS
fredy leon
fraln7@gmail.com
Octubre 23rd, 2008 a las 16:24
Hola,
Gracias por la respuesta, es que de verdad soy muy novato jeje.
Ahora tengo otra duda, la idea es tener el modem XT75 tomando datos por el rs232, por otro lado tener una aplicacion server que reciba estos datos, y ademas de ello un cliente del server en el cual se puedan pedir los datos en linea. Ahora enviarlos desde el modem al server ya lo logre, lo que necesito es que en el momento que se requieran estos datos, hacer la peticion del server al modem, para que este responda, existe alguna forma?
De antemano te agradezo
Octubre 23rd, 2008 a las 19:30
Hola Oskar,
por supuesto puedes poner hasta 2 sockets listeners (server) en el módem. El problema de tu aplicación reside en descubrir la IP que te ha asignado el operador. Tal vez tengas que montarte algún mecanismo de envío y recepción de la IP por mensajes SMS, o implementar tu mismo DDNS. Si utilizas una SIM con IP fija es mucho más fácil.
Salu2.
Octubre 23rd, 2008 a las 20:29
Algun ejemplo q implemente una conexion serie por el bus I2C ?
Tendras alguna sugerencia sobre q familia de integrados puedo usar para conectarme a traves de esta interfaz, necesito pasar solo unas pocas palabras de 4 bits a una velocidad aproximada de 5 palabras por segundo.
Gracias
Octubre 23rd, 2008 a las 23:40
hola,
medio entiendo, pero me asaltan dudas, la primera al poner sockets listeners en el modem, constantemente estoy consumiendo el plan de datos???, segundo como se cual es la ip de la sim, se le pide al operador, o existe manera de tomarla desde java??? y por ultimo si en algun momento tienes un poco de tiempo y me pudieras ilustrar con un ejemplo no caeria mal xD
:P
Muchisimas gracias hombre
Octubre 24th, 2008 a las 12:37
Hola,
Muchas gracias por tus ejemplos resulta de mucha utilidad.
Además de para felicitarte escribo para comentar un pequeño problema que he tenido con uno de ellos y no se si soy el único.
En el EJEMPLO_GPS_JSR179 en el motinor que va controlando si la posición es correcta o no y lo saca por la salida estandar. En este monitor se comprueba si (Location) l.isValid() y se imprime un mensaje o otro dependiendo de si la posición es valida o no. El problema que se me ha presentado es que en la primera ejecución l=null por lo que el monitor se muere y no realiza su función. Este problema se soluciona con un pequeño if que compruebe si l !=null.
De nuevo muchas gracias.
Salu2. Y buen fin de semana a todos.
Octubre 29th, 2008 a las 21:16
hola,
ademas de la duda anterior tengo otro problema, intento tomar los datos del RS232 y enviarlos via http y no me funciona, pero si hago las cosas por separado si, es decir, si solo tomo los datos funciona, y si solo envio por http funciona, pero al momento de unirlos me dice Profile could not be activated, si me pudieras ayudar seria sacarme de tremendo lio jaja
gracias
Octubre 31st, 2008 a las 18:51
Hola Paul,
dentro de poco colgaré un ejemplo I2C.
Salu2
Octubre 31st, 2008 a las 18:57
Hola Oskar,
no, poner los sockets en modo listener no consume el plan de datos (bueno, los planes normales profesionales de datos van por volumen de tráfico, aunque hay algunos que van por tiempo, ojo)
La IP de la sim te la asigna el operador si es dinámica. Puedes pedir una fija también. En cualquier caso la puedes saber con el comando AT^SICI=0
¿¿ejemplos?? pero si tienes muchos por el blog.
Respecto a tu problema con la simultaneidad de RS232 y http es debido a tu programa, el módem lo permite. Revísalo.
Salu2.
Noviembre 10th, 2008 a las 21:15
Hola,
En primer lugar, enhorabuena por la web, es genial. Es de gran ayuda para los que, como yo, estamos empezando con los módulos de Siemens.
Estoy intentando establecer una conexión TCP con el programa de ejemplo a través de los comandos AT, pero al llegar al punto AT^SISO=1, me devuelve error. He probado a cambiar parámetros en AT^SICS y en AT^SISS, pero no logro solucionarlo.
¿Cuál puede ser el problema? ¿Es completamente correcto el código del ejemplo? ¿Es necesario hacer alguna cosa más?
Un saludo, y muchas gracias,
Marc
Noviembre 10th, 2008 a las 23:25
Hola Marc,
en principio sí, los ejemplos son correctos. Deberías especificar. eso sí, os parámetros adecuados para tu tarjeta SIM (vod, tef o mov), así como disponer de cobertura, etc etc. Sin saber todo eso es muy dificil saber porque te devuelve un error.
Te aconsejo que realices la operación desde el hyperterminal antes que desde java y compruebes si sigues teniendo el error. Si sigues con el error haz un AT+CMEE=2 para tener un error descriptivo de lo que te ocurre.
Salu2.