comandos AT para proyecto de rastreador GPS

893 views
Skip to first unread message

israel garson aparicio

unread,
Aug 21, 2015, 7:38:22 PM8/21/15
to opengts
Hola

tengo un problema con el envio de datos del GPS, estoy realizando un proyecto para la universidad con microcontrolador modulo gps y modulo gprs.

quiero enviar los datos al servidor siguiendo este metodo.-

id=123456789012345&
code=0xF020&
gprmc=$GPRMC,080701.00,A,3128.7540,N,14257.6714,W,000.0,000.0,180707,,,A*1C
 
como muestra en el manual
 pero creo que no estoy usando los comando correctos 

ya que me da error que muestro en la imagen.

alguien que me pueda ayudar indicando como debo enviar la informacion por comandos AT


saludos.

falla.jpg

israel garson aparicio

unread,
Aug 21, 2015, 7:41:45 PM8/21/15
to opengts
falla.pdf

Hernan Diaz

unread,
Aug 22, 2015, 11:26:14 AM8/22/15
to opengts
La respuesta ERROR de el modulo gprmc/data se puede producir por muchos motivos..
falta de parámetros requeridos, ID no valido,error en el checksum......

A simple vista:
- si enviaste $GPRMC,080701.00,A,3128.7540,N,14257.6714,W,000.0,000.0,180707,,,A   el checksum  *1C es incorrecto ..según  NMEA checksum calculator debería ser *44.  (recuerda que el chksum es un XOR de todo lo comprendido entre "$" y "*" expresado en HEX)

- en la captura se ve el argumento &GPRMC seguido de <0>RMC y eso no cumple con el estandar  NMEA-0183 solo se acepta :"gprmc", "rmc", "cds", "nmea".
(también puede ser debido a la mala interpretación del TTY que estas usando, que transforma ANSI en ASCII, para algunos TTY $P = <0>)

si miras en /src/org/opengts/war/gprmc/Data.java puede ver los diferentes parámetros que se aceptan en el GET . y también descubrir las condiciones en las que se responde "ERROR" (puedes modificar y compilar para que te muestre, específicamente, el motivo de el error tu mismo).

dos concejos :
- el checksum no es obligatorio en el modulo gprmc/data , es solo una herencia de compatibilidad para viejos protocolos seriales , al usarse HTTP como transporte el checksum carece de sentido ya que la integridad es responsabilidad de el protocolo de transporte .o sea que HTTP ya se encarga que los datos lleguen completos.
Asi que puedes enviar el mismo GET obviando el checksum ($GPRMC,080701.00,A,3128.7540,N,14257.6714,W,000.0,000.0,180707,,,A)

- el parámetro gprmc= también es opcional (mantenido para soporte de antiguos rastreadores) puedes pasar los mismos datos en parámetros individuales:
"head" , "heading", "direction"
"speed", "kph"  
"lon"  , "longitude", "lng", "long"
"lat"  , "latitude"
"time" , "tm"
"date" , "datetime", "dt"
....
...
..

y muchos mas como puedes ver en /src/org/opengts/war/gprmc/Data.java

Un GET mucho mas eficiente, facil de generar y computar es al estilo :
http://xxx.xxx:8080/gprmc/Data?id=5103&code=0xF116&lat=-31.420565&lon=-64.49892&kph=0&head=215.46&hacc=2.3&batt=100



P.D. de ser posible cuando adjuntes logs o codigo no uses ScreenShots (y menos un pdf con un ScreenShot adentro)...es mas practico usar el  BBCode {} , un simple .txt adjunto o un PasteBin , es imposible calcular un cheksum o citar desde una imagen :P.

israel garson aparicio

unread,
Aug 22, 2015, 11:59:07 PM8/22/15
to opengts
Estimado Hernan 

muchas gracias por su repuesta, seria tan amabl de explicarme que comando AT debo utilizar para enviar esa peticion GET.
id=123456789012345&
code=0xF020&
gprmc=$GPRMC,080701.00,A,3128.7540,N,14257.6714,W,000.0,000.0,180707,,,A*1C

la verdad que creo que es hay mi problema en la utilizacion de los correstos comandos AT. 


saludos.



El viernes, 21 de agosto de 2015, 19:38:22 (UTC-4), israel garson aparicio escribió:

Hernan Diaz

unread,
Aug 23, 2015, 2:41:23 AM8/23/15
to opengts
Disculpa entonces mi mal entendido.
Como tu consulta fue echa en un grupo de OpenGTS pensé que tu problema estaba en la respuesta de el servidor, 
Cada modulo gprs tiene su propio sub-set de AT Hayes , deberías buscar en la documentación de el modulo que utilizas o en la de el chipset.
Por ejemplo la cadena de AT para un SIM900 es esta:
 
......
T+CSCLK=0
AT+CSQ
AT
AT
AT+CSCLK=2
AT
AT
AT+CSCLK=0
AT+SAPBR=3,1,"Contype","GPRS"
AT+SAPBR=3,1,"APN","airtelgprs.com"
AT+SAPBR=1,1
AT+HTTPINIT
AT+HTTPPARA="CID",1
AT+HTTPPARA="URL","http://xxx.xxx:8080/gprmc/Data?id=5103&code=0xF116&lat=-31.420565&lon=-64.49892&kph=0&head=215.46&hacc=2.3&batt=100"
AT+HTTPDATA=2,10000
0
AT+HTTPACTION=1
AT+HTTPTERM
AT+SAPBR=0,1
AT
AT
AT+CSCLK=2
AT
......

primero configuras APN y luego creas un INIT con HTTPPARAM y envias.

Igual te recomiendo buscar info en grupos especializados en AT Hayes.

Hernan Diaz

unread,
Aug 23, 2015, 2:57:30 AM8/23/15
to opengts
encontré esto entre mis marcadores que me fue muy útil en un proyecto parecido al tuyo :

y el emulador de AT Hayes:





El domingo, 23 de agosto de 2015, 0:59:07 (UTC-3), israel garson aparicio escribió:

israel garson aparicio

unread,
Aug 23, 2015, 10:34:40 PM8/23/15
to opengts
Hola amigo, muchas gracias por la ayuda.
Le comento que no tube exito al enviar los datos.
Quiero consultarle si es que hay que abrir puertos adicionalmente en la instalacion del servidor.
Tengo instalado el servidor en una pc con w7 abri los puerto 80 8080 en el modem, por lo cual puedo ingresar desde otra conexion de internet la la pagina http:\\xxxxzxx.8080\track\Track, sin ningun problema.

Pero cuando quiero enviar los datos desde el modulo gprs se conecta al servidor, pero al enviar la trama get no sale error.

😞😞😞😞

Hernan Diaz

unread,
Aug 24, 2015, 1:48:37 AM8/24/15
to opengts
debes compilar y deployar también el modulo gprmc :
ant gprmc , ant gprmc.deploy

y asegurarte que 8080 es accesible desde fuera de la red , simplemente entrando http://example.com:8080/gprmc/Data?id=123456789012345

Cual es el error que te muestra? 
inspecciona los logs en $CATALINA_HOME/logs  para ver si se logra la conexión y cual es el error.
debería aparecer en los logs algo similar a esto:
[INFO_|08/24 02:42:22|Data.logInfo:1318] gprmc: [xxx.xxx.xxx.xxx] GET: http://example.com:8080/gprmc/Data id=123456789012345.......


Verifica que desde otra pc haciendo el get por el navegador y viendo la respuesta.
Si simplemente obtienes una respuesta ERROR al hacer get ...remite a mi primer consejo  y dale formato correcto a la cadena get.
Reply all
Reply to author
Forward
0 new messages