Protocolo GPS Xexun: Guía de Comandos y Estructura de Datos
El protocolo de los dispositivos GPS Xexun es fundamental para entender cómo estos terminales se comunican con los servidores de rastreo. En esta guía, exploraremos los tipos de datos, la estructura de los mensajes y los comandos más utilizados.
Tipos de Datos en el Protocolo Xexun
El protocolo utiliza varios tipos de datos para representar la información de manera eficiente:
| Tipo | Descripción |
|---|---|
| U8 | Entero de un solo byte sin signo (8 bits) |
| U16 | Entero de doble byte sin signo (16 bits) |
| U32 | Entero de cuatro bytes sin signo (32 bits) |
| FLOAT | Número de punto flotante de precisión simple (4 bytes, 32 bits) |
| U8 [n] | N bytes de datos |
| BCD [n] | Código 8421 (Binary-Coded Decimal), n bytes |
| STRING | Codificación UTF-8 |
Estructura del Mensaje
Cada mensaje en el protocolo Xexun sigue una estructura específica: Bit de bandera + Cabecera del mensaje + Cuerpo del mensaje + Bit de bandera.
Banderas (Flags)
Las banderas de inicio y fin son siempre FAAF.
- Si aparece
FAAFdentro del cuerpo, se convierte aFBBF02. - Si aparece
FBBFdentro del cuerpo, se convierte aFBBF01.
Cabecera del Mensaje (Message Header)
La cabecera contiene información crítica sobre la identidad del dispositivo y el tipo de mensaje:
| No. | Byte de Inicio | Nombre | Tipo de Datos | Descripción |
|---|---|---|---|---|
| 1 | 0 | Message ID | U16 | Datos de posicionamiento/alarma: 0020. Comandos del servidor: 0021. |
| 2 | 2 | Serial Number | U16 | 0-65535 |
| 3 | 4 | IMEI+0 | BCD[8] | Identificador del dispositivo |
| 4 | 12 | Text length | U16 | Longitud del texto |
| 5 | 14 | ECC check | U16 | Verificación de errores del mensaje completo |
Tipos de Datos del Cuerpo (Data Type ID)
El cuerpo del mensaje varía según el tipo de información enviada:
- 00 (GPS): Datos de posicionamiento. Incluye latitud, longitud, altitud, satélites, velocidad y ángulo.
- 01 (WIFI): Información de redes WiFi cercanas para posicionamiento.
- 02 (LBS): Información de celdas de telefonía (MCC, MNC, LAC, CID).
- 03 (TOF): Datos de medición de distancia.
- 04 (Alarm): Datos de alarmas generadas por el dispositivo.
- 05 (Vital Signs): Signos vitales como ritmo cardíaco, presión y oxígeno en sangre.
- 06 (Device Status): Estado del dispositivo (señal 4G, batería, estado de carga).
- 20 (Version): Información de la versión del firmware e ICCID.
Comandos del Servidor (Server Commands)
El servidor puede enviar diversos comandos para configurar o controlar el dispositivo:
| Función | Instrucción | Descripción |
|---|---|---|
| Apagado | of=1 | El dispositivo se apagará. |
| Reiniciado | rt=1 | El dispositivo se reiniciará. |
| Rastreo | tk=1,60,1,180,1 | Configura intervalos de posicionamiento y reporte. |
| Mensaje | mg=texto | Muestra mensajes en dispositivos con pantalla. |
| Zona Horaria | tz=8 | Configura el huso horario (Eeste +, Oeste -). |
| IP/Dominio | ip=p.xexun.com:8899 | Configura el servidor y puerto de destino. |
Ejemplo de Envío de Comando
Para enviar el comando de rastreo tk=1,60,1,180,1 al IMEI 863921033475388: El texto se convierte a hexadecimal: 746b3d312c36302c312c3138302c3100.
Algoritmo de Verificación ECC (Checksum)
El protocolo utiliza un algoritmo de suma de comprobación para garantizar la integridad de los datos. Aquí un ejemplo simplificado en C:
unsigned short sw_tcp_checksum(unsigned char *data, int len) {
unsigned long sum = 0;
for (; len > 1; len -= 1) {
sum += *data++;
if (sum & 0x80000000)
sum = (sum & 0xffff) + (sum >> 16);
}
if (len == 1) {
unsigned short i = 0;
*(unsigned char *)(&i) = *(unsigned char *)data;
sum += i;
}
while (sum >> 16)
sum = (sum & 0xffff) + sum >> 16;
return (sum == 0xffff) ? sum : ~sum;
}
Este protocolo es robusto y permite una gestión detallada de los dispositivos Xexun, asegurando que tanto la ubicación como el estado de salud y alarmas sean reportados de manera confiable.