MData2 packets have two-byte message ID's, where the last byte is used to describe the number format (#7) and coordinate reference (#5).
The ability to generate a correct MID exists for output as part of #9, but adding unit tests for parsing the resulting data fails as the MData2 parser assumes a table which maps to 0xabc0.
[x] MData2 user-facing event types (XsensEventDataType_t) needs to support fixed-point and double typed data, and the array variations.
[x] User-facing event union XsensEventData_t needs to support fixed-point and double types
[x] xsens_mdata2_decode_field() needs to work out the data-type and coordinate frame from the last nibble of the inbound ID
[x] Find the type in the table without the last nibble applied
[x] Payload-into-union handling supports additional type possibilities
[x] Refactor event handling structure to support co-ordinate reference metadata (enum for ENU, NED, NWU etc)
[x] Existing test cases pass
[x] Generate test packets with varied data types
[x] Test case for each type (single, fixed-points, double) rotation matrix outputs
[x] Write new test cases which include conversion of fixed-point data back to floating point
MData2 packets have two-byte message ID's, where the last byte is used to describe the number format (#7) and coordinate reference (#5).
The ability to generate a correct MID exists for output as part of #9, but adding unit tests for parsing the resulting data fails as the MData2 parser assumes a table which maps to 0xabc0.
XsensEventDataType_t
) needs to support fixed-point and double typed data, and the array variations.XsensEventData_t
needs to support fixed-point and double typesxsens_mdata2_decode_field()
needs to work out the data-type and coordinate frame from the last nibble of the inbound ID