Skip to Content

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<
CampoDescrição
ACKComando de confirmação
#NNNNNúmero de mensagem do reporte recebido (hex)
ID=XXXXID do equipamento
*CCChecksum

💬 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:

PassoAção
1Armazena o reporte em buffer (BlackBox)
2Reintenta o envio
3Depois 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

FaixaOrigemUso
0x0000 - 0x7FFFEquipamento → ServidorReportes automáticos
0x8000 - 0xFFFFServidor → EquipamentoComandos 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