Confirmación de Recepción (ACK)
Cuando el servidor recibe un reporte del equipo, debe responder con un ACK (acknowledge) para confirmar la recepción correcta.
📋 Formato del ACK
>ACK;#NNNN;ID=XXXX;*CC<| Campo | Descripción |
|---|---|
ACK | Comando de confirmación |
#NNNN | Número de mensaje del reporte recibido (hex) |
ID=XXXX | ID del equipo |
*CC | Checksum |
💬 Ejemplo Completo
1. Equipo envía reporte
>RCY00020205000000-2778467-06425658000000-000090;DFFFFFF;IGN1;IN00;XP00;#0021;ID=1234;*59<2. Servidor responde ACK
>ACK;#0021;ID=1234;*72<El #0021 debe coincidir exactamente con el número de mensaje del reporte.
📱 ACK Simplificado (SMS)
Para responder desde un celular a un reporte SMS, se puede usar la versión corta:
>ACK;#0021<Sin ID ni checksum, pero mantiene el número de mensaje.
⚠️ Comportamiento sin ACK
Si el equipo no recibe ACK:
| Paso | Acción |
|---|---|
| 1 | Almacena el reporte en buffer (BlackBox) |
| 2 | Reintenta el envío |
| 3 | Después de varios intentos, cambia a IP secundaria |
🔄 Comandos con Número de Mensaje
El servidor puede enviar comandos con número de mensaje (rango 0x8000 - 0xFFFF) para recibir confirmación del equipo.
Ejemplo
Servidor envía:
>SSSXP0011;#8001;ID=1234;*6A<Equipo responde:
>RSSXP0011;#8001;ID=1234;*6B<La respuesta con #8001 confirma que el comando fue ejecutado.
🔢 Rangos de Número de Mensaje
| Rango | Origen | Uso |
|---|---|---|
0x0000 - 0x7FFF | Equipo → Servidor | Reportes automáticos |
0x8000 - 0xFFFF | Servidor → Equipo | Comandos con confirmación |
🧮 Cálculo del Checksum
El checksum (*CC) se calcula realizando XOR de todos los caracteres desde > hasta * (sin incluir el *).
👉 Usa el Analizador de Checksums para calcular y verificar checksums.
Ver También
Last updated on