User Manual
© 2017 Inertial Sense, LLC
12
11/30/2017
5
SDK Library
This section describes the InertialSense Software Development Kit (SDK) used to communicate and interface with
the Inertial Sense products.
5.1
Binary Protocol
The Inertial Sense binary protocol provides the most efficient way to communicate with the µINS, µAHRS, and
µIMU. This section is provided to detail the packet and data structures format used in this binary protocol. You do
not need to be concerned with this section if you are using the Com Manager built-in binary interface, discussed
later in this manual. The µINS, µAHRS, and µIMU communicate using the following packet formatting:
Figure 1 - Packet Structure
Packet Header (4 bytes)
1 byte
–
packet start byte (0xFF)
1 byte
–
packet identifier, determines the format of packet data
1 byte
–
packet counter (for retries)
1 byte
–
flags, ePktHdrFlags enum
// in com_manager.h:
enum
ePktHdrFlags
{
// bit set for little endian, bit cleared for big endian
CM_PKT_FLAGS_LITTLE_ENDIAN
= 0x01,
// has any valid packet been received
CM_PKT_FLAGS_RX_VALID_DATA
= 0x02,
// multi-packet data set
CM_PKT_FLAGS_MORE_DATA_AVAILABLE
= 0x04,
// Allow for arbitrary length in bytes of data, not necessarily multiple of 4.
Don't auto-swap bytes for endianness
CM_PKT_FLAGS_RAW_DATA_NO_SWAP
= 0x08,
// Checksum is the new 24 bit algorithm instead of the old 16 bit algorithm
CM_PKT_FLAGS_CHECKSUM_24_BIT
= 0x10
};
Packet data (may be 0 bytes, depending on packet identifier)
Figure 2
–
Packet Data Structure