Está en la página 1de 18

info@tautecnologia.

com

MANUAL DE INTEGRACION DE PROTOCOLO


VERSION 3.0
MARZO 2020

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
Implementando el protocolo de los equipos TAU rápidamente
Los equipos de rastreo satelital marca TAU utilizan dos protocolos para la transmisión
de datos, uno de ellos, el más utilizado en el mercado actual basado en el denominado tipo
TAIP.
De esta forma, los equipos, transmiten las tramas en caracteres del tipo ASCII fáciles
de parsear por el integrador.
La segunda forma de transmisión de datos utilizada, es la binaria, es decir, son tramas
que contienen la misma información que las tramas TAIP pero generando un importante
ahorro de bytes en la transmisión.
En todos los casos, los datos son transmitidos utilizando el protocolo UDP bajo el
puerto que el usuario necesite. Este puerto es definido por el usuario al momento de
configurar el equipo.

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

Esta información básica de posicionamiento y estado del equipo está contenida


principalmente en dos reportes que denominaremos BASICOS, que en el caso de optar por que
el equipo utilice el protocolo binario, el reporte básico es el denominado “B1”. En caso de
elegir transmitir en ASCII, el reporte básico es el denominado “PZ”

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

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
Trama del tipo “PZ”
Ejemplo de trama:
>RPZ00230716010353-3463150-0584193933C0402001035C000001112530711
Dónde:
00 = Número de evento en Hexa.
230716 = (DDMMAA) Fecha del momento en que se genera el reporte
010353 = (HHMMSS) Hora GMT del momento que se genera el reporte.
-3463150 = Latitud de la última posición valida con grados y decimales (Ej: -34,63150°)
-05841939 = Longitud de la última posición valida con grados y decimales (Ej: -058.41939°)
3 = Estado del posicionamiento del GPS
3 = Posición 3D
2 = Posición 2D
1 = Equipo sin posición
0 = Error de GPS
3C = Cantidad de segundos desde que se tomó la última posición valida respecto al
momento de generar el reporte (Valor en Hexa).
04 = Cantidad de satélites usados para fijar la posición.
02 = Dilución Horizontal de la precisión de la posición (HDOP).
001 = Velocidad en kilómetros por hora de la última posición valida (0 ... 999).
035 = Rumbo de la última posición valida (0...359), 0 = Norte, 90 = Este, 180 = Sur,270 = Oeste
C0 = Estado de las Entradas parte alta en Hexa.
00 = Estado de las Entradas parte baja en Hexa (sin uso actualmente).
00 = Estado de las Salidas Digitales en Hexa.
1 = Estado del Modem
0 = Apagado
1 = Encendido
1 = Estado del GPS
0 = Apagado
1 = Encendido

1253 = Voltaje de la entrada de alimentación principal (0000 ... 3000)


07 = Nivel de señal de celular ( 0 ... 31 ).

1 = Modo de registro GSM


0 = No Registrado
1 = Registrado en la red local
2 = Buscando una red para registrarse
3 = Registro denegado
5 = Registrado en roaming

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

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
Trama del tipo “PY”
Ejemplo de trama:
>RPY00230716010353-3463150-0584193933C0402001035C000001112530711N00000292
Esta trama es prácticamente idéntica a su trama predecesora (RPZ) solo que adiciona
los campos remarcados al final de esta, donde:
N = Estado de la antena de GPS (en Modelo TU-20 no se utiliza)
N = Antena de GPS conectada.
S = Antena de GPS en corto circuito.
O = Antena de GPS desconectada
00000292 = Odómetro, los 7 primeros dígitos corresponden a los Kilómetros y el ultimo
a la centena de Metros.

Trama del tipo “PX”


Ejemplo de trama:
>RPX00230716010353-3463150-
0584193933C0402001035C000001112530711N00000292+23100
Esta trama es prácticamente idéntica a su trama predecesora (RPY) solo que adiciona
los campos remarcados al final de esta, donde:
+23 = Temperatura interna del equipo en °C (Caso de los equipos que son SOLO 2G)
NOTA:
En los casos de los equipos con Modem 2G/3G/4G lo valores que encontraremos en
este campo nos indicaran la tecnología a la cual esta vinculado en ese momento.
-90 = SIN REGISTRO
-91 = 2G
-92 = 3G
-93 = 4G LTE
-94 = 4G Cat-M1
-95 = 4G Cat-NB1
100 = Nivel de carga de la batería interna en %

Trama del tipo “PU”


Ejemplo de trama:
>RPU00230716010353-3463150-
0584193933C0402001035C000001112530711N00000292+231007223111BF7274A
Esta trama es prácticamente idéntica a su trama predecesora (RPY) solo que adiciona los
campos remarcados al final de esta, donde:

722 = MCC (Código de País de Móvil)


311 = MNC (Código de Red de Móvil)
1BF7 = LAC (Código de Identificación de Área) valor en Hexa.
274A = CID (Código de Identificación de Celda) valor en Hexa.

FORMATO BINARIO

Aparte de los reportes en formato ASCII previamente explicados, aparece la necesidad


de algunos clientes de poder ahorrar datos. Por esto, se implementan los reportes en formato
binario, los cuales reducen el trafico en casi un 70%.

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com

Reporte Binario tipo B1 (Tamaño 31 Bytes)


Nro de Caracter
MSb LSb Descripcion
Byte ASCII
0 7 6 5 4 3 2 1 0 > Caracter de Fijo de Header Paquete Binario
1 7 6 5 4 3 2 1 0 R Caracter de Fijo de Header Paquete Binario
2 7 6 5 4 3 2 1 0 B Caracter de Fijo de Header Paquete Binario
3 7 6 5 4 3 2 1 0 1 Caracter de Fijo de Header Paquete Binario (Tipo de Binario)

MSb 4 7 6 5 4 3 2 1 0 Fecha y Hora del Evento: Cantidad de segundos transcurridos


5 7 6 5 4 3 2 1 0 desde el "01/01/2000 00:00:00"
6 7 6 5 4 3 2 1 0
LSb 7 7 6 5 4 3 2 1 0

8 7 6 5 4 3 2 1 0 Numero de Evento: 0 a 250

MSb 9 5 4 3 2 1 0 HDOP: Calidad de la señal de GPS, menor a 5 = Buena Precision.


9 1 0
Longitud: Al valor convertido a decimal, restarle 18.000.000 y
10 7 6 5 4 3 2 1 0
luego dividirlo por 100.000
11 7 6 5 4 3 2 1 0
Ejemplo: (12.144.158 - 18.000.000) / 100.000 = -58,55842º
LSb 12 7 6 5 4 3 2 1 0

MSb 13 1 0 Tipo de Posicion: 3=3D, 2=2D, 1=Sin Posicion


13 3 2 1 0 Cantidad de Satelites Utilizados para posicionar
13 0
Latitud: Al valor convertido a decimal, restarle 9.000.000 y luego
14 7 6 5 4 3 2 1 0
dividirlo por 100.000
15 7 6 5 4 3 2 1 0
Ejemplo: (5.532.335 - 9.000.000) / 100.000 = -34,67665º
LSb 16 7 6 5 4 3 2 1 0

17 7 6 5 4 3 2 1 0 Edad de la Posicion: 0 a 255 Segs (250 o 251= Modo ancla activo)

MSb 18 5 4 3 2 1 0 Nivel Señal GSM: 0-35 dBm (63 = 99 sin señal)


18 1 0
Velocidad: Valor en Km/H
LSb 19 7 6 5 4 3 2 1 0

MSb 20 2 1 0 Reg GSM 0=NoReg, 1=Local, 2=Buscando, 3=Denegado, 5=Roam


20 2 1 0 Reg GPRS 0=NoReg, 1=Local, 2=Buscando, 3=Denegado, 5=Roam
20 0
Rumbo: Orientacion en Grados respecto al Norte
LSb 21 7 6 5 4 3 2 1 0

MSb 22 4 3 2 1 0 Salidas Digitales: Bit en 1 = Activa, Bit 0= Salida 0, Bit 1 = Salida 1


22 1 0 Entradas Digitales: Bit 0 = Ent Dig 0, Bit en 1 = Entrada abierta, Bit
LSb 23 7 6 5 4 3 2 1 0 en 0 = Entrada a Maza

24 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo


25 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo
26 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo
27 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo

MSb 28 7 6 5 4 3 2 1 0 Numero de Mensaje: En Hexa segun se toma directo.


LSb 29 7 6 5 4 3 2 1 0 Ejemplo: 0x27 0x32 Entonces el Nro de mensaje es 2732

30 7 6 5 4 3 2 1 0 CheckSum de mensaje

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
Reporte Binario tipo B2 (Tamaño 39 Bytes)
Nro de Caracter
MSb LSb Descripcion
Byte ASCII
0 7 6 5 4 3 2 1 0 > Caracter de Fijo de Header Paquete Binario
1 7 6 5 4 3 2 1 0 R Caracter de Fijo de Header Paquete Binario
2 7 6 5 4 3 2 1 0 B Caracter de Fijo de Header Paquete Binario
3 7 6 5 4 3 2 1 0 2 Caracter de Fijo de Header Paquete Binario (Tipo de Binario)

MSb 4 7 6 5 4 3 2 1 0 Fecha y Hora del Evento: Cantidad de segundos transcurridos


5 7 6 5 4 3 2 1 0 desde el "01/01/2000 00:00:00"
6 7 6 5 4 3 2 1 0
LSb 7 7 6 5 4 3 2 1 0

8 7 6 5 4 3 2 1 0 Numero de Evento: 0 a 250

9 5 4 3 2 1 0 HDOP: Calidad de la señal de GPS, menor a 5 = Buena Precision.


MSb 9 1 0
Longitud: Al valor convertido a decimal, restarle 18.000.000 y
10 7 6 5 4 3 2 1 0
luego dividirlo por 100.000
11 7 6 5 4 3 2 1 0
Ejemplo: (12.144.158 - 18.000.000) / 100.000 = -58,55842º
LSb 12 7 6 5 4 3 2 1 0

13 1 0 Tipo de Posicion: 3=3D, 2=2D, 1=Sin Posicion


13 3 2 1 0 Cantidad de Satelites Utilizados para posicionar
MSb 13 0
Latitud: Al valor convertido a decimal, restarle 9.000.000 y luego
14 7 6 5 4 3 2 1 0
dividirlo por 100.000
15 7 6 5 4 3 2 1 0
Ejemplo: (5.532.335 - 9.000.000) / 100.000 = -34,67665º
LSb 16 7 6 5 4 3 2 1 0

17 7 6 5 4 3 2 1 0 Edad de la Posicion: 0 a 255 Segs (250 o 251= Modo ancla activo)

18 5 4 3 2 1 0 Nivel Señal GSM: 0-35 dBm (63 = 99 sin señal)


MSb 18 1 0
Velocidad: Valor en Km/H
LSb 19 7 6 5 4 3 2 1 0

20 2 1 0 Reg GSM 0=NoReg, 1=Local, 2=Buscando, 3=Denegado, 5=Roam


20 2 1 0 Reg GPRS 0=NoReg, 1=Local, 2=Buscando, 3=Denegado, 5=Roam
MSb 20 0
Rumbo: Orientacion en Grados respecto al Norte
LSb 21 7 6 5 4 3 2 1 0

22 4 3 2 1 0 Salidas Digitales: Bit en 1 = Activa, Bit 0= Salida 0, Bit 1 = Salida 1


MSb 22 1 0 Entradas Digitales: Bit 0 = Ent Dig 0, Bit en 1 = Entrada abierta, Bit
LSb 23 7 6 5 4 3 2 1 0 en 0 = Entrada a Maza

24 0 Estado modulo de GPS: 0=GPS apagado / 1=GPS encendido


24 0 Estado modulo de GSM: 0=GSM apagado / 1=GSM encendido
24 1 0 Estado antena de GPS: Sin uso actualmente
MSb 24 3 2 1 0 Tension de Alimentacion Principal: Al valor convertido a
LSb 25 7 6 5 4 3 2 1 0 decimal, dividirlo por 100. Ejemplo: 1509 / 100 = 15,09 Volts

MSb 26 6 5 4 3 2 1 0 Odometro: Al valor convertido a decimal, dividirlo por 1000 para


27 7 6 5 4 3 2 1 0 obtener el valor con definicion por metros.
28 7 6 5 4 3 2 1 0 Ejemplo: 2567856 / 1000 = 2.567,856 KMs
LSb 29 7 6 5 4 3 2 1 0

30 7 6 5 4 3 2 1 0 Bateria interna: % del nivel de carga de la bateria del equipo

31 7 6 5 4 3 2 1 0 Tecnologia de RED GSM: +24=Modem 2G SIM808


Modem SIM7600 "-90=Sin Red, -91=2G, -92=3G, -93=4G LTE"
Modem SIM7000G "-90=Sin Red, -91=2G, -94=4G M1, -95=4G NB"

32 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo


33 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo
34 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo
35 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo

36 7 6 5 4 3 2 1 0 Numero de Mensaje: En Hexa segun se toma directo.


37 7 6 5 4 3 2 1 0 Ejemplo: 0x27 0x32 Entonces el Nro de mensaje es 2732

38 7 6 5 4 3 2 1 0 CheckSum de mensaje

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
Reporte Binario tipo B3 (Tamaño 47 Bytes)
Nro de Caracter
MSb LSb Descripcion
Byte ASCII
0 7 6 5 4 3 2 1 0 > Caracter de Fijo de Header Paquete Binario
1 7 6 5 4 3 2 1 0 R Caracter de Fijo de Header Paquete Binario
2 7 6 5 4 3 2 1 0 B Caracter de Fijo de Header Paquete Binario
3 7 6 5 4 3 2 1 0 3 Caracter de Fijo de Header Paquete Binario (Tipo de Binario)

MSb 4 7 6 5 4 3 2 1 0 Fecha y Hora del Evento: Cantidad de segundos transcurridos


5 7 6 5 4 3 2 1 0 desde el "01/01/2000 00:00:00"
6 7 6 5 4 3 2 1 0
LSb 7 7 6 5 4 3 2 1 0

8 7 6 5 4 3 2 1 0 Numero de Evento: 0 a 250

9 5 4 3 2 1 0 HDOP: Calidad de la señal de GPS, menor a 5 = Buena Precision.


MSb 9 1 0
Longitud: Al valor convertido a decimal, restarle 18.000.000 y
10 7 6 5 4 3 2 1 0
luego dividirlo por 100.000
11 7 6 5 4 3 2 1 0
Ejemplo: (12.144.158 - 18.000.000) / 100.000 = -58,55842º
LSb 12 7 6 5 4 3 2 1 0

13 1 0 Tipo de Posicion: 3=3D, 2=2D, 1=Sin Posicion


13 3 2 1 0 Cantidad de Satelites Utilizados para posicionar
MSb 13 0
Latitud: Al valor convertido a decimal, restarle 9.000.000 y luego
14 7 6 5 4 3 2 1 0
dividirlo por 100.000
15 7 6 5 4 3 2 1 0
Ejemplo: (5.532.335 - 9.000.000) / 100.000 = -34,67665º
LSb 16 7 6 5 4 3 2 1 0

17 7 6 5 4 3 2 1 0 Edad de la Posicion: 0 a 255 Segs (250 o 251= Modo ancla activo)

18 5 4 3 2 1 0 Nivel Señal GSM: 0-35 dBm (63 = 99 sin señal)


MSb 18 1 0
Velocidad: Valor en Km/H
LSb 19 7 6 5 4 3 2 1 0

20 2 1 0 Reg GSM 0=NoReg, 1=Local, 2=Buscando, 3=Denegado, 5=Roam


20 2 1 0 Reg GPRS 0=NoReg, 1=Local, 2=Buscando, 3=Denegado, 5=Roam
MSb 20 0
Rumbo: Orientacion en Grados respecto al Norte
LSb 21 7 6 5 4 3 2 1 0

22 4 3 2 1 0 Salidas Digitales: Bit en 1 = Activa, Bit 0= Salida 0, Bit 1 = Salida 1


MSb 22 1 0 Entradas Digitales: Bit 0 = Ent Dig 0, Bit en 1 = Entrada abierta, Bit
LSb 23 7 6 5 4 3 2 1 0 en 0 = Entrada a Maza

24 0 Estado modulo de GPS: 0=GPS apagado / 1=GPS encendido


24 0 Estado modulo de GSM: 0=GSM apagado / 1=GSM encendido
24 1 0 Estado antena de GPS: Sin uso actualmente
MSb 24 3 2 1 0 Tension de Alimentacion Principal: Al valor convertido a
LSb 25 7 6 5 4 3 2 1 0 decimal, dividirlo por 100. Ejemplo: 1509 / 100 = 15,09 Volts

MSb 26 6 5 4 3 2 1 0 Odometro: Al valor convertido a decimal, dividirlo por 1000 para


27 7 6 5 4 3 2 1 0 obtener el valor con definicion por metros.
28 7 6 5 4 3 2 1 0 Ejemplo: 2567856 / 1000 = 2.567,856 KMs
LSb 29 7 6 5 4 3 2 1 0

30 7 6 5 4 3 2 1 0 Bateria interna: % del nivel de carga de la bateria del equipo

31 7 6 5 4 3 2 1 0 Tecnologia de RED GSM: +24=Modem 2G SIM808


Modem SIM7600 "-90=Sin Red, -91=2G, -92=3G, -93=4G LTE"
Modem SIM7000G "-90=Sin Red, -91=2G, -94=4G M1, -95=4G NB"

MSb 32 5 4 3 2 1 0 MCC (Mobile Country Code): Valor en decimal


LSb 33 7 6 5 4 3 2 1 0

MSb 34 5 4 3 2 1 0 MNC (Mobile Network Code): Valor en decimal


LSb 35 7 6 5 4 3 2 1 0

MSb 36 7 6 5 4 3 2 1 0 LAC (Location Area Code): Valor en decimal


LSb 37 7 6 5 4 3 2 1 0

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

40 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo


41 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo
42 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo
43 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo

44 7 6 5 4 3 2 1 0 Numero de Mensaje: En Hexa segun se toma directo.


45 7 6 5 4 3 2 1 0 Ejemplo: 0x27 0x32 Entonces el Nro de mensaje es 2732

46 7 6 5 4 3 2 1 0 CheckSum de mensaje

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
Reporte Binario tipo B0 (Tamaño 22 Bytes) SOLO ORBCOMM
Nro de Valor
MSb LSb Descripcion
Byte HEX
0 7 6 5 4 3 2 1 0 0x05 Caracter de Fijo de Header Paquete Binario ORBCOMM
1 7 6 5 4 3 2 1 0 0xB0 Caracter de Fijo de Header Paquete Binario (Tipo de Binario)

MSb 2 7 6 5 4 3 2 1 0 Fecha y Hora del Evento: Cantidad de segundos transcurridos


3 7 6 5 4 3 2 1 0 desde el "01/01/2000 00:00:00"
4 7 6 5 4 3 2 1 0
LSb 5 7 6 5 4 3 2 1 0

6 7 6 5 4 3 2 1 0 Numero de Evento: 0 a 250

MSb 7 5 4 3 2 1 0 HDOP: Calidad de la señal de GPS, menor a 5 = Buena Precision.


7 1 0
Longitud: Al valor convertido a decimal, restarle 18.000.000 y
8 7 6 5 4 3 2 1 0
luego dividirlo por 100.000
9 7 6 5 4 3 2 1 0
Ejemplo: (12.144.158 - 18.000.000) / 100.000 = -58,55842º
LSb 10 7 6 5 4 3 2 1 0

MSb 11 1 0 Tipo de Posicion: 3=3D, 2=2D, 1=Sin Posicion


11 3 2 1 0 Cantidad de Satelites Utilizados para posicionar
11 0
Latitud: Al valor convertido a decimal, restarle 9.000.000 y luego
12 7 6 5 4 3 2 1 0
dividirlo por 100.000
13 7 6 5 4 3 2 1 0
Ejemplo: (5.532.335 - 9.000.000) / 100.000 = -34,67665º
LSb 14 7 6 5 4 3 2 1 0

15 7 6 5 4 3 2 1 0 Edad de la Posicion: 0 a 255 Segs (250 o 251= Modo ancla activo)

MSb 16 5 4 3 2 1 0 Nivel Señal GSM: 0-35 dBm (63 = 99 sin señal)


16 1 0
Velocidad: Valor en Km/H
LSb 17 7 6 5 4 3 2 1 0

MSb 18 2 1 0 Reg GSM 0=NoReg, 1=Local, 2=Buscando, 3=Denegado, 5=Roam


18 2 1 0 Reg GPRS 0=NoReg, 1=Local, 2=Buscando, 3=Denegado, 5=Roam
18 0
Rumbo: Orientacion en Grados respecto al Norte
LSb 19 7 6 5 4 3 2 1 0

MSb 20 4 3 2 1 0 Salidas Digitales: Bit en 1 = Activa, Bit 0= Salida 0, Bit 1 = Salida 1


20 1 0 Entradas Digitales: Bit 0 = Ent Dig 0, Bit en 1 = Entrada abierta, Bit
LSb 21 7 6 5 4 3 2 1 0 en 0 = Entrada a Maza

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
Estructura de los reportes

Ejemplo de Formato de Mensaje Estándar:


>QPU;ID=1234;#8000;*A5<[CR][LF]
Todos los mensajes provenientes del equipo y/o que se deseen enviar a este, vía
GPRS tienen y deben tener la misma estructura que la desarrollada a continuación.
1. Header o comienzo del paquete.
2. Mensaje.
3. ID del dispositivo
4. Numero de Mensaje
5. Checksum de mensaje
6. Cierre del paquete
7. Cadena de Carrier Return y Line Feed (Caracteres con valor ASCII 13 y 10)

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

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
dará a este mensaje para indicarle al equipo que el mismo fue recibido (Mensaje SAK)
deberá contener el mismo número de mensaje que el recibido.
Si se envía algún mensaje desde el servidor, ya sea, de consulta, de seteo o de
limpieza de parámetros, este deberá tener un número de mensaje comprendido entre
8000 y FFFF, por lo que el equipo responderá, si recibe dicho mensaje, con el mismo
número enviado a este.
Cabe destacar que al enviar mensajes al equipo deberá respetarse que el orden de
este valor numérico sea secuencial ya que si se utiliza de forma consecutiva el mismo
numero de mensaje para dos mensajes diferentes, el equipo no responderá al segundo
de ellos enviado.
El número de mensaje debe estar precedido por el carácter "#".

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

unsigned char TUcalculateChecksum(const char *pBuff)


{
int i;
int len;
unsigned char calculated_checksum;
len = strlen(pBuff);
calculated_checksum= 0;
for (i = 0; i < len; i++)
{
calculated_checksum ^= pBuff[i];
if (i)
{
if ((pBuff[i-1] == ';') & (pBuff[i] =='*')) break;
}
}
return(calculated_checksum);
}

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
Ejemplo para calcular el CheckSum para paquetes salientes y entrantes ASCII (fuente en C#).

public static string TUcalculateChecksum(string data)


{
int r;
int calc = 0;
byte caracter;
string calculated_checksum;
for (r = 0; r < data.Length; r++)
{
caracter = (byte)data[r];
calc = calc ^ (byte)caracter;
if ((data[r] == '*') && (data[r - 1] == ';'))
break;
}
calculated_checksum = calc.ToString("X");
if (calculated_checksum.Length == 1)
{
calculated_checksum = "0" + calculated_checksum;
return calculated_checksum;
}
else
return calculated_checksum;
}

Ejemplo para calcular el CheckSum para paquetes entrantes BINARIOS (fuente en C#).

public static byte TUcalculateChecksumBytes(byte[] data)


{
int r;
int calc=0;

for (r = 0; r < data.Length-1; r++)


{
calc = calc ^ data[r];
}
return Convert.ToByte(calc);
}

6. Cierre del paquete:


En forma similar al Header explicado anteriormente, este carácter o símbolo
menor "<" es representativo del fin o cierre del mensaje.

7. Cadena de Carrier Return y Line Feed:


Utilizados como indicador de nueva línea (0x13 0x10).

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
Respuesta Esperada por el equipo TU-20

Si el checksum calculado coincide con el recibido y no se trata de un mensaje de


respuesta, hay que confirmarle la correcta recepción respondiéndole el siguiente mensaje:
>SAK;ID=1017;#0093;*52<[CR][LF]
Dónde:
>SAK Identificador de tipo de mensaje
; Separador
ID=1017 ID de equipo
; Separador
#0093 Número de mensaje (igual al recibido)
; Separador
*52 Checksum de este mensaje
< Fin de mensaje
[CR][LF] Fin de la cadena

Para determinar que no se trata de un mensaje de respuesta basta con comparar


que el número de mensaje recibido sea inferior a 0x8000. Eso es debido a que los
mensajes generados desde los equipos tienen un rango de 0x0000 a 0x7FFF y los
generados desde la PC deben tener un rango de valores de 0x8000 a 0xFFFF.
Si no le confirma la recepción, el equipo enviará el mensaje hasta XX veces por
cada intento de comunicación en la sesión, es decir que todos los mensajes deben ser
respondidos.
Este protocolo es el utilizado por cualquiera de los medios de comunicación, con lo
cual todos los mensajes enviados al mismo van a ser respondidos con el número de
mensaje correspondiente si los recibió bien.
El dispositivo analiza el mensaje recibido, si es un mensaje con respuesta responde
con el mensaje correspondiente y el número de mensaje igual al recibido. Si el mensaje no
tiene respuesta responde con >SAK;ID=0003;#ABC0;*2C<[CR][LF].

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
Anexo reportes especiales equipo TU-20

El equipo TU-20, aparte de las funciones ya conocidas, está diseñado para


cubrir otros aspectos de las necesidades de los clientes que más le exigen a nuestros
equipos.

Reporte con nivel de Combustible (Tipo U4):


Este reporte fue implementado a partir de la integración de nuestro equipo con
las varillas para medir nivel de combustible fabricadas por la empresa TTM Desarrollos.
De esta forma, el cliente que ya posee integrado el reporte del tipo “PU” solo
necesitaría integrar en su software receptor unos pocos caracteres extra del mismo
reporte mencionado.
En su parte inicial el reporte cumple con los lineamientos del reporte tipo “PU”
a excepción que en su parte final se adiciona el carácter “_” como separador de trama
y a continuación de este se encuentra la información relacionada a las varillas de
combustible asociadas al equipo.

Ejemplo para 1 varilla:


_F00F123
Donde:
_ = Carácter separador
F0 = Indica sector de combustible
0 = Carácter Reservado para futuros usos
F = Edad del reporte de combustible (última vez que ingreso una trama
desde la varilla al equipo, valor Hexa en minutos)
123 = Litros Tanque principal*

Ejemplo para 2 varillas:


_F00F123,0F32
Donde:
_ = Carácter separador
F0 = Indica sector de combustible
0 = Carácter Reservado para futuros usos
F = Edad del reporte de combustible (última vez que ingreso una trama
desde la varilla al equipo, valor Hexa en minutos)
123 = Litros Tanque principal*
, = Carácter separador
0 = Carácter Reservado para futuros usos
F = Edad del reporte de combustible (última vez que ingreso una trama
desde la varilla al equipo, valor Hexa en minutos)
32 = Litros Tanque 2*

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
Ejemplo para 3 varillas:
_F00F123,0F32,0F40
Donde:
_ = Carácter separador
F0 = Indica sector de combustible
0 = Carácter Reservado para futuros usos
F = Edad del reporte de combustible (última vez que ingreso una trama
desde la varilla al equipo, valor Hexa en minutos)
123 = Litros Tanque principal*
, = Carácter separador
0 = Carácter Reservado para futuros usos
F = Edad del reporte de combustible (última vez que ingreso una trama
desde la varilla al equipo, valor Hexa en minutos)
32 = Litros Tanque 2*
, = Carácter separador
0 = Carácter Reservado para futuros usos
F = Edad del reporte de combustible (última vez que ingreso una trama
desde la varilla al equipo, valor Hexa en minutos)
40 = Litros Tanque 3*

Ejemplo para 4 varillas:


_F00F123,0F32,0F40,0F5
Donde:
_ = Carácter separador
F0 = Indica sector de combustible
0 = Carácter Reservado para futuros usos
F = Edad del reporte de combustible (última vez que ingreso una trama
desde la varilla al equipo, valor Hexa en minutos)
123 = Litros Tanque principal*
, = Carácter separador
0 = Carácter Reservado para futuros usos
F = Edad del reporte de combustible (última vez que ingreso una trama
desde la varilla al equipo, valor Hexa en minutos)
32 = Litros Tanque 2*
, = Carácter separador
0 = Carácter Reservado para futuros usos
F = Edad del reporte de combustible (última vez que ingreso una trama
desde la varilla al equipo, valor Hexa en minutos)
40 = Litros Tanque 3*
, = Carácter separador
0 = Carácter Reservado para futuros usos
F = Edad del reporte de combustible (última vez que ingreso una trama
desde la varilla al equipo, valor Hexa en minutos)
5 = Litros Tanque 4*

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
*El campo de litros es de longitud variable, si la cantidad de litros esta
entre 0 y 9, este campo tendrá un solo carácter. Si la cantidad de litros fuese
entre 10 y 99, dos caracteres y si fuese entre 100 y 999 serán 3 caracteres.

Reporte con Código de RFiD (Tipo U1):


En su parte inicial el reporte cumple con los lineamientos del reporte tipo “PU”
a excepción que en su parte final se adiciona el carácter “_” como separador de trama
y a continuación de este se encuentra la información relacionada a la captura del
código de capturado de la tarjeta o llavero de identificación tipo RFiD.
Ejemplo:
_GG1AABBCCDD
Donde:
_ = Carácter separador
GG = Indica sector de código
1 = Estado de la sesión (0=Sin Sesión, 1=En Sesión con código en lista
segura, 2=En Sesión sin código en lista segura)
AABBCCDD = Código de la última tarjeta leída.

Reporte con Indicación de sensor de temperatura (Tipo U2):


En su parte inicial el reporte cumple con los lineamientos del reporte tipo “PU”
a excepción que en su parte final se adiciona el carácter “_” como separador de trama
y a continuación de este se encuentra la información relacionada a la medición
efectuada por el/los sensor/es de temperatura asociado al equipo.
Ejemplo con sensor Digital y Analógico simultáneamente:
_T0002344,00-650
Donde:
_ = Carácter separador
T0 = Indica sector de Temperatura
00 = Tiempo en Segs Hex de antigüedad de la lectura del sensor 1.
2344 = Temperatura en *C del sensor 1 (+23.44*C)
, = Carácter separador
00 = Tiempo en Segs Hex de antigüedad de la lectura del sensor 2.
-650 = Temperatura en *C del sensor 2 (-6.50*C)

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
Reporte con Indicación de contador tipo Horómetro (Tipo U9):
En su parte inicial el reporte cumple con los lineamientos del reporte tipo “PU”
a excepción que en su parte final se adiciona el carácter “_” como separador de trama
y a continuación de este se encuentra la información relacionada al contador
denominado Horómetro.
Ejemplo:
_H020576
Donde:
_ = Carácter separador
H0 = Indica sector de Horómetro
20576 = Horómetro en minutos.

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 tipo U3:


Combinación del reporte U1 más el U2
Código de RFid, mas Temperatura.
Reporte tipo U5:
Combinación del reporte U1 más el U4
Código de RFid más Niveles de Combustible
Reporte tipo U6
Combinación del reporte U2 más el U4
Valor de Temperatura más Niveles de Combustible
Reporte tipo U7
Combinación del reporte U1 más el U2 más el U4
Código de RFid, mas Valor de Temperatura, mas Niveles de Combustible

Reporte Binario con captura de datos del Puerto Serial (Tipo B8):

En muchos casos, los clientes tienen la necesidad de utilizar al equipo como un


medio para transmitir información generada desde dispositivos externos al equipo de
AVL. Por esto, se implementa en nuestro equipo la captura de datos a través del
puerto serial.
Esta información capturada (de hasta un máximo de 50 Bytes) utiliza el reporte
del tipo “B8” como medio de transporte.
A continuación se detalla este reporte y como separar del mismo la información
capturada desde el puerto serial.

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
Reporte Binario tipo B8 (Tamaño MINIMO 35 Bytes, MAXIMO 84 Bytes)
Nro de Caracter
MSb LSb Descripcion
Byte ASCII
0 7 6 5 4 3 2 1 0 > Caracter de Fijo de Header Paquete Binario
1 7 6 5 4 3 2 1 0 R Caracter de Fijo de Header Paquete Binario
2 7 6 5 4 3 2 1 0 B Caracter de Fijo de Header Paquete Binario
3 7 6 5 4 3 2 1 0 8 Caracter de Fijo de Header Paquete Binario (Tipo de Binario)

MSb 4 7 6 5 4 3 2 1 0 Fecha y Hora del Evento: Cantidad de segundos transcurridos


5 7 6 5 4 3 2 1 0 desde el "01/01/2000 00:00:00"
6 7 6 5 4 3 2 1 0
LSb 7 7 6 5 4 3 2 1 0

8 7 6 5 4 3 2 1 0 Numero de Evento: 0 a 250

MSb 9 5 4 3 2 1 0 HDOP: Calidad de la señal de GPS, menor a 5 = Buena Precision.


9 1 0
Longitud: Al valor convertido a decimal, restarle 18.000.000 y
10 7 6 5 4 3 2 1 0
luego dividirlo por 100.000
11 7 6 5 4 3 2 1 0
Ejemplo: (12.144.158 - 18.000.000) / 100.000 = -58,55842º
LSb 12 7 6 5 4 3 2 1 0

MSb 13 1 0 Tipo de Posicion: 3=3D, 2=2D, 1=Sin Posicion


13 3 2 1 0 Cantidad de Satelites Utilizados para posicionar
13 0
Latitud: Al valor convertido a decimal, restarle 9.000.000 y luego
14 7 6 5 4 3 2 1 0
dividirlo por 100.000
15 7 6 5 4 3 2 1 0
Ejemplo: (5.532.335 - 9.000.000) / 100.000 = -34,67665º
LSb 16 7 6 5 4 3 2 1 0

17 7 6 5 4 3 2 1 0 Edad de la Posicion: 0 a 255 Segs (250 o 251= Modo ancla activo)

MSb 18 5 4 3 2 1 0 Nivel Señal GSM: 0-35 dBm (63 = 99 sin señal)


18 1 0
Velocidad: Valor en Km/H
LSb 19 7 6 5 4 3 2 1 0

MSb 20 2 1 0 Reg GSM 0=NoReg, 1=Local, 2=Buscando, 3=Denegado, 5=Roam


20 2 1 0 Reg GPRS 0=NoReg, 1=Local, 2=Buscando, 3=Denegado, 5=Roam
20 0
Rumbo: Orientacion en Grados respecto al Norte
LSb 21 7 6 5 4 3 2 1 0

MSb 22 4 3 2 1 0 Salidas Digitales: Bit en 1 = Activa, Bit 0= Salida 0, Bit 1 = Salida 1


22 1 0 Entradas Digitales: Bit 0 = Ent Dig 0, Bit en 1 = Entrada abierta, Bit
LSb 23 7 6 5 4 3 2 1 0 en 0 = Entrada a Maza

24 0 Tipo de Dato Capturado: 1 = ASCII / 0 = Binario


24 3 2 1 0 Puerto donde se capturo el Dato

25 7 6 5 4 3 2 1 0 Edad del Dato: Hace cuantos Segs entro el dato al puerto serial

26 7 6 5 4 3 2 1 0 Tamaño del paquete capturado: Denominado "N"

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

27+N 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo


28+N 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo
29+N 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo
30+N 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo
31+N
32+N 7 6 5 4 3 2 1 0 Numero de Mensaje: En Hexa segun se toma directo.
33+N 7 6 5 4 3 2 1 0 Ejemplo: 0x27 0x32 Entonces el Nro de mensaje es 2732

34+N 7 6 5 4 3 2 1 0 CheckSum de mensaje

Version 3.0 25 de Marzo de 2020


info@tautecnologia.com
Reporte Binario con los últimos 10 segs de posiciones de GPS (Tipo B9):
Reporte Binario tipo B9 (Tamaño 89 Bytes)
Nro de Caracter
MSb LSb Descripcion
Byte ASCII
0 7 6 5 4 3 2 1 0 > Caracter de Fijo de Header Paquete Binario
1 7 6 5 4 3 2 1 0 R Caracter de Fijo de Header Paquete Binario
2 7 6 5 4 3 2 1 0 B Caracter de Fijo de Header Paquete Binario
3 7 6 5 4 3 2 1 0 9 Caracter de Fijo de Header Paquete Binario (Tipo de Binario)

MSb 4 7 6 5 4 3 2 1 0 Fecha y Hora del Evento: Cantidad de segundos transcurridos


5 7 6 5 4 3 2 1 0 desde el "01/01/2000 00:00:00"
6 7 6 5 4 3 2 1 0
LSb 7 7 6 5 4 3 2 1 0

8 7 6 5 4 3 2 1 0 Numero de Evento: 0 a 250

MSb 9 5 4 3 2 1 0 HDOP: Calidad de la señal de GPS, menor a 5 = Buena Precision.


9 1 0
Longitud: Al valor convertido a decimal, restarle 18.000.000 y
10 7 6 5 4 3 2 1 0
luego dividirlo por 100.000
11 7 6 5 4 3 2 1 0
Ejemplo: (12.144.158 - 18.000.000) / 100.000 = -58,55842º
LSb 12 7 6 5 4 3 2 1 0

13 1 0 Tipo de Posicion: 3=3D, 2=2D, 1=Sin Posicion


MSb 13 3 2 1 0 Cantidad de Satelites Utilizados para posicionar
13 0
Latitud: Al valor convertido a decimal, restarle 9.000.000 y luego
14 7 6 5 4 3 2 1 0
dividirlo por 100.000
15 7 6 5 4 3 2 1 0
Ejemplo: (5.532.335 - 9.000.000) / 100.000 = -34,67665º
LSb 16 7 6 5 4 3 2 1 0

17 7 6 5 4 3 2 1 0 Edad de la Posicion: 0 a 255 Segs (250 o 251= Modo ancla activo)

MSb 18 5 4 3 2 1 0 Nivel Señal GSM: 0-35 dBm (63 = 99 sin señal)


18 1 0
Velocidad: Valor en Km/H
LSb 19 7 6 5 4 3 2 1 0

20 2 1 0 Reg GSM 0=NoReg, 1=Local, 2=Buscando, 3=Denegado, 5=Roam


MSb 20 2 1 0 Reg GPRS 0=NoReg, 1=Local, 2=Buscando, 3=Denegado, 5=Roam
20 0
Rumbo: Orientacion en Grados respecto al Norte
LSb 21 7 6 5 4 3 2 1 0

MSb 22 4 3 2 1 0 Salidas Digitales: Bit en 1 = Activa, Bit 0= Salida 0, Bit 1 = Salida 1


22 1 0 Entradas Digitales: Bit 0 = Ent Dig 0, Bit en 1 = Entrada abierta, Bit
LSb 23 7 6 5 4 3 2 1 0 en 0 = Entrada a Maza

Inicio Seccion Registros de acelerometro y ultimas 10 posiciones

LSb 24 7 6 5 4 3 2 1 0
Acelerometro: Eje resultante
MSb 25 1 0

LSb 25 5 4 3 2 1 0 Acelerometro: Eje Z, al valor obtenido en decimal dividirlo por 4


MSb 26 4 3 2 1 0 y a su resultado restarle 999.

LSb 26 2 1 0 Acelerometro: Eje Y, al valor obtenido en decimal dividirlo por


MSb 27 7 6 5 4 3 2 1 0 32 y a su resultado restarle 999.

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

30 7 6 5 4 3 2 1 0 Estado: 0 = Vehiculo Detenido / 1 = Vehiculo en Movimiento

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

32 7 6 5 4 3 2 1 0 Velocidad Registro 1: 0-254 KMh / Si=255, desestimar registro


LSb 33 7 6 5 4 3 2 1 0
Rumbo Registro 1: 0º a 360º
MSb 34 0
LSb 34 6 5 4 3 2 1 0 Diferencia de Latitud Registro 1: Diferencia a considerar a partir
MSb 35 3 2 1 0 de la Latitud del Presente Evento. Al valor Dividirlo por 2 y
restarle 999. Ejemplo: -00.00002º
LSb 35 3 2 1 0 Diferencia de Longitud Registro 1: Diferencia a considerar a
MSb 36 6 5 4 3 2 1 0 partir de la Latitud del Presente Evento. Al valor Dividirlo por 16
y restarle 999. Ejemplo: -00.00001º
Fin Seccion de Registros

82 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo


83 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo
84 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo
85 7 6 5 4 3 2 1 0 A-9 Caracter de Fijo de ID del equipo

86 7 6 5 4 3 2 1 0 Numero de Mensaje: En Hexa segun se toma directo.


87 7 6 5 4 3 2 1 0 Ejemplo: 0x27 0x32 Entonces el Nro de mensaje es 2732

88 7 6 5 4 3 2 1 0 CheckSum de mensaje

Version 3.0 25 de Marzo de 2020

También podría gustarte