Data Sheet

The allocation of the 11-bit device ID is as follows:
Device ID Description
0x0000 Broadcasting address.
0x0001 Means the address is undefined.
0x0002 Refers to the host address (usually, PC or other device reading TransducerM data can be regarded as the host).
0x0064 ~ 0x07FF This is the normal TransducerM sensor node address range (which is the same as the Node ID specified in the
ImuAssistant. Please refer to section 'TransducerM – Node ID, Firmware Version, UUID' on page 16).
The Payload Content is the actual content of an Object. The 'Object Identifier (CMD)' bit field of the Payload Information
field specifies which Object is carried on the Payload Content. Below are two examples. For a full list of Object types, please
refer to section 'Object Types' on page 28.
Object Type Name Object Identifier (CMD)
(Decimal number)
Quaternion data 32
Roll, Pitch, Yaw data 35
The Checksum consists of two bytes which are the last two bytes of a complete Data Package. The checksum is calculated
according to the Modbus-Style 16-bit CRC checksum arithmetic.
The CRC checksum is generated from Package Length section and Payload section. (i.e. when calculating the CRC of a
complete package, we should exclude the Package Head (two bytes) and the CRC (2 Bytes) fields).
The following is an example implementation of a CRC checksum generator using C/C++ language. The input is a data stream
consisting of Package Length and Payload. The output is a two-byte integer (Little Endian).
uint16 Checksum_Generate(
char* data,
int dataLength
){
uint16 checkSum = 0;
unsigned char*d = (unsigned char*)data;
unsigned char c;
checkSum = 0xffff;
for(int i=0; i<dataLength; i++){
checkSum ^= (unsigned int)(*(d++));
for(int j=0; j<8; j++){
c = checkSum & 0x0001;
checkSum >>= 1;
if(c) checkSum ^= 0xa001;
}
}
return checkSum;
}
Copyright © 2015-2019 SYD Dynamics ApS | www.syd-dynamics.com Page 27 / 33