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

Embed: (wiki syntax)

« Back to documentation index

xbusutility.c File Reference

xbusutility.c File Reference

Go to the source code of this file.

Functions

Xbus message reading utility functions.

Xbus messages use big-endian representations for multibyte data. These functions help in reading data from an Xbus message and converting it to a native type.

The functions are intended to scan over a message as follows:

 void readValues(XbusMessage const* message)
 {
     uint16_t v1;
     uint8_t v2;
     uint32_t v3;
     uint8_t* dptr = message->data;
     dptr = XbusUtility_readU16(&v1, dptr);
     dptr = XbusUtility_readU8(&v2, dptr);
     dptr = XbusUtility_readU32(&v3, dptr);
 }
uint8_t const * XbusUtility_readU8 (uint8_t *out, uint8_t const *in)
 Read a uint8_t value from an Xbus message.
uint8_t const * XbusUtility_readU16 (uint16_t *out, uint8_t const *in)
 Read a uint16_t value from an Xbus message.
uint8_t const * XbusUtility_readU32 (uint32_t *out, uint8_t const *in)
 Read a uint32_t value from an Xbus message.
Xbus message writing utility functions.

These functions aid in writing native values to big-endian xbus message payloads. See corresponding reading functions for further details.

uint8_t * XbusUtility_writeU8 (uint8_t *out, uint8_t in)
 Write a uint8_t value to an Xbus message.
uint8_t * XbusUtility_writeU16 (uint8_t *out, uint16_t in)
 Write a uint16_t value to an Xbus message.
uint8_t * XbusUtility_writeU32 (uint8_t *out, uint32_t in)
 Write a uint32_t value to an Xbus message.

Detailed Description

Copyright (C) Xsens Technologies B.V., 2015.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Definition in file xbusutility.c.


Function Documentation

uint8_t const* XbusUtility_readU16 ( uint16_t *  out,
uint8_t const *  in 
)

Read a uint16_t value from an Xbus message.

Definition at line 51 of file xbusutility.c.

uint8_t const* XbusUtility_readU32 ( uint32_t *  out,
uint8_t const *  in 
)

Read a uint32_t value from an Xbus message.

Definition at line 58 of file xbusutility.c.

uint8_t const* XbusUtility_readU8 ( uint8_t *  out,
uint8_t const *  in 
)

Read a uint8_t value from an Xbus message.

Definition at line 44 of file xbusutility.c.

uint8_t* XbusUtility_writeU16 ( uint8_t *  out,
uint16_t  in 
)

Write a uint16_t value to an Xbus message.

Definition at line 79 of file xbusutility.c.

uint8_t* XbusUtility_writeU32 ( uint8_t *  out,
uint32_t  in 
)

Write a uint32_t value to an Xbus message.

Definition at line 87 of file xbusutility.c.

uint8_t* XbusUtility_writeU8 ( uint8_t *  out,
uint8_t  in 
)

Write a uint8_t value to an Xbus message.

Definition at line 72 of file xbusutility.c.