Main Page
Namespaces
Namespace List
Namespace Members
All
Functions
Typedefs
Enumerations
Classes
Class List
Class Members
All
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
y
z
~
Functions
a
c
d
e
f
g
i
l
m
o
p
r
s
t
u
w
~
Variables
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
y
z
Files
File List
File Members
All
_
c
d
f
g
i
m
n
s
t
u
Functions
m
s
t
Variables
Typedefs
d
f
i
s
u
Enumerations
_
Enumerator
s
Macros
_
c
f
i
n
s
t
external
sbgECom
src
binaryLogs
sbgEComBinaryLogImu.c
Go to the documentation of this file.
1
#include "
sbgEComBinaryLogImu.h
"
2
3
//----------------------------------------------------------------------//
4
//- Getter / helpers -//
5
//----------------------------------------------------------------------//
6
13
float
sbgLogImuShortGetDeltaAngle
(
const
SbgLogImuShort
*pImuShort,
size_t
idx)
14
{
15
assert(pImuShort);
16
assert(idx < 3);
17
18
return
pImuShort->
deltaAngle
[idx] / 67108864.0f;
19
}
20
27
float
sbgLogImuShortGetDeltaVelocity
(
const
SbgLogImuShort
*pImuShort,
size_t
idx)
28
{
29
assert(pImuShort);
30
assert(idx < 3);
31
32
return
pImuShort->
deltaVelocity
[idx] / 1048576.0f;
33
}
34
40
float
sbgLogImuShortGetTemperature
(
const
SbgLogImuShort
*pImuShort)
41
{
42
assert(pImuShort);
43
44
return
pImuShort->
temperature
/ 256.0f;
45
}
46
47
//----------------------------------------------------------------------//
48
//- Operations -//
49
//----------------------------------------------------------------------//
50
57
SbgErrorCode
sbgEComBinaryLogParseImuData
(
SbgStreamBuffer
*pInputStream,
SbgLogImuData
*pOutputData)
58
{
59
assert(pInputStream);
60
assert(pOutputData);
61
62
//
63
// Read the frame payload
64
//
65
pOutputData->
timeStamp
=
sbgStreamBufferReadUint32LE
(pInputStream);
66
pOutputData->
status
=
sbgStreamBufferReadUint16LE
(pInputStream);
67
68
pOutputData->
accelerometers
[0] =
sbgStreamBufferReadFloatLE
(pInputStream);
69
pOutputData->
accelerometers
[1] =
sbgStreamBufferReadFloatLE
(pInputStream);
70
pOutputData->
accelerometers
[2] =
sbgStreamBufferReadFloatLE
(pInputStream);
71
72
pOutputData->
gyroscopes
[0] =
sbgStreamBufferReadFloatLE
(pInputStream);
73
pOutputData->
gyroscopes
[1] =
sbgStreamBufferReadFloatLE
(pInputStream);
74
pOutputData->
gyroscopes
[2] =
sbgStreamBufferReadFloatLE
(pInputStream);
75
76
pOutputData->
temperature
=
sbgStreamBufferReadFloatLE
(pInputStream);
77
78
pOutputData->
deltaVelocity
[0] =
sbgStreamBufferReadFloatLE
(pInputStream);
79
pOutputData->
deltaVelocity
[1] =
sbgStreamBufferReadFloatLE
(pInputStream);
80
pOutputData->
deltaVelocity
[2] =
sbgStreamBufferReadFloatLE
(pInputStream);
81
82
pOutputData->
deltaAngle
[0] =
sbgStreamBufferReadFloatLE
(pInputStream);
83
pOutputData->
deltaAngle
[1] =
sbgStreamBufferReadFloatLE
(pInputStream);
84
pOutputData->
deltaAngle
[2] =
sbgStreamBufferReadFloatLE
(pInputStream);
85
86
//
87
// Return if any error has occurred while parsing the frame
88
//
89
return
sbgStreamBufferGetLastError
(pInputStream);
90
}
91
98
SbgErrorCode
sbgEComBinaryLogWriteImuData
(
SbgStreamBuffer
*pOutputStream,
const
SbgLogImuData
*pInputData)
99
{
100
assert(pOutputStream);
101
assert(pInputData);
102
103
//
104
// Write the frame payload
105
//
106
sbgStreamBufferWriteUint32LE
(pOutputStream, pInputData->
timeStamp
);
107
sbgStreamBufferWriteUint16LE
(pOutputStream, pInputData->
status
);
108
109
sbgStreamBufferWriteFloatLE
(pOutputStream, pInputData->
accelerometers
[0]);
110
sbgStreamBufferWriteFloatLE
(pOutputStream, pInputData->
accelerometers
[1]);
111
sbgStreamBufferWriteFloatLE
(pOutputStream, pInputData->
accelerometers
[2]);
112
113
sbgStreamBufferWriteFloatLE
(pOutputStream, pInputData->
gyroscopes
[0]);
114
sbgStreamBufferWriteFloatLE
(pOutputStream, pInputData->
gyroscopes
[1]);
115
sbgStreamBufferWriteFloatLE
(pOutputStream, pInputData->
gyroscopes
[2]);
116
117
sbgStreamBufferWriteFloatLE
(pOutputStream, pInputData->
temperature
);
118
119
sbgStreamBufferWriteFloatLE
(pOutputStream, pInputData->
deltaVelocity
[0]);
120
sbgStreamBufferWriteFloatLE
(pOutputStream, pInputData->
deltaVelocity
[1]);
121
sbgStreamBufferWriteFloatLE
(pOutputStream, pInputData->
deltaVelocity
[2]);
122
123
sbgStreamBufferWriteFloatLE
(pOutputStream, pInputData->
deltaAngle
[0]);
124
sbgStreamBufferWriteFloatLE
(pOutputStream, pInputData->
deltaAngle
[1]);
125
sbgStreamBufferWriteFloatLE
(pOutputStream, pInputData->
deltaAngle
[2]);
126
127
//
128
// Return if any error has occurred while writing the frame
129
//
130
return
sbgStreamBufferGetLastError
(pOutputStream);
131
}
132
139
SbgErrorCode
sbgEComBinaryLogParseImuShort
(
SbgStreamBuffer
*pInputStream,
SbgLogImuShort
*pOutputData)
140
{
141
assert(pInputStream);
142
assert(pOutputData);
143
144
//
145
// Read the frame payload
146
//
147
pOutputData->
timeStamp
=
sbgStreamBufferReadUint32LE
(pInputStream);
148
pOutputData->
status
=
sbgStreamBufferReadUint16LE
(pInputStream);
149
150
pOutputData->
deltaVelocity
[0] =
sbgStreamBufferReadInt32LE
(pInputStream);
151
pOutputData->
deltaVelocity
[1] =
sbgStreamBufferReadInt32LE
(pInputStream);
152
pOutputData->
deltaVelocity
[2] =
sbgStreamBufferReadInt32LE
(pInputStream);
153
154
pOutputData->
deltaAngle
[0] =
sbgStreamBufferReadInt32LE
(pInputStream);
155
pOutputData->
deltaAngle
[1] =
sbgStreamBufferReadInt32LE
(pInputStream);
156
pOutputData->
deltaAngle
[2] =
sbgStreamBufferReadInt32LE
(pInputStream);
157
158
pOutputData->
temperature
=
sbgStreamBufferReadInt16LE
(pInputStream);
159
160
//
161
// Return if any error has occurred while parsing the frame
162
//
163
return
sbgStreamBufferGetLastError
(pInputStream);
164
}
165
172
SbgErrorCode
sbgEComBinaryLogWriteImuShort
(
SbgStreamBuffer
*pOutputStream,
const
SbgLogImuShort
*pInputData)
173
{
174
assert(pOutputStream);
175
assert(pInputData);
176
177
//
178
// Write the frame payload
179
//
180
sbgStreamBufferWriteUint32LE
(pOutputStream, pInputData->
timeStamp
);
181
sbgStreamBufferWriteUint16LE
(pOutputStream, pInputData->
status
);
182
183
sbgStreamBufferWriteInt32LE
(pOutputStream, pInputData->
deltaVelocity
[0]);
184
sbgStreamBufferWriteInt32LE
(pOutputStream, pInputData->
deltaVelocity
[1]);
185
sbgStreamBufferWriteInt32LE
(pOutputStream, pInputData->
deltaVelocity
[2]);
186
187
sbgStreamBufferWriteInt32LE
(pOutputStream, pInputData->
deltaAngle
[0]);
188
sbgStreamBufferWriteInt32LE
(pOutputStream, pInputData->
deltaAngle
[1]);
189
sbgStreamBufferWriteInt32LE
(pOutputStream, pInputData->
deltaAngle
[2]);
190
191
sbgStreamBufferWriteInt16LE
(pOutputStream, pInputData->
temperature
);
192
193
//
194
// Return if any error has occurred while writing the frame
195
//
196
return
sbgStreamBufferGetLastError
(pOutputStream);
197
}
198
205
SbgErrorCode
sbgEComBinaryLogParseFastImuData
(
SbgStreamBuffer
*pInputStream,
SbgLogFastImuData
*pOutputData)
206
{
207
assert(pInputStream);
208
assert(pOutputData);
209
210
//
211
// Read the frame payload
212
//
213
pOutputData->
timeStamp
=
sbgStreamBufferReadUint32LE
(pInputStream);
214
pOutputData->
status
=
sbgStreamBufferReadUint16LE
(pInputStream);
215
216
pOutputData->
accelerometers
[0] = (float)
sbgStreamBufferReadInt16LE
(pInputStream) * 0.01f;
217
pOutputData->
accelerometers
[1] = (float)
sbgStreamBufferReadInt16LE
(pInputStream) * 0.01f;
218
pOutputData->
accelerometers
[2] = (float)
sbgStreamBufferReadInt16LE
(pInputStream) * 0.01f;
219
220
pOutputData->
gyroscopes
[0] = (float)
sbgStreamBufferReadInt16LE
(pInputStream) * 0.001f;
221
pOutputData->
gyroscopes
[1] = (float)
sbgStreamBufferReadInt16LE
(pInputStream) * 0.001f;
222
pOutputData->
gyroscopes
[2] = (float)
sbgStreamBufferReadInt16LE
(pInputStream) * 0.001f;
223
224
//
225
// Return if any error has occurred while parsing the frame
226
//
227
return
sbgStreamBufferGetLastError
(pInputStream);
228
}
229
236
SbgErrorCode
sbgEComBinaryLogWriteFastImuData
(
SbgStreamBuffer
*pOutputStream,
const
SbgLogFastImuData
*pInputData)
237
{
238
assert(pOutputStream);
239
assert(pInputData);
240
241
//
242
// Write the frame payload
243
//
244
sbgStreamBufferWriteUint32LE
(pOutputStream, pInputData->
timeStamp
);
245
sbgStreamBufferWriteUint16LE
(pOutputStream, pInputData->
status
);
246
247
sbgStreamBufferWriteInt16LE
(pOutputStream, (int16_t)(pInputData->
accelerometers
[0] * 100.0f));
248
sbgStreamBufferWriteInt16LE
(pOutputStream, (int16_t)(pInputData->
accelerometers
[1] * 100.0f));
249
sbgStreamBufferWriteInt16LE
(pOutputStream, (int16_t)(pInputData->
accelerometers
[2] * 100.0f));
250
251
sbgStreamBufferWriteInt16LE
(pOutputStream, (int16_t)(pInputData->
gyroscopes
[0] * 1000.0f));
252
sbgStreamBufferWriteInt16LE
(pOutputStream, (int16_t)(pInputData->
gyroscopes
[1] * 1000.0f));
253
sbgStreamBufferWriteInt16LE
(pOutputStream, (int16_t)(pInputData->
gyroscopes
[2] * 1000.0f));
254
255
//
256
// Return if any error has occurred while writing the frame
257
//
258
return
sbgStreamBufferGetLastError
(pOutputStream);
259
}
sbgStreamBufferReadInt16LE
SBG_INLINE int16_t sbgStreamBufferReadInt16LE(SbgStreamBuffer *pHandle)
Specific method of stream buffer for little endian readings/writings.
Definition:
sbgStreamBufferLE.h:35
sbgStreamBufferWriteFloatLE
SBG_INLINE SbgErrorCode sbgStreamBufferWriteFloatLE(SbgStreamBuffer *pHandle, float value)
Definition:
sbgStreamBufferLE.h:1753
_SbgLogImuShort::deltaVelocity
int32_t deltaVelocity[3]
Definition:
sbgEComBinaryLogImu.h:73
sbgEComBinaryLogWriteImuData
SbgErrorCode sbgEComBinaryLogWriteImuData(SbgStreamBuffer *pOutputStream, const SbgLogImuData *pInputData)
Definition:
sbgEComBinaryLogImu.c:98
_SbgLogImuData::gyroscopes
float gyroscopes[3]
Definition:
sbgEComBinaryLogImu.h:59
sbgStreamBufferGetLastError
SBG_INLINE SbgErrorCode sbgStreamBufferGetLastError(SbgStreamBuffer *pHandle)
Definition:
sbgStreamBufferCommon.h:274
sbgStreamBufferWriteInt32LE
SBG_INLINE SbgErrorCode sbgStreamBufferWriteInt32LE(SbgStreamBuffer *pHandle, int32_t value)
Definition:
sbgStreamBufferLE.h:1434
sbgLogImuShortGetTemperature
float sbgLogImuShortGetTemperature(const SbgLogImuShort *pImuShort)
Definition:
sbgEComBinaryLogImu.c:40
sbgStreamBufferReadUint16LE
SBG_INLINE uint16_t sbgStreamBufferReadUint16LE(SbgStreamBuffer *pHandle)
Definition:
sbgStreamBufferLE.h:106
_SbgLogFastImuData::timeStamp
uint32_t timeStamp
Definition:
sbgEComBinaryLogImu.h:83
sbgEComBinaryLogParseImuData
SbgErrorCode sbgEComBinaryLogParseImuData(SbgStreamBuffer *pInputStream, SbgLogImuData *pOutputData)
Definition:
sbgEComBinaryLogImu.c:57
sbgStreamBufferWriteInt16LE
SBG_INLINE SbgErrorCode sbgStreamBufferWriteInt16LE(SbgStreamBuffer *pHandle, int16_t value)
Definition:
sbgStreamBufferLE.h:1189
_SbgLogImuShort::status
uint16_t status
Definition:
sbgEComBinaryLogImu.h:72
sbgEComBinaryLogParseFastImuData
SbgErrorCode sbgEComBinaryLogParseFastImuData(SbgStreamBuffer *pInputStream, SbgLogFastImuData *pOutputData)
Definition:
sbgEComBinaryLogImu.c:205
sbgStreamBufferReadInt32LE
SBG_INLINE int32_t sbgStreamBufferReadInt32LE(SbgStreamBuffer *pHandle)
Definition:
sbgStreamBufferLE.h:313
_SbgLogImuData::timeStamp
uint32_t timeStamp
Definition:
sbgEComBinaryLogImu.h:56
_SbgLogImuData::status
uint16_t status
Definition:
sbgEComBinaryLogImu.h:57
_SbgLogImuData::temperature
float temperature
Definition:
sbgEComBinaryLogImu.h:60
sbgLogImuShortGetDeltaAngle
float sbgLogImuShortGetDeltaAngle(const SbgLogImuShort *pImuShort, size_t idx)
Definition:
sbgEComBinaryLogImu.c:13
sbgStreamBufferWriteUint16LE
SBG_INLINE SbgErrorCode sbgStreamBufferWriteUint16LE(SbgStreamBuffer *pHandle, uint16_t value)
Definition:
sbgStreamBufferLE.h:1250
_SbgLogFastImuData::status
uint16_t status
Definition:
sbgEComBinaryLogImu.h:84
sbgStreamBufferReadUint32LE
SBG_INLINE uint32_t sbgStreamBufferReadUint32LE(SbgStreamBuffer *pHandle)
Definition:
sbgStreamBufferLE.h:386
_SbgLogFastImuData
Definition:
sbgEComBinaryLogImu.h:81
_SbgLogImuData
Definition:
sbgEComBinaryLogImu.h:54
_SbgLogFastImuData::gyroscopes
float gyroscopes[3]
Definition:
sbgEComBinaryLogImu.h:86
_SbgLogImuShort::deltaAngle
int32_t deltaAngle[3]
Definition:
sbgEComBinaryLogImu.h:74
_SbgLogFastImuData::accelerometers
float accelerometers[3]
Definition:
sbgEComBinaryLogImu.h:85
sbgLogImuShortGetDeltaVelocity
float sbgLogImuShortGetDeltaVelocity(const SbgLogImuShort *pImuShort, size_t idx)
Definition:
sbgEComBinaryLogImu.c:27
sbgEComBinaryLogWriteFastImuData
SbgErrorCode sbgEComBinaryLogWriteFastImuData(SbgStreamBuffer *pOutputStream, const SbgLogFastImuData *pInputData)
Definition:
sbgEComBinaryLogImu.c:236
_SbgStreamBuffer
Definition:
sbgStreamBufferCommon.h:188
_SbgLogImuData::deltaVelocity
float deltaVelocity[3]
Definition:
sbgEComBinaryLogImu.h:61
_SbgLogImuShort::temperature
int16_t temperature
Definition:
sbgEComBinaryLogImu.h:75
_SbgLogImuShort
Definition:
sbgEComBinaryLogImu.h:69
_SbgLogImuData::accelerometers
float accelerometers[3]
Definition:
sbgEComBinaryLogImu.h:58
SbgErrorCode
enum _SbgErrorCode SbgErrorCode
Header file that defines all error codes for SBG Systems libraries.
_SbgLogImuShort::timeStamp
uint32_t timeStamp
Definition:
sbgEComBinaryLogImu.h:71
sbgStreamBufferReadFloatLE
SBG_INLINE float sbgStreamBufferReadFloatLE(SbgStreamBuffer *pHandle)
Definition:
sbgStreamBufferLE.h:1086
sbgStreamBufferWriteUint32LE
SBG_INLINE SbgErrorCode sbgStreamBufferWriteUint32LE(SbgStreamBuffer *pHandle, uint32_t value)
Definition:
sbgStreamBufferLE.h:1499
sbgEComBinaryLogParseImuShort
SbgErrorCode sbgEComBinaryLogParseImuShort(SbgStreamBuffer *pInputStream, SbgLogImuShort *pOutputData)
Definition:
sbgEComBinaryLogImu.c:139
_SbgLogImuData::deltaAngle
float deltaAngle[3]
Definition:
sbgEComBinaryLogImu.h:62
sbgEComBinaryLogWriteImuShort
SbgErrorCode sbgEComBinaryLogWriteImuShort(SbgStreamBuffer *pOutputStream, const SbgLogImuShort *pInputData)
Definition:
sbgEComBinaryLogImu.c:172
sbgEComBinaryLogImu.h
sbg_driver
Author(s): SBG Systems
autogenerated on Fri Oct 11 2024 02:13:40