Relatório B9
Relatório binário TAU de 89 bytes que amplia o B3 com dados de acelerômetro (XYZ) e um trail das últimas 10 posições GPS codificadas como deltas. Mantém o mesmo objetivo de eficiência: cerca de 70% menos dados que o relatório de texto equivalente.
Os relatórios binários TAU (B9 e B3) são atribuídos a eventos igual aos relatórios de texto (tipo CQ / CY). O equipamento os codifica e transmite diretamente em binário.
Para que serve?
- 📈 Relatar a dinâmica do veículo (acelerômetro) junto à posição
- 🧭 Enviar o percurso recente (10 posições) em um único quadro compacto
- 📉 Minimizar o consumo de dados móveis frente ao relatório de texto
- 🛰️ Enlaces via satélite / LPWA com maior densidade de informação por byte
Atribuição a eventos
O relatório é atribuído a um evento com o código de duas letras B9, exatamente como os relatórios de texto CQ ou CY. Quando o evento é disparado, o equipamento gera o quadro binário de 89 bytes e o envia ao destino configurado.
SMS não é um destino válido para relatórios binários. Se o destino atribuído for SMS, o quadro é descartado (o binário não é transmitido por SMS). Use GPRS, Wi-Fi, backend ou log.
Consulta por terminal (QBUS)
Ao consultar o buffer pelo terminal com QBUS, o quadro é exibido como hex dump com o prefixo RB9:.
>QBUS<
>RB9:3E52423968...< // 89 bytes em hexadecimalEstrutura binária (89 bytes)
Os bytes 0–23 compartilham o mesmo formato do relatório B3 (cabeçalho, data/hora, posição, rede). A partir do byte 24 são adicionados acelerômetro e trail.
| Bytes | Campo | Descrição |
|---|---|---|
| 0–3 | Cabeçalho | ASCII >RB9 |
| 4–7 | Data/hora | Epoch TAU (uint32, big-endian) |
| 8 | Evento | Código do evento que disparou o relatório |
| 9–12 | HDOP + longitude | HDOP (6 bits) + longitude TAU de 26 bits (lon × 10⁵ + 18000000) |
| 13–16 | Fix + satélites + latitude | Fix (2 bits) + satélites (4 bits) + latitude TAU de 25 bits (lat × 10⁵ + 9000000) |
| 17 | Idade da posição | Segundos desde o último fix válido (máx. 255) |
| 18–19 | Sinal GSM + velocidade | CSQ (6 bits) + velocidade km/h (10 bits) |
| 20–21 | Registro de rede + rumo | Registro GSM/GPRS (3 + 3 bits) + rumo em graus (9 bits) |
| 22–23 | Saídas + entradas | Saídas digitais XP (5 bits) + entradas IN (10 bits) |
| 24–29 | Acelerômetro XYZ | Eixo resultante + eixos Z / Y / X codificados com offset +999 |
| 30 | Estado de movimento | 0 = parado, 1 = em movimento |
| 31 | Idade do dado | Antiguidade do trail |
| 32–81 | Trail de 10 posições | 10 registros × 5 bytes: velocidade (8 bits) + rumo (9 bits) + Δlat (11 bits) + Δlon (12 bits) |
| 82–85 | ID equipamento | Identificador do equipamento (4 bytes) |
| 86–87 | Nº de mensagem | Contador de mensagem (uint16, big-endian) |
| 88 | Checksum | XOR dos bytes 0–87 |
Acelerômetro (bytes 24–29)
O eixo resultante é transmitido junto aos três eixos codificados com um offset de +999: o eixo X direto, o eixo Y dividido por 32 e o eixo Z dividido por 4. O byte 30 indica se o veículo está parado ou em movimento.
Trail de posições (bytes 32–81)
Cada um dos 10 registros (5 bytes) guarda uma posição do percurso recente como delta em relação à posição do evento:
- Δlat:
(Δlat / 2) + 999em 11 bits (Δ em graus × 10⁵) - Δlon:
(Δlon / 16) + 999em 12 bits (Δ em graus × 10⁵) - Junto com velocidade (8 bits) e rumo (9 bits)
Um registro cujo primeiro byte é 255 indica uma posição inválida / vazia (menos de 10 pontos disponíveis).