Documentos de Académico
Documentos de Profesional
Documentos de Cultura
com
En todos los casos, sean ASCII o Binario el tipo de reporte, contienen información
básica compuesta de:
• Número de Evento
• Fecha y Hora en que se generó el evento
• Latitud y Longitud
• Velocidad (en KMh)
• Rumbo
• Tipo de posición
• Calidad de la posición
• Edad de la posición
• Cantidad de satélites utilizados para resolver la posición
• Nivel de Señal de GSM (en dBm)
• Tipo de Registro de GSM y GPRS
• Estado de las Salidas Digitales
• Estado de las Entradas Digitales
• Número de Identificación del equipo
• Número de Mensaje
• Checksum de mensaje
Entonces, habiendo explicado las dos opciones que el cliente dispone para transmitir,
vamos a desarrollar de forma completa ambas formas de transmisión, ASCII y BINARIO.
FORMATO ASCII
El equipo, transmite básicamente 4 tramas diferentes del tipo ASCII de acuerdo a como
el usuario lo configure. Puede optar en transmitir cualquiera de ellas en cualquier punto de la
configuración o solo una en forma genérica.
Nosotros recomendamos de transmitir la trama más completa, que es la denominada
del tipo “PU”.
Las 4 tramas son en su base iguales, podrimos decir que la trama base y menos
completa de las 4 es la denominada tipo “PZ”.
1 = Registro GPRS
0 = No Registrado
1 = Registrado en la red local
2 = Buscando una red para registrarse
3 = Registro denegado
5 = Registrado en roaming
FORMATO BINARIO
30 7 6 5 4 3 2 1 0 CheckSum de mensaje
38 7 6 5 4 3 2 1 0 CheckSum de mensaje
MSb 38 7 6 5 4 3 2 1 0 CID (Cell ID): Valor en decimal (solo valido para modem SIM808)
LSb 39 7 6 5 4 3 2 1 0
46 7 6 5 4 3 2 1 0 CheckSum de mensaje
Desarrollo:
1. Header o comienzo del Paquete:
Este carácter es representativo de que la cadena que continúa es un paquete
proveniente o que debe ser enviado a un dispositivo del tipo TU. Es decir, al desarrollar el
Software de parseo en su plataforma, el primer filtro que deberá aplicar para saber
si la cadena que está ingresando proviene de un equipo en sí y no es basura es buscar
que el primer carácter sea el símbolo mayor ">".
Así mismo, cuando arme un paquete para ser enviado a un equipo, este debe
contener como primer carácter este mismo símbolo.
2. Mensaje:
Comienza con las letras "S", "Q", "R" o "C" dependiendo de la acción que desea
realizarse sobre el equipo. Los caracteres que le siguen a estos son de acuerdo a los
parámetros del comando que se desea ejecutar.
Cada letra mencionada significa:
"S" = Set = Usado para escribir o definir parámetros en el equipo.
"Q" = Query = Usado para consultar el estado o valor de parámetros al equipo.
"R" = Response = Usado únicamente por el equipo para responder a consultas o seteos
realizados a este.
"C" = Clear = Usado para limpiar variables en el equipo.
3. ID del dispositivo:
Esta parte del paquete es el Identificador propio de cada rastreador con el cual
determinaremos que equipo en particular está comunicándose con nosotros, así como
es necesario para indicarle al equipo que deseamos comunicarnos con él y no con otro
equipo.
De fábrica, por defecto, este código viene predefinido en "0000", por lo que
deberemos cambiar el ID para no generar duplicados en nuestra flota de equipos.
Este valor puede ser de un mínimo de 4 caracteres hexadecimales hasta un máximo de
16.
4. Numero de Mensaje:
Ya que la comunicación con el equipo es bidireccional, cada mensaje es
identificado con un número hexadecimal para identificar que la respuesta pertenece a un
mensaje en particular enviado al equipo.
Cuando el equipo envía un mensaje generado por un evento, este mensaje llevara
un numero hexadecimal comprendido entre 0000 y 7FFF. A su vez, la respuesta que se
5. Checksum de mensaje:
Estos dos caracteres hexadecimales se utilizan para detectar si hubo cambios
accidentales en la secuencia de datos al moverse de un nodo a otro (Servidor > Equipo /
Equipo > Servidor).
Este valor se calcula realizando una XOR (OR-Exclusiva) entre todos los caracteres
del paquete, comenzando por el carácter ">" hasta, e incluyendo el "*".
Ejemplo para calcular el Checksum para paquetes salientes y entrantes ASCII (fuente en C).
Ejemplo para calcular el CheckSum para paquetes entrantes BINARIOS (fuente en C#).
Combinación de reportes:
Todos los reportes ASCII de este anexo mencionados anteriormente pueden
combinarse en un único reporte según se describe a continuación:
Reporte Binario con captura de datos del Puerto Serial (Tipo B8):
25 7 6 5 4 3 2 1 0 Edad del Dato: Hace cuantos Segs entro el dato al puerto serial
27 7 6 5 4 3 2 1 0
. 7 6 5 4 3 2 1 0
. 7 6 5 4 3 2 1 0 Ascii
Paquete capturado por el puerto serial indicado en el Byte 24.
. 7 6 5 4 3 2 1 0 o
Tamaño maximo 50 bytes.
. 7 6 5 4 3 2 1 0 Bina
. 7 6 5 4 3 2 1 0
. 7 6 5 4 3 2 1 0
LSb 24 7 6 5 4 3 2 1 0
Acelerometro: Eje resultante
MSb 25 1 0
LSb 28 7 6 5 4 3 2 1 0
Acelerometro: Eje X, al valor obtenido en decimal restarle 999.
MSb 29 2 1 0
31 7 6 5 4 3 2 1 0 Edad del dato: Este valor nos indica en segundos hace cuanto se
detuvo la unidad para la reconstruccion hacia atras de las 10
muestras de posiciones que vienen a continuacion.
Registro de las Ultimas 10 Posiciones
A partir de aqui viene en ciclos de 5 bytes los ultimos 10 registros de GPS en forma consecutiva y secuencial
88 7 6 5 4 3 2 1 0 CheckSum de mensaje