Una vez que el servidor recibe las tramas en su socket (TCP o UDP), el siguiente paso crítico es interpretar (“parsear”) esas tramas para extraer información útil, como ubicación, velocidad, estado de entradas/salidas, y luego guardar esos datos en una base de datos para su visualización y análisis posterior.
¿Qué es el parseo de tramas?
El parseo es el proceso de descomponer una trama hexadecimal según el protocolo del fabricante para identificar sus campos (fecha, hora, latitud, longitud, velocidad, eventos, etc.).
Ejemplo: Parseo de trama Concox
Trama hexadecimal recibida:
78780D010359339071084002000084ED0D0A
Estructura según protocolo Concox GT06N:
| Campo | Valor | Descripción |
|---|---|---|
| Inicio | 7878 | Encabezado de trama |
| Longitud | 0D | Número de bytes siguientes (13) |
| Protocolo | 01 | Paquete de login |
| IMEI | 0359339071084002 | Identificador del equipo |
| Serial | 0000 | Número de secuencia |
| CRC | 84ED | Verificación de integridad |
| Final | 0D0A | Terminador de trama (\r\n) |
⚠️ Cada modelo (Teltonika, Concox, Topfly, etc.) tiene un protocolo diferente, por eso es clave tener el manual técnico a la mano.
¿Cómo se hace el parseo?
- Convertir la trama de bytes a hexadecimal.
- Dividirla en segmentos según el protocolo.
- Interpretar valores (ej. latitud y longitud suelen estar en formato "grados × 10⁶").
- Aplicar transformaciones (ej. dividir por 1800000 para convertir a coordenadas reales).
- Validar CRC si es necesario.
Almacenamiento en base de datos
Una vez parseados los datos, se guardan en una tabla estructurada. Ejemplo con MySQL:
CREATE TABLE posiciones (
id INT AUTO_INCREMENT PRIMARY KEY,
imei VARCHAR(20),
fecha DATETIME,
latitud DECIMAL(10,6),
longitud DECIMAL(10,6),
velocidad INT,
evento VARCHAR(50)
);
Ejemplo de inserción:
INSERT INTO posiciones (imei, fecha, latitud, longitud, velocidad, evento)
VALUES ('359339071084002', '2025-04-12 14:32:00', 21.121233, -101.666541, 64, 'Login');
Recomendaciones técnicas
- Crea una función específica por marca/modelo para parseo.
- Guarda un log crudo de las tramas para pruebas y auditoría.
- Automatiza el almacenamiento con una API o proceso en segundo plano.
- Usa base de datos relacional (MySQL, PostgreSQL) o NoSQL según tu arquitectura.

