kjj

Dependencies:   mbed-rtos mbed Xbus

Fork of MTi-1_example by Xsens

Files at this revision

API Documentation at this revision

Comitter:
Alex Young
Date:
Thu May 21 16:14:14 2015 +0200
Parent:
44:b3980e8ac074
Child:
46:f652d199d27e
Commit message:
Documentation of xbuf definitions and utility functions

Changed in this revision

xbus/xbusdef.h Show annotated file Show diff for this revision Revisions of this file
xbus/xbusutility.c Show annotated file Show diff for this revision Revisions of this file
--- a/xbus/xbusdef.h	Thu May 21 16:01:20 2015 +0200
+++ b/xbus/xbusdef.h	Thu May 21 16:14:14 2015 +0200
@@ -16,9 +16,13 @@
 #ifndef __XBUSDEF_H
 #define __XBUSDEF_H
 
+/*! \brief Xbus message preamble byte. */
 #define XBUS_PREAMBLE (0xFA)
+/*! \brief Xbus message bus ID for standalone application. */
 #define XBUS_BUS_ID_STANDALONE (0xFF)
+/*! \brief Xbus length byte for messages without payload. */
 #define XBUS_NO_PAYLOAD (0x00)
+/*! \brief Xbus length byte for message with an extended payload. */
 #define XBUS_EXTENDED_LENGTH (0xFF)
 
 #endif // __XBUSDEF_H
--- a/xbus/xbusutility.c	Thu May 21 16:01:20 2015 +0200
+++ b/xbus/xbusutility.c	Thu May 21 16:14:14 2015 +0200
@@ -15,30 +15,65 @@
 
 #include "xbusutility.h"
 
+/*!
+ * \name 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:
+ * \code{.c}
+ * 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);
+ * }
+ * \endcode
+ * \{
+ */
+/*!
+ * \brief Read a uint8_t value from an Xbus message.
+ */
 uint8_t const* XbusUtility_readU8(uint8_t* out, uint8_t const* in)
 {
 	*out = *in;
 	return ++in;
 }
 
+/*! \brief Read a uint16_t value from an Xbus message. */
 uint8_t const* XbusUtility_readU16(uint16_t* out, uint8_t const* in)
 {
 	*out = (in[0] << 8) | in[1];
 	return in + sizeof(uint16_t);
 }
 
+/*! \brief Read a uint32_t value from an Xbus message. */
 uint8_t const* XbusUtility_readU32(uint32_t* out, uint8_t const* in)
 {
 	*out = (in[0] << 24) | (in[1] << 16) | (in[2] << 8) | in[3];
 	return in + sizeof(uint32_t);
 }
+/*! \} */
 
+/*!
+ * \brief 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.
+ * \{
+ */
+/*! \brief Write a uint8_t value to an Xbus message. */
 uint8_t* XbusUtility_writeU8(uint8_t* out, uint8_t in)
 {
 	*out++ = in;
 	return out;
 }
 
+/*! \brief Write a uint16_t value to an Xbus message. */
 uint8_t* XbusUtility_writeU16(uint8_t* out, uint16_t in)
 {
 	*out++ = (in >> 8) & 0xFF;
@@ -46,12 +81,13 @@
 	return out;
 }
 
+/*! \brief Write a uint32_t value to an Xbus message. */
 uint8_t* XbusUtility_writeU32(uint8_t* out, uint32_t in)
 {
-
 	*out++ = (in >> 24) & 0xFF;
 	*out++ = (in >> 16) & 0xFF;
 	*out++ = (in >> 8) & 0xFF;
 	*out++ = in & 0xFF;
 	return out;
 }
+/*! \}  */