Basic implementation of Xbus message parsing and generation for embedded processors. The code has no dependencies and should also work for other MCU architectures than ARM provided a C99 compiler is available.

Dependents:   MTi-1_example_LPC1768 MTi-1_rikbeun MTi-1_example MTi-1_example ... more

Important Information

This library is deprecated and no longer maintained. There are new embedded examples available in the MT SDK folder of the MT Software Suite. For more information please visit: https://xsenstechnologies.force.com/knowledgebase/s/article/Introduction-to-the-MT-SDK-programming-examples-for-MTi-devices

For an example of using the Xbus library to communicate with an MTi-1 series device using a full-duplex UART see:

Import programMTi-1_example

Example of using Xbus library to communicate with an MTi-1 series device using a full-duplex UART connection.

Committer:
tjerkhofmeijer
Date:
Fri Oct 02 16:22:33 2015 +0200
Revision:
1:c24f69a2eff4
Parent:
0:eb25b1785ee4
Xbus library is updated to support MTi 1-series' I2C and SPI interfaces

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alexandery 0:eb25b1785ee4 1 /*!
alexandery 0:eb25b1785ee4 2 * \file
alexandery 0:eb25b1785ee4 3 * \copyright Copyright (C) Xsens Technologies B.V., 2015.
alexandery 0:eb25b1785ee4 4 *
alexandery 0:eb25b1785ee4 5 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
alexandery 0:eb25b1785ee4 6 * use this file except in compliance with the License. You may obtain a copy
alexandery 0:eb25b1785ee4 7 * of the License at
alexandery 0:eb25b1785ee4 8 *
alexandery 0:eb25b1785ee4 9 * http://www.apache.org/licenses/LICENSE-2.0
alexandery 0:eb25b1785ee4 10 *
alexandery 0:eb25b1785ee4 11 * Unless required by applicable law or agreed to in writing, software
alexandery 0:eb25b1785ee4 12 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
alexandery 0:eb25b1785ee4 13 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
alexandery 0:eb25b1785ee4 14 * License for the specific language governing permissions and limitations
alexandery 0:eb25b1785ee4 15 * under the License.
alexandery 0:eb25b1785ee4 16 */
alexandery 0:eb25b1785ee4 17
alexandery 0:eb25b1785ee4 18 #ifndef __XSDEVICEID_H
alexandery 0:eb25b1785ee4 19 #define __XSDEVICEID_H
alexandery 0:eb25b1785ee4 20
alexandery 0:eb25b1785ee4 21 #include <stdint.h>
alexandery 0:eb25b1785ee4 22 #include <stdbool.h>
alexandery 0:eb25b1785ee4 23
alexandery 0:eb25b1785ee4 24 #ifdef __cplusplus
alexandery 0:eb25b1785ee4 25 extern "C" {
alexandery 0:eb25b1785ee4 26 #endif
alexandery 0:eb25b1785ee4 27
alexandery 0:eb25b1785ee4 28 bool XsDeviceId_isMtMk4_X(uint32_t deviceId);
alexandery 0:eb25b1785ee4 29
alexandery 0:eb25b1785ee4 30 enum DeviceFunction
alexandery 0:eb25b1785ee4 31 {
alexandery 0:eb25b1785ee4 32 /*! \brief Inertial Measurement Unit. */
alexandery 0:eb25b1785ee4 33 DF_IMU = 1,
alexandery 0:eb25b1785ee4 34 /*! \brief Vertical Reference Unit. */
alexandery 0:eb25b1785ee4 35 DF_VRU = 2,
alexandery 0:eb25b1785ee4 36 /*! \brief Attitude Heading Reference System. */
alexandery 0:eb25b1785ee4 37 DF_AHRS = 3
alexandery 0:eb25b1785ee4 38 };
alexandery 0:eb25b1785ee4 39
alexandery 0:eb25b1785ee4 40 /*!
alexandery 0:eb25b1785ee4 41 * \brief Get the function of the MTi device.
alexandery 0:eb25b1785ee4 42 */
alexandery 0:eb25b1785ee4 43 static inline enum DeviceFunction XsDeviceId_getFunction(uint32_t deviceId)
alexandery 0:eb25b1785ee4 44 {
alexandery 0:eb25b1785ee4 45 return (enum DeviceFunction)((deviceId >> 24) & 0xF);
alexandery 0:eb25b1785ee4 46 }
alexandery 0:eb25b1785ee4 47
alexandery 0:eb25b1785ee4 48 char const* XsDeviceId_functionDescription(enum DeviceFunction function);
alexandery 0:eb25b1785ee4 49
alexandery 0:eb25b1785ee4 50 #ifdef __cplusplus
alexandery 0:eb25b1785ee4 51 }
alexandery 0:eb25b1785ee4 52 #endif // extern "C"
alexandery 0:eb25b1785ee4 53
alexandery 0:eb25b1785ee4 54 #endif // __XSDEVICEID_H