- The device uses the HID Protocol Class with 64-byte blocks (Reports in HID terminology).
- The first byte of every 64-byte block is a length byte, indicating how many of the following 63 bytes are actually used.
- If the length byte is less than 63, the remaining bytes should be discarded.
- If it is 63 or more, all following 63 bytes are used.
Datalink Protocol
Command Sequence Example (GetKioskId)
The following exchange shows the full ACK/NAK flow for aGetKioskID command:
Data Frame
Example:<A[Frame-ID]|[Length][Data][LRC]>
LRC and Length Calculation Example
ACK Frame
Sent to acknowledge a successfully received and validated Data Frame. Examples:<+0>, <+1>
Structure: <+[Frame-ID]>
The [Frame-ID] matches the Data Frame being acknowledged.
NAK Frame
Sent when the receiving side fails to parse a Data Frame. Examples:<-0|1>, <-1|7>
Structure: <-[Frame-ID]|[Err]>
The transmitting party does not change its behavior based on the error codes; they are for debugging only.
Protocol Rules
The datalink layer follows these timing and sequencing rules:- ACK/NAK are expected within 30 milliseconds.
- If ACK is not received, or if a NAK is received, the sending party may resend the frame with the same Frame-ID.
- While waiting for ACK/NAK, the sending party must not send another frame.
- When receiving a frame: if the first bytes are not
<A0or<A1, do not send a NAK. Instead, keep reading until receiving a valid start of frame.