NEO 2 Interface Developer’s Guide
Copyright © 2019, International Technologies & Systems Corporation. All rights reserved.
41
There are four defined report IDs used in this protocol: 1, 2, 3, and 4. Undefined report IDs are
silently ignored.
2.8.1.1.
Report ID 1
ID 1 frames are used when a complete command or response is 63 bytes or less. As soon as
the host or device receives a report ID 1 frame, it should parse the report data to extract the
command or response.
2.8.1.2.
Report ID 2
ID 2 frames are used when a complete command or response is more than 63 bytes long and
cannot fit in a single report. The report ID 2 frame contains the first 63 bytes of the command.
So the “ViVOtech2” command tag is only present in report IDs 1 or 2. The report ID 2 frames
always contain 63 bytes of valid data with no padding bytes since the command is more than
63 bytes long.
2.8.1.3.
Report ID 3
ID 3 frames are continuation frames. For any command or response that is more than 126
bytes long, the middle frames of the response are sent with a report ID of 3. Any frame
received with a report ID 3 is ignored unless it is preceded by a report with an ID of 2 or 3. The
report ID 3 frames should always contain 63 bytes of valid data with no padding bytes.
2.8.1.4.
Report ID 4
ID 4 frames mark the end of multi-report commands. Any padding needed to make the
command a multiple of 63 bytes should be placed in this report. Any frame received with a
report ID 4 is ignored unless it is preceded by a report with an ID of 2 or 3. As soon as the host
or device receives a valid report ID 4 frame, it should parse the report data to extract the
command or response.
The exception to the rule of only adding pad bytes to reports with IDs of 1 or 4 is debug test
frames. Surrounding a command with pad bytes to make the command span multiple reports
is valid for testing the multi-report handling of the host and device software. Avoided doing
this in deployed code because it slows command processing times.