Xsens / Mbed 2 deprecated MTi-1_example

Dependencies:   mbed-rtos mbed Xbus

Fork of MTi-1_example by Alex Young

Committer:
Alex Young
Date:
Thu May 21 12:19:08 2015 +0200
Revision:
33:542e4b568631
Parent:
30:27ff4335edec
Child:
48:69d35430fe8b
Add Xbus wakeup message ids

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 33:542e4b568631 29 XMID_Wakeup = 0x3E,
Alex Young 33:542e4b568631 30 XMID_WakeupAck = 0x3F,
Alex Young 19:46e88d37ecef 31 XMID_ReqDid = 0x00,
Alex Young 19:46e88d37ecef 32 XMID_DeviceId = 0x01,
Alex Young 10:18a6661b7e59 33 XMID_GotoConfig = 0x30,
Alex Young 10:18a6661b7e59 34 XMID_GotoConfigAck = 0x31,
Alex Young 10:18a6661b7e59 35 XMID_GotoMeasurement = 0x10,
Alex Young 10:18a6661b7e59 36 XMID_GotoMeasurementAck = 0x11,
Alex Young 22:3eab999c5076 37 XMID_MtData2 = 0x36,
Alex Young 22:3eab999c5076 38 XMID_ReqOutputConfig = 0xC0,
Alex Young 22:3eab999c5076 39 XMID_SetOutputConfig = 0xC0,
Alex Young 22:3eab999c5076 40 XMID_OutputConfig = 0xC1,
Alex Young 30:27ff4335edec 41 XMID_Reset = 0x40,
Alex Young 30:27ff4335edec 42 XMID_ResetAck = 0x41,
Alex Young 30:27ff4335edec 43 XMID_Error = 0x42,
Alex Young 10:18a6661b7e59 44 };
Alex Young 10:18a6661b7e59 45
Alex Young 16:4bdcdac223d8 46 enum XsDataIdentifier
Alex Young 16:4bdcdac223d8 47 {
Alex Young 16:4bdcdac223d8 48 XDI_PacketCounter = 0x1020,
Alex Young 16:4bdcdac223d8 49 XDI_SampleTimeFine = 0x1060,
Alex Young 16:4bdcdac223d8 50 XDI_Quaternion = 0x2010,
Alex Young 16:4bdcdac223d8 51 XDI_DeltaV = 0x4010,
Alex Young 16:4bdcdac223d8 52 XDI_Acceleration = 0x4020,
Alex Young 16:4bdcdac223d8 53 XDI_RateOfTurn = 0x8020,
Alex Young 16:4bdcdac223d8 54 XDI_DeltaQ = 0x8030,
Alex Young 16:4bdcdac223d8 55 XDI_MagneticField = 0xC020,
Alex Young 16:4bdcdac223d8 56 XDI_StatusWord = 0xE020,
Alex Young 16:4bdcdac223d8 57 };
Alex Young 16:4bdcdac223d8 58
Alex Young 10:18a6661b7e59 59 struct XbusMessage
Alex Young 10:18a6661b7e59 60 {
Alex Young 10:18a6661b7e59 61 enum XsMessageId mid;
Alex Young 10:18a6661b7e59 62 uint16_t length;
Alex Young 19:46e88d37ecef 63 void* data;
Alex Young 10:18a6661b7e59 64 };
Alex Young 10:18a6661b7e59 65
Alex Young 22:3eab999c5076 66 struct OutputConfiguration
Alex Young 22:3eab999c5076 67 {
Alex Young 22:3eab999c5076 68 enum XsDataIdentifier dtype;
Alex Young 22:3eab999c5076 69 uint16_t freq;
Alex Young 22:3eab999c5076 70 };
Alex Young 22:3eab999c5076 71
Alex Young 10:18a6661b7e59 72 size_t XbusMessage_format(uint8_t* raw, struct XbusMessage const* message);
Alex Young 16:4bdcdac223d8 73 bool XbusMessage_getDataItem(void* item, enum XsDataIdentifier id, struct XbusMessage const* message);
Alex Young 21:6015b8be3a00 74 char const* XbusMessage_dataDescription(enum XsDataIdentifier id);
Alex Young 10:18a6661b7e59 75
Alex Young 10:18a6661b7e59 76 #ifdef __cplusplus
Alex Young 10:18a6661b7e59 77 }
Alex Young 10:18a6661b7e59 78 #endif // extern "C"
Alex Young 10:18a6661b7e59 79
Alex Young 10:18a6661b7e59 80 #endif // __XBUSMESSAGE_H