![IDTECH Vivopay Neo 2 Developer'S Manual Download Page 44](http://html.mh-extra.com/html/idtech/vivopay-neo-2/vivopay-neo-2_developers-manual_618786044.webp)
NEO 2 Interface Developer’s Guide
Copyright © 2019, International Technologies & Systems Corporation. All rights reserved.
44
2.8.5.
Error Handling at Report Level
1.
Any report with ID of 1 is processed as soon as it is received. All other unprocessed reports
are discarded.
2.
Any report with an ID of 2 causes all other unprocessed reports to be discarded.
3.
Any report with an ID of 3 is discarded unless the previous report had an ID of 2 or 3. If the
previous report ID 3 was discarded then this report also is discarded.
4.
Any report with an ID of 4 is discarded unless the previous report had an ID of 2 or 3. If the
previous report had an ID of 3 and was discarded then this report also is discarded. If the
report ID 4 frame is retained, then all retained reports are processed.
Processing of reports means passing the concatenated data frames contained in the reports
to the command handler. The report ID bytes must be discarded when concatenating the
report data frames.
An alternate way to handle the rules for report IDs 3 and 4 is to set a flag when a report with
an ID of 2 is received and reset the flag when a report with an ID of 1 is received or an ID of 4 is
finished processing. Reports with IDs of 3 or 4 are only kept when the flag is set.
2.8.6.
Error Handling at Command Level
The error handling at the command level remains as it is currently implemented for serial port
commands.
Incomplete commands are silently ignored when the reception times out. This does not occur
for commands received over the USB HID interface unless a complete report is dropped,
resulting in missing data for the command. The normal USB handshaking is expected to
prevent this.
A bad CRC value for the encapsulated command returns a bad CRC response to the command.
An unknown command or subcommand code results in an unknown command or unknown
subcommand Response Frame.
If the host does not receive any response to a command it should retry the command.
If the host receives a bad CRC response to a command it should retry the command. This is not
expected to occur when using USB because it includes a layer of error handling.