Skip to Content

Reception Confirmation (ACK)

When the server receives a report from the device, it must respond with an ACK (acknowledge) to confirm correct reception.


📋 ACK Format

>ACK;#NNNN;ID=XXXX;*CC<
FieldDescription
ACKConfirmation command
#NNNNMessage number of the received report (hex)
ID=XXXXDevice ID
*CCChecksum

💬 Complete Example

1. Device sends report

>RCY00020205000000-2778467-06425658000000-000090;DFFFFFF;IGN1;IN00;XP00;#0021;ID=1234;*59<

2. Server responds ACK

>ACK;#0021;ID=1234;*72<

The #0021 must match exactly with the report message number.


📱 Simplified ACK (SMS)

To respond from a mobile phone to an SMS report, the short version can be used:

>ACK;#0021<

Without ID or checksum, but maintains the message number.


🔁 SAK — ACK Alias

SAK is a full alias of ACK: in the parser’s command table, both tokens point to the same handler (HdlrACK) and produce exactly the same effect, with the same format and the same variants (full and short via SMS).

>SAK;#0021;ID=1234;*72<

⚠️ Behavior without ACK

If the device doesn’t receive ACK:

StepAction
1Stores the report in buffer (BlackBox)
2Retries sending
3After several attempts, switches to secondary IP

🔄 Commands with Message Number

The server can send commands with message number (range 0x8000 - 0xFFFF) to receive confirmation from the device.

Example

Server sends:

>SSSXP0011;#8001;ID=1234;*6A<

Device responds:

>RSSXP0011;#8001;ID=1234;*6B<

The response with #8001 confirms that the command was executed.


🔢 Message Number Ranges

RangeOriginUse
0x0000 - 0x7FFFDevice → ServerAutomatic reports
0x8000 - 0xFFFFServer → DeviceCommands with confirmation

🧮 Checksum Calculation

The checksum (*CC) is calculated by performing XOR of all characters from > to * (not including the *).

👉 Use the Checksum Analyzer to calculate and verify checksums.


See Also

Last updated