Confirmação de Recepção (ACK)
Quando o servidor recebe um reporte do equipamento, deve responder com um ACK (acknowledge) para confirmar a recepção correta.
📋 Formato do ACK
>ACK;#NNNN;ID=XXXX;*CC<| Campo | Descrição |
|---|---|
ACK | Comando de confirmação |
#NNNN | Número de mensagem do reporte recebido (hex) |
ID=XXXX | ID do equipamento |
*CC | Checksum |
💬 Exemplo Completo
1. Equipamento envia reporte
>RCY00020205000000-2778467-06425658000000-000090;DFFFFFF;IGN1;IN00;XP00;#0021;ID=1234;*59<2. Servidor responde ACK
>ACK;#0021;ID=1234;*72<O #0021 deve coincidir exatamente com o número de mensagem do reporte.
📱 ACK Simplificado (SMS)
Para responder de um celular a um reporte SMS, pode-se usar a versão curta:
>ACK;#0021<Sem ID nem checksum, mas mantém o número de mensagem.
⚠️ Comportamento sem ACK
Se o equipamento não recebe ACK:
| Passo | Ação |
|---|---|
| 1 | Armazena o reporte em buffer (BlackBox) |
| 2 | Reintenta o envio |
| 3 | Depois de várias tentativas, muda para IP secundário |
🔄 Comandos com Número de Mensagem
O servidor pode enviar comandos com número de mensagem (faixa 0x8000 - 0xFFFF) para receber confirmação do equipamento.
Exemplo
Servidor envia:
>SSSXP0011;#8001;ID=1234;*6A<Equipamento responde:
>RSSXP0011;#8001;ID=1234;*6B<A resposta com #8001 confirma que o comando foi executado.
🔢 Faixas de Número de Mensagem
| Faixa | Origem | Uso |
|---|---|---|
0x0000 - 0x7FFF | Equipamento → Servidor | Reportes automáticos |
0x8000 - 0xFFFF | Servidor → Equipamento | Comandos com confirmação |
🧮 Cálculo do Checksum
O checksum (*CC) é calculado realizando XOR de todos os caracteres desde > até * (sem incluir o *).
👉 Use o Analisador de Checksums para calcular e verificar checksums.
Ver Também
Última atualização