sbgECom  1.11.920-stable
sbgEComBinaryLogImu.h
Go to the documentation of this file.
1 
20 #ifndef __SBG_ECOM_BINARY_LOG_IMU_H__
21 #define __SBG_ECOM_BINARY_LOG_IMU_H__
22 
23 #include <sbgCommon.h>
24 #include <streamBuffer/sbgStreamBuffer.h>
25 
26 //----------------------------------------------------------------------//
27 //- Log Inertial Data definitions -//
28 //----------------------------------------------------------------------//
29 
33 #define SBG_ECOM_IMU_COM_OK (0x00000001u << 0)
34 #define SBG_ECOM_IMU_STATUS_BIT (0x00000001u << 1)
36 #define SBG_ECOM_IMU_ACCEL_X_BIT (0x00000001u << 2)
37 #define SBG_ECOM_IMU_ACCEL_Y_BIT (0x00000001u << 3)
38 #define SBG_ECOM_IMU_ACCEL_Z_BIT (0x00000001u << 4)
40 #define SBG_ECOM_IMU_GYRO_X_BIT (0x00000001u << 5)
41 #define SBG_ECOM_IMU_GYRO_Y_BIT (0x00000001u << 6)
42 #define SBG_ECOM_IMU_GYRO_Z_BIT (0x00000001u << 7)
44 #define SBG_ECOM_IMU_ACCELS_IN_RANGE (0x00000001u << 8)
45 #define SBG_ECOM_IMU_GYROS_IN_RANGE (0x00000001u << 9)
47 //----------------------------------------------------------------------//
48 //- Log structure definitions -//
49 //----------------------------------------------------------------------//
50 
54 typedef struct _SbgLogImuData
55 {
56  uint32_t timeStamp;
57  uint16_t status;
58  float accelerometers[3];
59  float gyroscopes[3];
60  float temperature;
61  float deltaVelocity[3];
62  float deltaAngle[3];
64 
69 typedef struct _SbgLogImuShort
70 {
71  uint32_t timeStamp;
72  uint16_t status;
73  int32_t deltaVelocity[3];
74  int32_t deltaAngle[3];
75  int16_t temperature;
77 
81 typedef struct _SbgLogFastImuData
82 {
83  uint32_t timeStamp;
84  uint16_t status;
85  float accelerometers[3];
86  float gyroscopes[3];
88 
89 //----------------------------------------------------------------------//
90 //- Getter / helpers -//
91 //----------------------------------------------------------------------//
92 
99 float sbgLogImuShortGetDeltaAngle(const SbgLogImuShort *pImuShort, size_t idx);
100 
107 float sbgLogImuShortGetDeltaVelocity(const SbgLogImuShort *pImuShort, size_t idx);
108 
114 float sbgLogImuShortGetTemperature(const SbgLogImuShort *pImuShort);
115 
116 //----------------------------------------------------------------------//
117 //- Operations -//
118 //----------------------------------------------------------------------//
119 
126 SbgErrorCode sbgEComBinaryLogParseImuData(SbgStreamBuffer *pInputStream, SbgLogImuData *pOutputData);
127 
134 SbgErrorCode sbgEComBinaryLogWriteImuData(SbgStreamBuffer *pOutputStream, const SbgLogImuData *pInputData);
135 
142 SbgErrorCode sbgEComBinaryLogParseImuShort(SbgStreamBuffer *pInputStream, SbgLogImuShort *pOutputData);
143 
150 SbgErrorCode sbgEComBinaryLogWriteImuShort(SbgStreamBuffer *pOutputStream, const SbgLogImuShort *pInputData);
151 
158 SbgErrorCode sbgEComBinaryLogParseFastImuData(SbgStreamBuffer *pInputStream, SbgLogFastImuData *pOutputData);
159 
166 SbgErrorCode sbgEComBinaryLogWriteFastImuData(SbgStreamBuffer *pOutputStream, const SbgLogFastImuData *pInputData);
167 
168 #endif
uint32_t timeStamp
Definition: sbgEComBinaryLogImu.h:71
struct _SbgLogFastImuData SbgLogFastImuData
uint32_t timeStamp
Definition: sbgEComBinaryLogImu.h:83
SbgErrorCode sbgEComBinaryLogWriteImuShort(SbgStreamBuffer *pOutputStream, const SbgLogImuShort *pInputData)
SbgErrorCode sbgEComBinaryLogParseFastImuData(SbgStreamBuffer *pInputStream, SbgLogFastImuData *pOutputData)
uint16_t status
Definition: sbgEComBinaryLogImu.h:57
uint16_t status
Definition: sbgEComBinaryLogImu.h:72
float sbgLogImuShortGetDeltaAngle(const SbgLogImuShort *pImuShort, size_t idx)
float sbgLogImuShortGetTemperature(const SbgLogImuShort *pImuShort)
float deltaAngle[3]
Definition: sbgEComBinaryLogImu.h:62
SbgErrorCode sbgEComBinaryLogParseImuShort(SbgStreamBuffer *pInputStream, SbgLogImuShort *pOutputData)
uint32_t timeStamp
Definition: sbgEComBinaryLogImu.h:56
Definition: sbgEComBinaryLogImu.h:81
Definition: sbgEComBinaryLogImu.h:54
float sbgLogImuShortGetDeltaVelocity(const SbgLogImuShort *pImuShort, size_t idx)
float accelerometers[3]
Definition: sbgEComBinaryLogImu.h:58
float temperature
Definition: sbgEComBinaryLogImu.h:60
uint16_t status
Definition: sbgEComBinaryLogImu.h:84
SbgErrorCode sbgEComBinaryLogParseImuData(SbgStreamBuffer *pInputStream, SbgLogImuData *pOutputData)
float gyroscopes[3]
Definition: sbgEComBinaryLogImu.h:59
SbgErrorCode sbgEComBinaryLogWriteImuData(SbgStreamBuffer *pOutputStream, const SbgLogImuData *pInputData)
SbgErrorCode sbgEComBinaryLogWriteFastImuData(SbgStreamBuffer *pOutputStream, const SbgLogFastImuData *pInputData)
struct _SbgLogImuShort SbgLogImuShort
struct _SbgLogImuData SbgLogImuData
float deltaVelocity[3]
Definition: sbgEComBinaryLogImu.h:61
Definition: sbgEComBinaryLogImu.h:69
int16_t temperature
Definition: sbgEComBinaryLogImu.h:75