MIP_SDK  v3.0.0-187-g93c7302
MicroStrain Communications Library for embedded systems
commands_aiding.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include <mip/mip_descriptors.h>
5 #include <mip/mip_result.h>
6 #include <mip/mip_interface.h>
7 
8 #include <stdint.h>
9 #include <stddef.h>
10 #include <stdbool.h>
11 
12 #ifdef __cplusplus
13 namespace mip {
14 namespace C {
15 extern "C" {
16 
17 #endif // __cplusplus
18 
25 
27 // Descriptors
29 
30 enum
31 {
33 
45 
48 };
49 
51 // Shared Type Definitions
53 
55 {
59 };
61 
62 static inline void insert_mip_time_timebase(microstrain_serializer* serializer, const mip_time_timebase self)
63 {
64  microstrain_insert_u8(serializer, (uint8_t)(self));
65 }
66 static inline void extract_mip_time_timebase(microstrain_serializer* serializer, mip_time_timebase* self)
67 {
68  uint8_t tmp = 0;
69  microstrain_extract_u8(serializer, &tmp);
70  *self = (mip_time_timebase)tmp;
71 }
72 
73 
74 struct mip_time
75 {
77  uint8_t reserved;
78  uint64_t nanoseconds;
79 };
80 typedef struct mip_time mip_time;
81 
82 void insert_mip_time(microstrain_serializer* serializer, const mip_time* self);
83 void extract_mip_time(microstrain_serializer* serializer, mip_time* self);
84 
85 
87 // Mip Fields
89 
118 
120 {
123 };
125 
126 static inline void insert_mip_aiding_frame_config_command_format(microstrain_serializer* serializer, const mip_aiding_frame_config_command_format self)
127 {
128  microstrain_insert_u8(serializer, (uint8_t)(self));
129 }
130 static inline void extract_mip_aiding_frame_config_command_format(microstrain_serializer* serializer, mip_aiding_frame_config_command_format* self)
131 {
132  uint8_t tmp = 0;
133  microstrain_extract_u8(serializer, &tmp);
135 }
136 
138 {
139  mip_vector3f euler;
140  mip_quatf quaternion;
141 };
143 
145 {
147  uint8_t frame_id;
150  mip_vector3f translation;
152 };
154 
157 
159 {
160  uint8_t frame_id;
163  mip_vector3f translation;
165 };
167 
170 
171 mip_cmd_result mip_aiding_write_frame_config(mip_interface* device, uint8_t frame_id, mip_aiding_frame_config_command_format format, bool tracking_enabled, const float* translation, const mip_aiding_frame_config_command_rotation* rotation);
172 mip_cmd_result mip_aiding_read_frame_config(mip_interface* device, uint8_t frame_id, mip_aiding_frame_config_command_format format, bool* tracking_enabled_out, float* translation_out, mip_aiding_frame_config_command_rotation* rotation_out);
176 
184 
186 {
190 };
192 
193 static inline void insert_mip_aiding_echo_control_command_mode(microstrain_serializer* serializer, const mip_aiding_echo_control_command_mode self)
194 {
195  microstrain_insert_u8(serializer, (uint8_t)(self));
196 }
197 static inline void extract_mip_aiding_echo_control_command_mode(microstrain_serializer* serializer, mip_aiding_echo_control_command_mode* self)
198 {
199  uint8_t tmp = 0;
200  microstrain_extract_u8(serializer, &tmp);
202 }
203 
204 
206 {
209 };
211 
214 
216 {
218 };
220 
223 
229 
237 
239 static const mip_aiding_pos_ecef_command_valid_flags MIP_AIDING_POS_ECEF_COMMAND_VALID_FLAGS_NONE = 0x0000;
240 static const mip_aiding_pos_ecef_command_valid_flags MIP_AIDING_POS_ECEF_COMMAND_VALID_FLAGS_X = 0x0001;
241 static const mip_aiding_pos_ecef_command_valid_flags MIP_AIDING_POS_ECEF_COMMAND_VALID_FLAGS_Y = 0x0002;
242 static const mip_aiding_pos_ecef_command_valid_flags MIP_AIDING_POS_ECEF_COMMAND_VALID_FLAGS_Z = 0x0004;
243 static const mip_aiding_pos_ecef_command_valid_flags MIP_AIDING_POS_ECEF_COMMAND_VALID_FLAGS_ALL = 0x0007;
244 static inline void insert_mip_aiding_pos_ecef_command_valid_flags(microstrain_serializer* serializer, const mip_aiding_pos_ecef_command_valid_flags self)
245 {
246  microstrain_insert_u16(serializer, (uint16_t)(self));
247 }
248 static inline void extract_mip_aiding_pos_ecef_command_valid_flags(microstrain_serializer* serializer, mip_aiding_pos_ecef_command_valid_flags* self)
249 {
250  uint16_t tmp = 0;
251  microstrain_extract_u16(serializer, &tmp);
253 }
254 
255 
257 {
259  uint8_t frame_id;
260  mip_vector3d position;
261  mip_vector3f uncertainty;
263 };
265 
268 
269 mip_cmd_result mip_aiding_pos_ecef(mip_interface* device, const mip_time* time, uint8_t frame_id, const double* position, const float* uncertainty, mip_aiding_pos_ecef_command_valid_flags valid_flags);
270 
280 
282 static const mip_aiding_pos_llh_command_valid_flags MIP_AIDING_POS_LLH_COMMAND_VALID_FLAGS_NONE = 0x0000;
283 static const mip_aiding_pos_llh_command_valid_flags MIP_AIDING_POS_LLH_COMMAND_VALID_FLAGS_LATITUDE = 0x0001;
284 static const mip_aiding_pos_llh_command_valid_flags MIP_AIDING_POS_LLH_COMMAND_VALID_FLAGS_LONGITUDE = 0x0002;
285 static const mip_aiding_pos_llh_command_valid_flags MIP_AIDING_POS_LLH_COMMAND_VALID_FLAGS_HEIGHT = 0x0004;
286 static const mip_aiding_pos_llh_command_valid_flags MIP_AIDING_POS_LLH_COMMAND_VALID_FLAGS_ALL = 0x0007;
287 static inline void insert_mip_aiding_pos_llh_command_valid_flags(microstrain_serializer* serializer, const mip_aiding_pos_llh_command_valid_flags self)
288 {
289  microstrain_insert_u16(serializer, (uint16_t)(self));
290 }
291 static inline void extract_mip_aiding_pos_llh_command_valid_flags(microstrain_serializer* serializer, mip_aiding_pos_llh_command_valid_flags* self)
292 {
293  uint16_t tmp = 0;
294  microstrain_extract_u16(serializer, &tmp);
296 }
297 
298 
300 {
302  uint8_t frame_id;
303  double latitude;
304  double longitude;
305  double height;
306  mip_vector3f uncertainty;
308 };
310 
313 
314 mip_cmd_result mip_aiding_pos_llh(mip_interface* device, const mip_time* time, uint8_t frame_id, double latitude, double longitude, double height, const float* uncertainty, mip_aiding_pos_llh_command_valid_flags valid_flags);
315 
323 
325 {
327  uint8_t frame_id;
328  float height;
329  float uncertainty;
330  uint16_t valid_flags;
331 };
333 
336 
337 mip_cmd_result mip_aiding_height_above_ellipsoid(mip_interface* device, const mip_time* time, uint8_t frame_id, float height, float uncertainty, uint16_t valid_flags);
338 
346 
348 static const mip_aiding_vel_ecef_command_valid_flags MIP_AIDING_VEL_ECEF_COMMAND_VALID_FLAGS_NONE = 0x0000;
349 static const mip_aiding_vel_ecef_command_valid_flags MIP_AIDING_VEL_ECEF_COMMAND_VALID_FLAGS_X = 0x0001;
350 static const mip_aiding_vel_ecef_command_valid_flags MIP_AIDING_VEL_ECEF_COMMAND_VALID_FLAGS_Y = 0x0002;
351 static const mip_aiding_vel_ecef_command_valid_flags MIP_AIDING_VEL_ECEF_COMMAND_VALID_FLAGS_Z = 0x0004;
352 static const mip_aiding_vel_ecef_command_valid_flags MIP_AIDING_VEL_ECEF_COMMAND_VALID_FLAGS_ALL = 0x0007;
353 static inline void insert_mip_aiding_vel_ecef_command_valid_flags(microstrain_serializer* serializer, const mip_aiding_vel_ecef_command_valid_flags self)
354 {
355  microstrain_insert_u16(serializer, (uint16_t)(self));
356 }
357 static inline void extract_mip_aiding_vel_ecef_command_valid_flags(microstrain_serializer* serializer, mip_aiding_vel_ecef_command_valid_flags* self)
358 {
359  uint16_t tmp = 0;
360  microstrain_extract_u16(serializer, &tmp);
362 }
363 
364 
366 {
368  uint8_t frame_id;
369  mip_vector3f velocity;
370  mip_vector3f uncertainty;
372 };
374 
377 
378 mip_cmd_result mip_aiding_vel_ecef(mip_interface* device, const mip_time* time, uint8_t frame_id, const float* velocity, const float* uncertainty, mip_aiding_vel_ecef_command_valid_flags valid_flags);
379 
387 
389 static const mip_aiding_vel_ned_command_valid_flags MIP_AIDING_VEL_NED_COMMAND_VALID_FLAGS_NONE = 0x0000;
390 static const mip_aiding_vel_ned_command_valid_flags MIP_AIDING_VEL_NED_COMMAND_VALID_FLAGS_X = 0x0001;
391 static const mip_aiding_vel_ned_command_valid_flags MIP_AIDING_VEL_NED_COMMAND_VALID_FLAGS_Y = 0x0002;
392 static const mip_aiding_vel_ned_command_valid_flags MIP_AIDING_VEL_NED_COMMAND_VALID_FLAGS_Z = 0x0004;
393 static const mip_aiding_vel_ned_command_valid_flags MIP_AIDING_VEL_NED_COMMAND_VALID_FLAGS_ALL = 0x0007;
394 static inline void insert_mip_aiding_vel_ned_command_valid_flags(microstrain_serializer* serializer, const mip_aiding_vel_ned_command_valid_flags self)
395 {
396  microstrain_insert_u16(serializer, (uint16_t)(self));
397 }
398 static inline void extract_mip_aiding_vel_ned_command_valid_flags(microstrain_serializer* serializer, mip_aiding_vel_ned_command_valid_flags* self)
399 {
400  uint16_t tmp = 0;
401  microstrain_extract_u16(serializer, &tmp);
403 }
404 
405 
407 {
409  uint8_t frame_id;
410  mip_vector3f velocity;
411  mip_vector3f uncertainty;
413 };
415 
418 
419 mip_cmd_result mip_aiding_vel_ned(mip_interface* device, const mip_time* time, uint8_t frame_id, const float* velocity, const float* uncertainty, mip_aiding_vel_ned_command_valid_flags valid_flags);
420 
428 
430 static const mip_aiding_vel_body_frame_command_valid_flags MIP_AIDING_VEL_BODY_FRAME_COMMAND_VALID_FLAGS_NONE = 0x0000;
431 static const mip_aiding_vel_body_frame_command_valid_flags MIP_AIDING_VEL_BODY_FRAME_COMMAND_VALID_FLAGS_X = 0x0001;
432 static const mip_aiding_vel_body_frame_command_valid_flags MIP_AIDING_VEL_BODY_FRAME_COMMAND_VALID_FLAGS_Y = 0x0002;
433 static const mip_aiding_vel_body_frame_command_valid_flags MIP_AIDING_VEL_BODY_FRAME_COMMAND_VALID_FLAGS_Z = 0x0004;
434 static const mip_aiding_vel_body_frame_command_valid_flags MIP_AIDING_VEL_BODY_FRAME_COMMAND_VALID_FLAGS_ALL = 0x0007;
435 static inline void insert_mip_aiding_vel_body_frame_command_valid_flags(microstrain_serializer* serializer, const mip_aiding_vel_body_frame_command_valid_flags self)
436 {
437  microstrain_insert_u16(serializer, (uint16_t)(self));
438 }
439 static inline void extract_mip_aiding_vel_body_frame_command_valid_flags(microstrain_serializer* serializer, mip_aiding_vel_body_frame_command_valid_flags* self)
440 {
441  uint16_t tmp = 0;
442  microstrain_extract_u16(serializer, &tmp);
444 }
445 
446 
448 {
450  uint8_t frame_id;
451  mip_vector3f velocity;
452  mip_vector3f uncertainty;
454 };
456 
459 
460 mip_cmd_result mip_aiding_vel_body_frame(mip_interface* device, const mip_time* time, uint8_t frame_id, const float* velocity, const float* uncertainty, mip_aiding_vel_body_frame_command_valid_flags valid_flags);
461 
468 
470 {
472  uint8_t frame_id;
473  float heading;
474  float uncertainty;
475  uint16_t valid_flags;
476 };
478 
481 
482 mip_cmd_result mip_aiding_heading_true(mip_interface* device, const mip_time* time, uint8_t frame_id, float heading, float uncertainty, uint16_t valid_flags);
483 
491 
493 static const mip_aiding_magnetic_field_command_valid_flags MIP_AIDING_MAGNETIC_FIELD_COMMAND_VALID_FLAGS_NONE = 0x0000;
494 static const mip_aiding_magnetic_field_command_valid_flags MIP_AIDING_MAGNETIC_FIELD_COMMAND_VALID_FLAGS_X = 0x0001;
495 static const mip_aiding_magnetic_field_command_valid_flags MIP_AIDING_MAGNETIC_FIELD_COMMAND_VALID_FLAGS_Y = 0x0002;
496 static const mip_aiding_magnetic_field_command_valid_flags MIP_AIDING_MAGNETIC_FIELD_COMMAND_VALID_FLAGS_Z = 0x0004;
497 static const mip_aiding_magnetic_field_command_valid_flags MIP_AIDING_MAGNETIC_FIELD_COMMAND_VALID_FLAGS_ALL = 0x0007;
498 static inline void insert_mip_aiding_magnetic_field_command_valid_flags(microstrain_serializer* serializer, const mip_aiding_magnetic_field_command_valid_flags self)
499 {
500  microstrain_insert_u16(serializer, (uint16_t)(self));
501 }
502 static inline void extract_mip_aiding_magnetic_field_command_valid_flags(microstrain_serializer* serializer, mip_aiding_magnetic_field_command_valid_flags* self)
503 {
504  uint16_t tmp = 0;
505  microstrain_extract_u16(serializer, &tmp);
507 }
508 
509 
511 {
513  uint8_t frame_id;
514  mip_vector3f magnetic_field;
515  mip_vector3f uncertainty;
517 };
519 
522 
523 mip_cmd_result mip_aiding_magnetic_field(mip_interface* device, const mip_time* time, uint8_t frame_id, const float* magnetic_field, const float* uncertainty, mip_aiding_magnetic_field_command_valid_flags valid_flags);
524 
532 
534 {
536  uint8_t frame_id;
537  float pressure;
538  float uncertainty;
539  uint16_t valid_flags;
540 };
542 
545 
546 mip_cmd_result mip_aiding_pressure(mip_interface* device, const mip_time* time, uint8_t frame_id, float pressure, float uncertainty, uint16_t valid_flags);
547 
550 
555 #ifdef __cplusplus
556 } // extern "C"
557 } // namespace C
558 } // namespace mip
559 #endif // __cplusplus
560 
mip::C::mip_aiding_default_echo_control
mip_cmd_result mip_aiding_default_echo_control(mip_interface *device)
Definition: commands_aiding.c:361
mip::C::mip_aiding_echo_control_command::mode
mip_aiding_echo_control_command_mode mode
Controls data echoing.
Definition: commands_aiding.h:208
mip::C::mip_aiding_magnetic_field_command
Definition: commands_aiding.h:510
mip::C::insert_mip_aiding_vel_body_frame_command
void insert_mip_aiding_vel_body_frame_command(microstrain_serializer *serializer, const mip_aiding_vel_body_frame_command *self)
Definition: commands_aiding.c:639
mip::C::mip_aiding_frame_config_command::tracking_enabled
bool tracking_enabled
If enabled, the Kalman filter will track errors.
Definition: commands_aiding.h:149
mip::C::insert_mip_aiding_pressure_command
void insert_mip_aiding_pressure_command(microstrain_serializer *serializer, const mip_aiding_pressure_command *self)
Definition: commands_aiding.c:791
mip::C::mip_aiding_frame_config_command_rotation
Definition: commands_aiding.h:137
mip::C::MIP_CMD_DESC_AIDING_POS_ECEF
@ MIP_CMD_DESC_AIDING_POS_ECEF
Definition: commands_aiding.h:36
mip::C::mip_aiding_height_above_ellipsoid_command::frame_id
uint8_t frame_id
Source ID for this estimate (source_id == 0 indicates this sensor, source_id > 0 indicates an externa...
Definition: commands_aiding.h:327
mip::C::mip_aiding_frame_config_command_rotation::quaternion
mip_quatf quaternion
Definition: commands_aiding.h:140
mip
A collection of C++ classes and functions covering the full mip api.
Definition: commands_3dm.c:11
mip::C::MIP_TIME_TIMEBASE_INTERNAL_REFERENCE
@ MIP_TIME_TIMEBASE_INTERNAL_REFERENCE
Timestamp provided is with respect to internal clock.
Definition: commands_aiding.h:56
mip::C::mip_aiding_pos_llh_command::longitude
double longitude
[deg]
Definition: commands_aiding.h:304
mip::C::mip_aiding_pressure
mip_cmd_result mip_aiding_pressure(mip_interface *device, const mip_time *time, uint8_t frame_id, float pressure, float uncertainty, uint16_t valid_flags)
Definition: commands_aiding.c:818
mip::C::mip_aiding_frame_config_command_format
mip_aiding_frame_config_command_format
Definition: commands_aiding.h:119
mip::C::mip_aiding_vel_body_frame_command_valid_flags
uint16_t mip_aiding_vel_body_frame_command_valid_flags
Definition: commands_aiding.h:429
mip::C::mip_aiding_save_echo_control
mip_cmd_result mip_aiding_save_echo_control(mip_interface *device)
Definition: commands_aiding.c:337
mip::C::insert_mip_aiding_frame_config_command
void insert_mip_aiding_frame_config_command(microstrain_serializer *serializer, const mip_aiding_frame_config_command *self)
Definition: commands_aiding.c:41
mip::C::mip_aiding_read_frame_config
mip_cmd_result mip_aiding_read_frame_config(mip_interface *device, uint8_t frame_id, mip_aiding_frame_config_command_format format, bool *tracking_enabled_out, float *translation_out, mip_aiding_frame_config_command_rotation *rotation_out)
Definition: commands_aiding.c:175
mip::C::extract_mip_aiding_magnetic_field_command
void extract_mip_aiding_magnetic_field_command(microstrain_serializer *serializer, mip_aiding_magnetic_field_command *self)
Definition: commands_aiding.c:752
mip::C::mip_aiding_pos_ecef_command::valid_flags
mip_aiding_pos_ecef_command_valid_flags valid_flags
Valid flags. Axes with 0 will be completely ignored.
Definition: commands_aiding.h:262
mip::C::mip_aiding_magnetic_field
mip_cmd_result mip_aiding_magnetic_field(mip_interface *device, const mip_time *time, uint8_t frame_id, const float *magnetic_field, const float *uncertainty, mip_aiding_magnetic_field_command_valid_flags valid_flags)
Definition: commands_aiding.c:766
mip::C::extract_mip_aiding_echo_control_command
void extract_mip_aiding_echo_control_command(microstrain_serializer *serializer, mip_aiding_echo_control_command *self)
Definition: commands_aiding.c:275
mip::C::mip_aiding_vel_ned_command::frame_id
uint8_t frame_id
Source ID for this estimate (source_id == 0 indicates this sensor, source_id > 0 indicates an externa...
Definition: commands_aiding.h:409
mip::C::mip_aiding_vel_body_frame
mip_cmd_result mip_aiding_vel_body_frame(mip_interface *device, const mip_time *time, uint8_t frame_id, const float *velocity, const float *uncertainty, mip_aiding_vel_body_frame_command_valid_flags valid_flags)
Definition: commands_aiding.c:666
mip::C::MIP_TIME_TIMEBASE_TIME_OF_ARRIVAL
@ MIP_TIME_TIMEBASE_TIME_OF_ARRIVAL
Timestamp provided is a fixed latency relative to time of message arrival.
Definition: commands_aiding.h:58
mip::C::insert_mip_aiding_frame_config_response
void insert_mip_aiding_frame_config_response(microstrain_serializer *serializer, const mip_aiding_frame_config_response *self)
Definition: commands_aiding.c:100
mip::C::mip_aiding_magnetic_field_command_valid_flags
uint16_t mip_aiding_magnetic_field_command_valid_flags
Definition: commands_aiding.h:492
microstrain::C::microstrain_extract_u16
void microstrain_extract_u16(microstrain_serializer *serializer, uint16_t *value)
mip::C::extract_mip_time
void extract_mip_time(microstrain_serializer *serializer, mip_time *self)
Definition: commands_aiding.c:31
mip::C::mip_cmd_result
mip_cmd_result
Represents the status of a MIP command.
Definition: mip_result.h:27
mip::C::extract_mip_aiding_height_above_ellipsoid_command
void extract_mip_aiding_height_above_ellipsoid_command(microstrain_serializer *serializer, mip_aiding_height_above_ellipsoid_command *self)
Definition: commands_aiding.c:500
mip::C::MIP_AIDING_FRAME_CONFIG_COMMAND_FORMAT_EULER
@ MIP_AIDING_FRAME_CONFIG_COMMAND_FORMAT_EULER
Translation vector followed by euler angles (roll, pitch, yaw).
Definition: commands_aiding.h:121
mip::C::mip_aiding_pos_llh_command::uncertainty
mip_vector3f uncertainty
NED position uncertainty. Cannot be 0 unless the corresponding valid flags are 0.
Definition: commands_aiding.h:306
mip::C::insert_mip_aiding_heading_true_command
void insert_mip_aiding_heading_true_command(microstrain_serializer *serializer, const mip_aiding_heading_true_command *self)
Definition: commands_aiding.c:691
mip::C::mip_aiding_write_frame_config
mip_cmd_result mip_aiding_write_frame_config(mip_interface *device, uint8_t frame_id, mip_aiding_frame_config_command_format format, bool tracking_enabled, const float *translation, const mip_aiding_frame_config_command_rotation *rotation)
Definition: commands_aiding.c:143
mip::C::mip_aiding_default_frame_config
mip_cmd_result mip_aiding_default_frame_config(mip_interface *device, uint8_t frame_id)
Definition: commands_aiding.c:251
mip::C::mip_aiding_vel_ned_command_valid_flags
uint16_t mip_aiding_vel_ned_command_valid_flags
Definition: commands_aiding.h:388
mip::C::mip_aiding_vel_ecef_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:367
mip::C::mip_aiding_vel_body_frame_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:449
mip::C::mip_aiding_pos_llh
mip_cmd_result mip_aiding_pos_llh(mip_interface *device, const mip_time *time, uint8_t frame_id, double latitude, double longitude, double height, const float *uncertainty, mip_aiding_pos_llh_command_valid_flags valid_flags)
Definition: commands_aiding.c:460
mip::C::MIP_TIME_TIMEBASE_EXTERNAL_TIME
@ MIP_TIME_TIMEBASE_EXTERNAL_TIME
Timestamp provided is with respect to external clock, synced by PPS source.
Definition: commands_aiding.h:57
mip::C::MIP_AIDING_FRAME_CONFIG_COMMAND_FORMAT_QUATERNION
@ MIP_AIDING_FRAME_CONFIG_COMMAND_FORMAT_QUATERNION
Translation vector followed by quaternion (w, x, y, z).
Definition: commands_aiding.h:122
microstrain::C::microstrain_serializer
struct microstrain::C::microstrain_serializer microstrain_serializer
Structure used for serialization.
mip::C::mip_aiding_height_above_ellipsoid
mip_cmd_result mip_aiding_height_above_ellipsoid(mip_interface *device, const mip_time *time, uint8_t frame_id, float height, float uncertainty, uint16_t valid_flags)
Definition: commands_aiding.c:514
mip::C::MIP_CMD_DESC_AIDING_MAGNETIC_FIELD
@ MIP_CMD_DESC_AIDING_MAGNETIC_FIELD
Definition: commands_aiding.h:43
mip::C::insert_mip_aiding_echo_control_command
void insert_mip_aiding_echo_control_command(microstrain_serializer *serializer, const mip_aiding_echo_control_command *self)
Definition: commands_aiding.c:265
mip::C::MIP_AIDING_CMD_DESC_SET
@ MIP_AIDING_CMD_DESC_SET
Definition: commands_aiding.h:32
mip::C::extract_mip_aiding_vel_ned_command
void extract_mip_aiding_vel_ned_command(microstrain_serializer *serializer, mip_aiding_vel_ned_command *self)
Definition: commands_aiding.c:600
mip::C::mip_aiding_read_echo_control
mip_cmd_result mip_aiding_read_echo_control(mip_interface *device, mip_aiding_echo_control_command_mode *mode_out)
Definition: commands_aiding.c:311
mip::C::extract_mip_aiding_vel_body_frame_command
void extract_mip_aiding_vel_body_frame_command(microstrain_serializer *serializer, mip_aiding_vel_body_frame_command *self)
Definition: commands_aiding.c:652
mip::C::mip_aiding_frame_config_command::frame_id
uint8_t frame_id
Reference frame number. Limit 4.
Definition: commands_aiding.h:147
mip::C::insert_mip_aiding_vel_ecef_command
void insert_mip_aiding_vel_ecef_command(microstrain_serializer *serializer, const mip_aiding_vel_ecef_command *self)
Definition: commands_aiding.c:535
mip::C::mip_aiding_load_frame_config
mip_cmd_result mip_aiding_load_frame_config(mip_interface *device, uint8_t frame_id)
Definition: commands_aiding.c:237
mip::C::mip_aiding_pressure_command::uncertainty
float uncertainty
[mbar] 1-sigma uncertainty. Cannot be 0 unless the valid flags are 0.
Definition: commands_aiding.h:538
mip_result.h
mip::C::mip_aiding_vel_ecef_command::frame_id
uint8_t frame_id
Source ID for this estimate (source_id == 0 indicates this sensor, source_id > 0 indicates an externa...
Definition: commands_aiding.h:368
mip::C::mip_aiding_vel_body_frame_command::frame_id
uint8_t frame_id
Source ID for this estimate (source_id == 0 indicates this sensor, source_id > 0 indicates an externa...
Definition: commands_aiding.h:450
mip::C::mip_aiding_vel_ned_command::velocity
mip_vector3f velocity
NED velocity [m/s].
Definition: commands_aiding.h:410
mip::C::insert_mip_aiding_echo_control_response
void insert_mip_aiding_echo_control_response(microstrain_serializer *serializer, const mip_aiding_echo_control_response *self)
Definition: commands_aiding.c:286
microstrain::C::microstrain_extract_u8
void microstrain_extract_u8(microstrain_serializer *serializer, uint8_t *value)
mip::C::mip_aiding_frame_config_command::format
mip_aiding_frame_config_command_format format
Format of the transformation.
Definition: commands_aiding.h:148
mip::C::mip_aiding_magnetic_field_command::valid_flags
mip_aiding_magnetic_field_command_valid_flags valid_flags
Valid flags. Axes with 0 will be completely ignored.
Definition: commands_aiding.h:516
mip::C::mip_aiding_echo_control_response
Definition: commands_aiding.h:215
mip::C::mip_aiding_heading_true_command
Definition: commands_aiding.h:469
mip::C::mip_aiding_vel_ecef
mip_cmd_result mip_aiding_vel_ecef(mip_interface *device, const mip_time *time, uint8_t frame_id, const float *velocity, const float *uncertainty, mip_aiding_vel_ecef_command_valid_flags valid_flags)
Definition: commands_aiding.c:562
mip::C::mip_time::timebase
mip_time_timebase timebase
Timebase reference, e.g. internal, external, GPS, UTC, etc.
Definition: commands_aiding.h:76
mip::C::mip_aiding_pos_llh_command::frame_id
uint8_t frame_id
Source ID for this estimate (source_id == 0 indicates this sensor, source_id > 0 indicates an externa...
Definition: commands_aiding.h:302
mip::C::MIP_CMD_DESC_AIDING_VEL_ECEF
@ MIP_CMD_DESC_AIDING_VEL_ECEF
Definition: commands_aiding.h:39
mip::C::mip_aiding_echo_control_command_mode
mip_aiding_echo_control_command_mode
Definition: commands_aiding.h:185
microstrain::C::microstrain_serializer
Structure used for serialization.
Definition: serialization.h:42
mip::C::mip_aiding_magnetic_field_command::magnetic_field
mip_vector3f magnetic_field
[G]
Definition: commands_aiding.h:514
mip::C::mip_aiding_frame_config_command
Definition: commands_aiding.h:144
mip::C::mip_aiding_pos_ecef_command::position
mip_vector3d position
ECEF position [m].
Definition: commands_aiding.h:260
mip::C::mip_aiding_pos_ecef_command_valid_flags
uint16_t mip_aiding_pos_ecef_command_valid_flags
Definition: commands_aiding.h:238
mip::C::MIP_CMD_DESC_AIDING_FRAME_CONFIG
@ MIP_CMD_DESC_AIDING_FRAME_CONFIG
Definition: commands_aiding.h:34
mip::C::MIP_CMD_DESC_AIDING_HEIGHT_ABOVE_ELLIPSOID
@ MIP_CMD_DESC_AIDING_HEIGHT_ABOVE_ELLIPSOID
Definition: commands_aiding.h:38
mip::C::mip_aiding_frame_config_response::rotation
mip_aiding_frame_config_command_rotation rotation
Rotation as specified by format.
Definition: commands_aiding.h:164
mip::C::mip_aiding_heading_true_command::heading
float heading
Heading [radians]. Range +/- Pi.
Definition: commands_aiding.h:473
mip::C::mip_aiding_pos_llh_command
Definition: commands_aiding.h:299
microstrain::C::microstrain_insert_u8
void microstrain_insert_u8(microstrain_serializer *serializer, uint8_t value)
mip::C::mip_aiding_vel_body_frame_command::uncertainty
mip_vector3f uncertainty
[m/s] 1-sigma uncertainty. Cannot be 0 unless the corresponding valid flags are 0.
Definition: commands_aiding.h:452
mip::C::MIP_AIDING_ECHO_CONTROL_COMMAND_MODE_RESPONSE
@ MIP_AIDING_ECHO_CONTROL_COMMAND_MODE_RESPONSE
Echo the data back as a response.
Definition: commands_aiding.h:189
mip::C::mip_aiding_height_above_ellipsoid_command
Definition: commands_aiding.h:324
mip::C::mip_aiding_height_above_ellipsoid_command::height
float height
[m]
Definition: commands_aiding.h:328
mip::C::extract_mip_aiding_pos_llh_command
void extract_mip_aiding_pos_llh_command(microstrain_serializer *serializer, mip_aiding_pos_llh_command *self)
Definition: commands_aiding.c:442
mip::C::mip_aiding_pos_ecef_command::uncertainty
mip_vector3f uncertainty
ECEF position uncertainty [m]. Cannot be 0 unless the corresponding valid flags are 0.
Definition: commands_aiding.h:261
mip::C::mip_aiding_vel_ecef_command::uncertainty
mip_vector3f uncertainty
ECEF velocity uncertainty [m/s]. Cannot be 0 unless the corresponding valid flags are 0.
Definition: commands_aiding.h:370
mip::C::mip_aiding_vel_body_frame_command::valid_flags
mip_aiding_vel_body_frame_command_valid_flags valid_flags
Valid flags. Axes with 0 will be completely ignored.
Definition: commands_aiding.h:453
mip::C::mip_aiding_frame_config_response::tracking_enabled
bool tracking_enabled
If enabled, the Kalman filter will track errors.
Definition: commands_aiding.h:162
mip::C::mip_aiding_vel_body_frame_command::velocity
mip_vector3f velocity
[m/s]
Definition: commands_aiding.h:451
mip::C::mip_aiding_vel_ned_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:408
mip::C::MIP_CMD_DESC_AIDING_ECHO_CONTROL
@ MIP_CMD_DESC_AIDING_ECHO_CONTROL
Definition: commands_aiding.h:35
mip::C::MIP_AIDING_ECHO_CONTROL_COMMAND_MODE_STANDARD
@ MIP_AIDING_ECHO_CONTROL_COMMAND_MODE_STANDARD
Normal ack/nack behavior.
Definition: commands_aiding.h:188
mip::C::extract_mip_aiding_vel_ecef_command
void extract_mip_aiding_vel_ecef_command(microstrain_serializer *serializer, mip_aiding_vel_ecef_command *self)
Definition: commands_aiding.c:548
mip::C::insert_mip_time
void insert_mip_time(microstrain_serializer *serializer, const mip_time *self)
Definition: commands_aiding.c:22
mip::C::extract_mip_aiding_heading_true_command
void extract_mip_aiding_heading_true_command(microstrain_serializer *serializer, mip_aiding_heading_true_command *self)
Definition: commands_aiding.c:704
mip::C::mip_aiding_magnetic_field_command::frame_id
uint8_t frame_id
Source ID for this estimate (source_id == 0 indicates this sensor, source_id > 0 indicates an externa...
Definition: commands_aiding.h:513
mip::C::mip_aiding_load_echo_control
mip_cmd_result mip_aiding_load_echo_control(mip_interface *device)
Definition: commands_aiding.c:349
mip::C::mip_aiding_frame_config_response::translation
mip_vector3f translation
Translation X, Y, and Z.
Definition: commands_aiding.h:163
mip::C::insert_mip_aiding_pos_ecef_command
void insert_mip_aiding_pos_ecef_command(microstrain_serializer *serializer, const mip_aiding_pos_ecef_command *self)
Definition: commands_aiding.c:373
mip::C::mip_aiding_vel_ecef_command_valid_flags
uint16_t mip_aiding_vel_ecef_command_valid_flags
Definition: commands_aiding.h:347
mip::C::mip_time_timebase
mip_time_timebase
Definition: commands_aiding.h:54
mip::C::mip_aiding_magnetic_field_command::uncertainty
mip_vector3f uncertainty
[G] 1-sigma uncertainty. Cannot be 0 unless the corresponding valid flags are 0.
Definition: commands_aiding.h:515
mip::C::mip_aiding_vel_ecef_command
Definition: commands_aiding.h:365
mip::C::extract_mip_aiding_frame_config_response
void extract_mip_aiding_frame_config_response(microstrain_serializer *serializer, mip_aiding_frame_config_response *self)
Definition: commands_aiding.c:121
mip::C::mip_aiding_heading_true_command::valid_flags
uint16_t valid_flags
Definition: commands_aiding.h:475
mip::C::mip_aiding_magnetic_field_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:512
mip::C::mip_aiding_pressure_command::valid_flags
uint16_t valid_flags
Definition: commands_aiding.h:539
mip::C::mip_interface
State of the interface for communicating with a MIP device.
Definition: mip_interface.h:44
mip::C::MIP_CMD_DESC_AIDING_HEADING_TRUE
@ MIP_CMD_DESC_AIDING_HEADING_TRUE
Definition: commands_aiding.h:42
mip::C::mip_time::reserved
uint8_t reserved
Reserved, set to 0x01.
Definition: commands_aiding.h:77
mip::C::mip_aiding_heading_true_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:471
mip::C::MIP_CMD_DESC_AIDING_VEL_NED
@ MIP_CMD_DESC_AIDING_VEL_NED
Definition: commands_aiding.h:40
mip::C::mip_aiding_heading_true_command::frame_id
uint8_t frame_id
Source ID for this estimate (source_id == 0 indicates this sensor, source_id > 0 indicates an externa...
Definition: commands_aiding.h:472
mip::C::mip_aiding_pos_llh_command::height
double height
[m]
Definition: commands_aiding.h:305
mip::C::mip_aiding_vel_ned_command
Definition: commands_aiding.h:406
mip::C::mip_aiding_pos_ecef_command::frame_id
uint8_t frame_id
Source ID for this estimate (source_id == 0 indicates this sensor, source_id > 0 indicates an externa...
Definition: commands_aiding.h:259
mip_interface.h
mip::C::mip_aiding_pressure_command::frame_id
uint8_t frame_id
Source ID for this estimate (source_id == 0 indicates this sensor, source_id > 0 indicates an externa...
Definition: commands_aiding.h:536
mip::C::insert_mip_aiding_pos_llh_command
void insert_mip_aiding_pos_llh_command(microstrain_serializer *serializer, const mip_aiding_pos_llh_command *self)
Definition: commands_aiding.c:425
mip::C::mip_aiding_frame_config_command::rotation
mip_aiding_frame_config_command_rotation rotation
Rotation as specified by format.
Definition: commands_aiding.h:151
mip::C::mip_time
Definition: commands_aiding.h:74
mip::C::mip_aiding_save_frame_config
mip_cmd_result mip_aiding_save_frame_config(mip_interface *device, uint8_t frame_id)
Definition: commands_aiding.c:223
common.h
mip::C::mip_aiding_pressure_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:535
mip::C::MIP_AIDING_ECHO_CONTROL_COMMAND_MODE_SUPPRESS_ACK
@ MIP_AIDING_ECHO_CONTROL_COMMAND_MODE_SUPPRESS_ACK
Suppresses the usual command ack field for aiding messages.
Definition: commands_aiding.h:187
mip_descriptors.h
mip::C::mip_aiding_pos_llh_command::valid_flags
mip_aiding_pos_llh_command_valid_flags valid_flags
Valid flags. Axes with 0 will be completely ignored.
Definition: commands_aiding.h:307
mip::C::mip_aiding_frame_config_response::format
mip_aiding_frame_config_command_format format
Format of the transformation.
Definition: commands_aiding.h:161
mip::C::mip_aiding_echo_control_command
Definition: commands_aiding.h:205
mip::C::mip_aiding_echo_control_response::mode
mip_aiding_echo_control_command_mode mode
Controls data echoing.
Definition: commands_aiding.h:217
mip::C::mip_aiding_vel_ned_command::valid_flags
mip_aiding_vel_ned_command_valid_flags valid_flags
Valid flags. Axes with 0 will be completely ignored.
Definition: commands_aiding.h:412
mip::C::extract_mip_aiding_echo_control_response
void extract_mip_aiding_echo_control_response(microstrain_serializer *serializer, mip_aiding_echo_control_response *self)
Definition: commands_aiding.c:291
mip::C::MIP_CMD_DESC_AIDING_POS_LLH
@ MIP_CMD_DESC_AIDING_POS_LLH
Definition: commands_aiding.h:37
mip::C::mip_aiding_heading_true_command::uncertainty
float uncertainty
Cannot be 0 unless the valid flags are 0.
Definition: commands_aiding.h:474
mip::C::insert_mip_aiding_vel_ned_command
void insert_mip_aiding_vel_ned_command(microstrain_serializer *serializer, const mip_aiding_vel_ned_command *self)
Definition: commands_aiding.c:587
mip::C::mip_aiding_pressure_command::pressure
float pressure
[mbar]
Definition: commands_aiding.h:537
mip::C::mip_aiding_pos_ecef_command
Definition: commands_aiding.h:256
mip::C::insert_mip_aiding_height_above_ellipsoid_command
void insert_mip_aiding_height_above_ellipsoid_command(microstrain_serializer *serializer, const mip_aiding_height_above_ellipsoid_command *self)
Definition: commands_aiding.c:487
mip::C::mip_time::nanoseconds
uint64_t nanoseconds
Nanoseconds since the timebase epoch.
Definition: commands_aiding.h:78
microstrain::C::microstrain_insert_u16
void microstrain_insert_u16(microstrain_serializer *serializer, uint16_t value)
mip::C::mip_aiding_pressure_command
Definition: commands_aiding.h:533
mip::C::MIP_CMD_DESC_AIDING_PRESSURE
@ MIP_CMD_DESC_AIDING_PRESSURE
Definition: commands_aiding.h:44
mip::C::mip_aiding_write_echo_control
mip_cmd_result mip_aiding_write_echo_control(mip_interface *device, mip_aiding_echo_control_command_mode mode)
Definition: commands_aiding.c:297
mip::C::mip_aiding_frame_config_command_rotation::euler
mip_vector3f euler
Definition: commands_aiding.h:139
mip::C::extract_mip_aiding_pos_ecef_command
void extract_mip_aiding_pos_ecef_command(microstrain_serializer *serializer, mip_aiding_pos_ecef_command *self)
Definition: commands_aiding.c:386
mip::C::MIP_REPLY_DESC_AIDING_FRAME_CONFIG
@ MIP_REPLY_DESC_AIDING_FRAME_CONFIG
Definition: commands_aiding.h:46
mip::C::mip_aiding_vel_ned
mip_cmd_result mip_aiding_vel_ned(mip_interface *device, const mip_time *time, uint8_t frame_id, const float *velocity, const float *uncertainty, mip_aiding_vel_ned_command_valid_flags valid_flags)
Definition: commands_aiding.c:614
mip::C::extract_mip_aiding_frame_config_command
void extract_mip_aiding_frame_config_command(microstrain_serializer *serializer, mip_aiding_frame_config_command *self)
Definition: commands_aiding.c:70
mip::C::mip_aiding_vel_ecef_command::velocity
mip_vector3f velocity
ECEF velocity [m/s].
Definition: commands_aiding.h:369
mip::C::mip_aiding_pos_ecef_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:258
mip::C::mip_aiding_height_above_ellipsoid_command::valid_flags
uint16_t valid_flags
Definition: commands_aiding.h:330
mip::C::mip_aiding_frame_config_command::translation
mip_vector3f translation
Translation X, Y, and Z.
Definition: commands_aiding.h:150
mip::C::mip_aiding_vel_body_frame_command
Definition: commands_aiding.h:447
mip::C::mip_aiding_pos_ecef
mip_cmd_result mip_aiding_pos_ecef(mip_interface *device, const mip_time *time, uint8_t frame_id, const double *position, const float *uncertainty, mip_aiding_pos_ecef_command_valid_flags valid_flags)
Definition: commands_aiding.c:400
mip::C::mip_aiding_vel_ecef_command::valid_flags
mip_aiding_vel_ecef_command_valid_flags valid_flags
Valid flags. Axes with 0 will be completely ignored.
Definition: commands_aiding.h:371
mip::C::mip_aiding_pos_llh_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:301
mip::C::insert_mip_aiding_magnetic_field_command
void insert_mip_aiding_magnetic_field_command(microstrain_serializer *serializer, const mip_aiding_magnetic_field_command *self)
Definition: commands_aiding.c:739
mip::C::mip_function_selector
mip_function_selector
Definition: mip_descriptors.h:42
mip::C::mip_aiding_height_above_ellipsoid_command::uncertainty
float uncertainty
[m]
Definition: commands_aiding.h:329
mip::C::mip_aiding_pos_llh_command::latitude
double latitude
[deg]
Definition: commands_aiding.h:303
mip::C::mip_aiding_frame_config_response::frame_id
uint8_t frame_id
Reference frame number. Limit 4.
Definition: commands_aiding.h:160
mip::C::mip_aiding_frame_config_response
Definition: commands_aiding.h:158
mip::C::extract_mip_aiding_pressure_command
void extract_mip_aiding_pressure_command(microstrain_serializer *serializer, mip_aiding_pressure_command *self)
Definition: commands_aiding.c:804
mip::C::MIP_REPLY_DESC_AIDING_ECHO_CONTROL
@ MIP_REPLY_DESC_AIDING_ECHO_CONTROL
Definition: commands_aiding.h:47
mip::C::mip_aiding_heading_true
mip_cmd_result mip_aiding_heading_true(mip_interface *device, const mip_time *time, uint8_t frame_id, float heading, float uncertainty, uint16_t valid_flags)
Definition: commands_aiding.c:718
mip::C::mip_aiding_height_above_ellipsoid_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:326
mip::C::mip_aiding_vel_ned_command::uncertainty
mip_vector3f uncertainty
NED velocity uncertainty [m/s]. Cannot be 0 unless the corresponding valid flags are 0.
Definition: commands_aiding.h:411
mip::commands_aiding::pressure
TypedResult< Pressure > pressure(C::mip_interface &device, const Time &time, uint8_t frameId, float pressure, float uncertainty, uint16_t validFlags)
Definition: commands_aiding.cpp:781
mip::C::MIP_CMD_DESC_AIDING_VEL_BODY_FRAME
@ MIP_CMD_DESC_AIDING_VEL_BODY_FRAME
Definition: commands_aiding.h:41
mip::C::mip_aiding_pos_llh_command_valid_flags
uint16_t mip_aiding_pos_llh_command_valid_flags
Definition: commands_aiding.h:281