Reporte B9
Reporte binario TAU de 89 bytes que amplía al B3 con datos de acelerómetro (XYZ) y un trail de las últimas 10 posiciones GPS codificadas como deltas. Mantiene el mismo objetivo de eficiencia: aproximadamente 70% menos de datos que el reporte de texto equivalente.
Los reportes binarios TAU (B9 y B3) se asignan a eventos igual que los reportes de texto (tipo CQ / CY). El equipo los codifica y transmite directamente en binario.
¿Para qué sirve?
- 📈 Reportar la dinámica del vehículo (acelerómetro) junto a la posición
- 🧭 Enviar el recorrido reciente (10 posiciones) en una sola trama compacta
- 📉 Minimizar el consumo de datos móviles frente al reporte de texto
- 🛰️ Enlaces satelitales / LPWA con mayor densidad de información por byte
Asignación a eventos
El reporte se asigna a un evento con el código de dos letras B9, exactamente igual que los reportes de texto CQ o CY. Cuando el evento se dispara, el equipo genera la trama binaria de 89 bytes y la envía al destino configurado.
SMS no es un destino válido para reportes binarios. Si el destino asignado es SMS, la trama se descarta (el binario no se transmite por SMS). Use GPRS, Wi-Fi, backend o log.
Consulta por terminal (QBUS)
Al consultar el buffer por terminal con QBUS, la trama se muestra como hex dump con el prefijo RB9:.
>QBUS<
>RB9:3E52423968...< // 89 bytes en hexadecimalEstructura binaria (89 bytes)
Los bytes 0–23 comparten el mismo formato que el reporte B3 (cabecera, fecha/hora, posición, red). A partir del byte 24 se agregan acelerómetro y trail.
| Bytes | Campo | Descripción |
|---|---|---|
| 0–3 | Cabecera | ASCII >RB9 |
| 4–7 | Fecha/hora | Epoch TAU (uint32, big-endian) |
| 8 | Evento | Código de evento que disparó el reporte |
| 9–12 | HDOP + longitud | HDOP (6 bits) + longitud TAU de 26 bits (lon × 10⁵ + 18000000) |
| 13–16 | Fix + satélites + latitud | Fix (2 bits) + satélites (4 bits) + latitud TAU de 25 bits (lat × 10⁵ + 9000000) |
| 17 | Edad de posición | Segundos desde el último fix válido (máx. 255) |
| 18–19 | Señal GSM + velocidad | CSQ (6 bits) + velocidad km/h (10 bits) |
| 20–21 | Registro de red + rumbo | Registro GSM/GPRS (3 + 3 bits) + rumbo en grados (9 bits) |
| 22–23 | Salidas + entradas | Salidas digitales XP (5 bits) + entradas IN (10 bits) |
| 24–29 | Acelerómetro XYZ | Eje resultante + ejes Z / Y / X codificados con offset +999 |
| 30 | Estado de movimiento | 0 = detenido, 1 = en movimiento |
| 31 | Edad del dato | Antigüedad del trail |
| 32–81 | Trail de 10 posiciones | 10 registros × 5 bytes: velocidad (8 bits) + rumbo (9 bits) + Δlat (11 bits) + Δlon (12 bits) |
| 82–85 | ID equipo | Identificador del equipo (4 bytes) |
| 86–87 | Nº de mensaje | Contador de mensaje (uint16, big-endian) |
| 88 | Checksum | XOR de los bytes 0–87 |
Acelerómetro (bytes 24–29)
Se transmite el eje resultante junto a los tres ejes codificados con un offset de +999: el eje X directo, el eje Y dividido por 32 y el eje Z dividido por 4. El byte 30 indica si el vehículo está detenido o en movimiento.
Trail de posiciones (bytes 32–81)
Cada uno de los 10 registros (5 bytes) guarda una posición del recorrido reciente como delta respecto a la posición del evento:
- Δlat:
(Δlat / 2) + 999en 11 bits (Δ en grados × 10⁵) - Δlon:
(Δlon / 16) + 999en 12 bits (Δ en grados × 10⁵) - Junto con velocidad (8 bits) y rumbo (9 bits)
Un registro cuyo primer byte es 255 indica una posición inválida / vacía (menos de 10 puntos disponibles).