Xsens / Mbed 2 deprecated MTi-1_example

Dependencies:   mbed-rtos mbed Xbus

Fork of MTi-1_example by Alex Young

Committer:
Alex Young
Date:
Tue May 19 16:59:53 2015 +0200
Revision:
22:3eab999c5076
Parent:
21:6015b8be3a00
Child:
30:27ff4335edec
Add support for reading back output configuration.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Alex Young 10:18a6661b7e59 1 /*!
Alex Young 10:18a6661b7e59 2 * \file
Alex Young 10:18a6661b7e59 3 * \copyright
Alex Young 10:18a6661b7e59 4 * Copyright (C) Xsens Technologies B.V., 2015. All rights reserved.
Alex Young 10:18a6661b7e59 5 *
Alex Young 10:18a6661b7e59 6 * This source code is intended for use only by Xsens Technologies BV and
Alex Young 10:18a6661b7e59 7 * those that have explicit written permission to use it from
Alex Young 10:18a6661b7e59 8 * Xsens Technologies BV.
Alex Young 10:18a6661b7e59 9 *
Alex Young 10:18a6661b7e59 10 * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
Alex Young 10:18a6661b7e59 11 * KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
Alex Young 10:18a6661b7e59 12 * IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
Alex Young 10:18a6661b7e59 13 * PARTICULAR PURPOSE.
Alex Young 10:18a6661b7e59 14 */
Alex Young 10:18a6661b7e59 15
Alex Young 10:18a6661b7e59 16 #ifndef __XBUSMESSAGE_H
Alex Young 10:18a6661b7e59 17 #define __XBUSMESSAGE_H
Alex Young 10:18a6661b7e59 18
Alex Young 10:18a6661b7e59 19 #include <stddef.h>
Alex Young 10:18a6661b7e59 20 #include <stdint.h>
Alex Young 16:4bdcdac223d8 21 #include <stdbool.h>
Alex Young 10:18a6661b7e59 22
Alex Young 10:18a6661b7e59 23 #ifdef __cplusplus
Alex Young 10:18a6661b7e59 24 extern "C" {
Alex Young 10:18a6661b7e59 25 #endif
Alex Young 10:18a6661b7e59 26
Alex Young 10:18a6661b7e59 27 enum XsMessageId
Alex Young 10:18a6661b7e59 28 {
Alex Young 19:46e88d37ecef 29 XMID_ReqDid = 0x00,
Alex Young 19:46e88d37ecef 30 XMID_DeviceId = 0x01,
Alex Young 10:18a6661b7e59 31 XMID_GotoConfig = 0x30,
Alex Young 10:18a6661b7e59 32 XMID_GotoConfigAck = 0x31,
Alex Young 10:18a6661b7e59 33 XMID_GotoMeasurement = 0x10,
Alex Young 10:18a6661b7e59 34 XMID_GotoMeasurementAck = 0x11,
Alex Young 22:3eab999c5076 35 XMID_MtData2 = 0x36,
Alex Young 22:3eab999c5076 36 XMID_ReqOutputConfig = 0xC0,
Alex Young 22:3eab999c5076 37 XMID_SetOutputConfig = 0xC0,
Alex Young 22:3eab999c5076 38 XMID_OutputConfig = 0xC1,
Alex Young 10:18a6661b7e59 39 };
Alex Young 10:18a6661b7e59 40
Alex Young 16:4bdcdac223d8 41 enum XsDataIdentifier
Alex Young 16:4bdcdac223d8 42 {
Alex Young 16:4bdcdac223d8 43 XDI_PacketCounter = 0x1020,
Alex Young 16:4bdcdac223d8 44 XDI_SampleTimeFine = 0x1060,
Alex Young 16:4bdcdac223d8 45 XDI_Quaternion = 0x2010,
Alex Young 16:4bdcdac223d8 46 XDI_DeltaV = 0x4010,
Alex Young 16:4bdcdac223d8 47 XDI_Acceleration = 0x4020,
Alex Young 16:4bdcdac223d8 48 XDI_RateOfTurn = 0x8020,
Alex Young 16:4bdcdac223d8 49 XDI_DeltaQ = 0x8030,
Alex Young 16:4bdcdac223d8 50 XDI_MagneticField = 0xC020,
Alex Young 16:4bdcdac223d8 51 XDI_StatusWord = 0xE020,
Alex Young 16:4bdcdac223d8 52 };
Alex Young 16:4bdcdac223d8 53
Alex Young 10:18a6661b7e59 54 struct XbusMessage
Alex Young 10:18a6661b7e59 55 {
Alex Young 10:18a6661b7e59 56 enum XsMessageId mid;
Alex Young 10:18a6661b7e59 57 uint16_t length;
Alex Young 19:46e88d37ecef 58 void* data;
Alex Young 10:18a6661b7e59 59 };
Alex Young 10:18a6661b7e59 60
Alex Young 22:3eab999c5076 61 struct OutputConfiguration
Alex Young 22:3eab999c5076 62 {
Alex Young 22:3eab999c5076 63 enum XsDataIdentifier dtype;
Alex Young 22:3eab999c5076 64 uint16_t freq;
Alex Young 22:3eab999c5076 65 };
Alex Young 22:3eab999c5076 66
Alex Young 10:18a6661b7e59 67 size_t XbusMessage_format(uint8_t* raw, struct XbusMessage const* message);
Alex Young 16:4bdcdac223d8 68 bool XbusMessage_getDataItem(void* item, enum XsDataIdentifier id, struct XbusMessage const* message);
Alex Young 21:6015b8be3a00 69 char const* XbusMessage_dataDescription(enum XsDataIdentifier id);
Alex Young 10:18a6661b7e59 70
Alex Young 10:18a6661b7e59 71 #ifdef __cplusplus
Alex Young 10:18a6661b7e59 72 }
Alex Young 10:18a6661b7e59 73 #endif // extern "C"
Alex Young 10:18a6661b7e59 74
Alex Young 10:18a6661b7e59 75 #endif // __XBUSMESSAGE_H