ACK/NAK Handshaking

ACK/NAK Handshaking

If you enable ACK/NAK handshaking (the default), all packeted messages must have a CMD_ACK or CMD_NAK response, unless the command description states otherwise. Zebra recommends leaving this handshaking enabled to provide feedback to the host. Raw decode data and WAKEUP do not use ACK/NAK handshaking since they are not packeted data.
Following is an example of a problem which can occur if you disable ACK/NAK handshaking:
  • The host sends a PARAM_SEND message to the scanner to change the baud rate from 9600 to 19200.
  • The scanner cannot interpret the message.
  • The scanner does not implement the change the host requested.
  • The host assumes that the parameter change occurred and acts accordingly.
  • Communication is lost because the change did not occur on both sides.
If you enable ACK/NAK handshaking, the following occurs:
  • The host sends a PARAM_SEND message.
  • The scanner cannot interpret the message.
  • The scanner CMD_NAKs the message.
  • The host resends the message.
  • The scanner receives the message successfully, responds with CMD_ACK, and implements parameter changes.