MIP_SDK  latest-2-g34f3e39
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 
52 
55 };
56 
58 // Shared Type Definitions
60 
62 {
66 };
68 
69 static inline void insert_mip_time_timebase(microstrain_serializer* serializer, const mip_time_timebase self)
70 {
71  microstrain_insert_u8(serializer, (uint8_t)(self));
72 }
73 static inline void extract_mip_time_timebase(microstrain_serializer* serializer, mip_time_timebase* self)
74 {
75  uint8_t tmp = 0;
76  microstrain_extract_u8(serializer, &tmp);
77  *self = tmp;
78 }
79 
80 
81 struct mip_time
82 {
84  uint8_t reserved;
85  uint64_t nanoseconds;
86 };
87 typedef struct mip_time mip_time;
88 
89 void insert_mip_time(microstrain_serializer* serializer, const mip_time* self);
90 void extract_mip_time(microstrain_serializer* serializer, mip_time* self);
91 
92 
94 // Mip Fields
96 
126 
128 {
131 };
133 
134 static inline void insert_mip_aiding_frame_config_command_format(microstrain_serializer* serializer, const mip_aiding_frame_config_command_format self)
135 {
136  microstrain_insert_u8(serializer, (uint8_t)(self));
137 }
138 static inline void extract_mip_aiding_frame_config_command_format(microstrain_serializer* serializer, mip_aiding_frame_config_command_format* self)
139 {
140  uint8_t tmp = 0;
141  microstrain_extract_u8(serializer, &tmp);
142  *self = tmp;
143 }
144 
146 {
147  mip_vector3f euler;
148  mip_quatf quaternion;
149 };
151 
153 {
155  uint8_t frame_id;
158  mip_vector3f translation;
160 };
162 
165 
167 {
168  uint8_t frame_id;
171  mip_vector3f translation;
173 };
175 
178 
179 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);
180 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);
184 
192 
194 {
198 };
200 
201 static inline void insert_mip_aiding_echo_control_command_mode(microstrain_serializer* serializer, const mip_aiding_echo_control_command_mode self)
202 {
203  microstrain_insert_u8(serializer, (uint8_t)(self));
204 }
205 static inline void extract_mip_aiding_echo_control_command_mode(microstrain_serializer* serializer, mip_aiding_echo_control_command_mode* self)
206 {
207  uint8_t tmp = 0;
208  microstrain_extract_u8(serializer, &tmp);
209  *self = tmp;
210 }
211 
212 
214 {
217 };
219 
222 
224 {
226 };
228 
231 
237 
245 
247 static const mip_aiding_pos_ecef_command_valid_flags MIP_AIDING_POS_ECEF_COMMAND_VALID_FLAGS_NONE = 0x0000;
248 static const mip_aiding_pos_ecef_command_valid_flags MIP_AIDING_POS_ECEF_COMMAND_VALID_FLAGS_X = 0x0001;
249 static const mip_aiding_pos_ecef_command_valid_flags MIP_AIDING_POS_ECEF_COMMAND_VALID_FLAGS_Y = 0x0002;
250 static const mip_aiding_pos_ecef_command_valid_flags MIP_AIDING_POS_ECEF_COMMAND_VALID_FLAGS_Z = 0x0004;
251 static const mip_aiding_pos_ecef_command_valid_flags MIP_AIDING_POS_ECEF_COMMAND_VALID_FLAGS_ALL = 0x0007;
252 static inline void insert_mip_aiding_pos_ecef_command_valid_flags(microstrain_serializer* serializer, const mip_aiding_pos_ecef_command_valid_flags self)
253 {
254  microstrain_insert_u16(serializer, (uint16_t)(self));
255 }
256 static inline void extract_mip_aiding_pos_ecef_command_valid_flags(microstrain_serializer* serializer, mip_aiding_pos_ecef_command_valid_flags* self)
257 {
258  uint16_t tmp = 0;
259  microstrain_extract_u16(serializer, &tmp);
260  *self = tmp;
261 }
262 
263 
265 {
267  uint8_t frame_id;
268  mip_vector3d position;
269  mip_vector3f uncertainty;
271 };
273 
276 
277 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);
278 
288 
290 static const mip_aiding_pos_llh_command_valid_flags MIP_AIDING_POS_LLH_COMMAND_VALID_FLAGS_NONE = 0x0000;
291 static const mip_aiding_pos_llh_command_valid_flags MIP_AIDING_POS_LLH_COMMAND_VALID_FLAGS_LATITUDE = 0x0001;
292 static const mip_aiding_pos_llh_command_valid_flags MIP_AIDING_POS_LLH_COMMAND_VALID_FLAGS_LONGITUDE = 0x0002;
293 static const mip_aiding_pos_llh_command_valid_flags MIP_AIDING_POS_LLH_COMMAND_VALID_FLAGS_HEIGHT = 0x0004;
294 static const mip_aiding_pos_llh_command_valid_flags MIP_AIDING_POS_LLH_COMMAND_VALID_FLAGS_ALL = 0x0007;
295 static inline void insert_mip_aiding_pos_llh_command_valid_flags(microstrain_serializer* serializer, const mip_aiding_pos_llh_command_valid_flags self)
296 {
297  microstrain_insert_u16(serializer, (uint16_t)(self));
298 }
299 static inline void extract_mip_aiding_pos_llh_command_valid_flags(microstrain_serializer* serializer, mip_aiding_pos_llh_command_valid_flags* self)
300 {
301  uint16_t tmp = 0;
302  microstrain_extract_u16(serializer, &tmp);
303  *self = tmp;
304 }
305 
306 
308 {
310  uint8_t frame_id;
311  double latitude;
312  double longitude;
313  double height;
314  mip_vector3f uncertainty;
316 };
318 
321 
322 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);
323 
331 
333 {
335  uint8_t frame_id;
336  float height;
337  float uncertainty;
338  uint16_t valid_flags;
339 };
341 
344 
345 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);
346 
354 
356 static const mip_aiding_vel_ecef_command_valid_flags MIP_AIDING_VEL_ECEF_COMMAND_VALID_FLAGS_NONE = 0x0000;
357 static const mip_aiding_vel_ecef_command_valid_flags MIP_AIDING_VEL_ECEF_COMMAND_VALID_FLAGS_X = 0x0001;
358 static const mip_aiding_vel_ecef_command_valid_flags MIP_AIDING_VEL_ECEF_COMMAND_VALID_FLAGS_Y = 0x0002;
359 static const mip_aiding_vel_ecef_command_valid_flags MIP_AIDING_VEL_ECEF_COMMAND_VALID_FLAGS_Z = 0x0004;
360 static const mip_aiding_vel_ecef_command_valid_flags MIP_AIDING_VEL_ECEF_COMMAND_VALID_FLAGS_ALL = 0x0007;
361 static inline void insert_mip_aiding_vel_ecef_command_valid_flags(microstrain_serializer* serializer, const mip_aiding_vel_ecef_command_valid_flags self)
362 {
363  microstrain_insert_u16(serializer, (uint16_t)(self));
364 }
365 static inline void extract_mip_aiding_vel_ecef_command_valid_flags(microstrain_serializer* serializer, mip_aiding_vel_ecef_command_valid_flags* self)
366 {
367  uint16_t tmp = 0;
368  microstrain_extract_u16(serializer, &tmp);
369  *self = tmp;
370 }
371 
372 
374 {
376  uint8_t frame_id;
377  mip_vector3f velocity;
378  mip_vector3f uncertainty;
380 };
382 
385 
386 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);
387 
395 
397 static const mip_aiding_vel_ned_command_valid_flags MIP_AIDING_VEL_NED_COMMAND_VALID_FLAGS_NONE = 0x0000;
398 static const mip_aiding_vel_ned_command_valid_flags MIP_AIDING_VEL_NED_COMMAND_VALID_FLAGS_X = 0x0001;
399 static const mip_aiding_vel_ned_command_valid_flags MIP_AIDING_VEL_NED_COMMAND_VALID_FLAGS_Y = 0x0002;
400 static const mip_aiding_vel_ned_command_valid_flags MIP_AIDING_VEL_NED_COMMAND_VALID_FLAGS_Z = 0x0004;
401 static const mip_aiding_vel_ned_command_valid_flags MIP_AIDING_VEL_NED_COMMAND_VALID_FLAGS_ALL = 0x0007;
402 static inline void insert_mip_aiding_vel_ned_command_valid_flags(microstrain_serializer* serializer, const mip_aiding_vel_ned_command_valid_flags self)
403 {
404  microstrain_insert_u16(serializer, (uint16_t)(self));
405 }
406 static inline void extract_mip_aiding_vel_ned_command_valid_flags(microstrain_serializer* serializer, mip_aiding_vel_ned_command_valid_flags* self)
407 {
408  uint16_t tmp = 0;
409  microstrain_extract_u16(serializer, &tmp);
410  *self = tmp;
411 }
412 
413 
415 {
417  uint8_t frame_id;
418  mip_vector3f velocity;
419  mip_vector3f uncertainty;
421 };
423 
426 
427 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);
428 
436 
438 static const mip_aiding_vel_body_frame_command_valid_flags MIP_AIDING_VEL_BODY_FRAME_COMMAND_VALID_FLAGS_NONE = 0x0000;
439 static const mip_aiding_vel_body_frame_command_valid_flags MIP_AIDING_VEL_BODY_FRAME_COMMAND_VALID_FLAGS_X = 0x0001;
440 static const mip_aiding_vel_body_frame_command_valid_flags MIP_AIDING_VEL_BODY_FRAME_COMMAND_VALID_FLAGS_Y = 0x0002;
441 static const mip_aiding_vel_body_frame_command_valid_flags MIP_AIDING_VEL_BODY_FRAME_COMMAND_VALID_FLAGS_Z = 0x0004;
442 static const mip_aiding_vel_body_frame_command_valid_flags MIP_AIDING_VEL_BODY_FRAME_COMMAND_VALID_FLAGS_ALL = 0x0007;
443 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)
444 {
445  microstrain_insert_u16(serializer, (uint16_t)(self));
446 }
447 static inline void extract_mip_aiding_vel_body_frame_command_valid_flags(microstrain_serializer* serializer, mip_aiding_vel_body_frame_command_valid_flags* self)
448 {
449  uint16_t tmp = 0;
450  microstrain_extract_u16(serializer, &tmp);
451  *self = tmp;
452 }
453 
454 
456 {
458  uint8_t frame_id;
459  mip_vector3f velocity;
460  mip_vector3f uncertainty;
462 };
464 
467 
468 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);
469 
476 
478 {
480  uint8_t frame_id;
481  float heading;
482  float uncertainty;
483  uint16_t valid_flags;
484 };
486 
489 
490 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);
491 
499 
501 static const mip_aiding_magnetic_field_command_valid_flags MIP_AIDING_MAGNETIC_FIELD_COMMAND_VALID_FLAGS_NONE = 0x0000;
502 static const mip_aiding_magnetic_field_command_valid_flags MIP_AIDING_MAGNETIC_FIELD_COMMAND_VALID_FLAGS_X = 0x0001;
503 static const mip_aiding_magnetic_field_command_valid_flags MIP_AIDING_MAGNETIC_FIELD_COMMAND_VALID_FLAGS_Y = 0x0002;
504 static const mip_aiding_magnetic_field_command_valid_flags MIP_AIDING_MAGNETIC_FIELD_COMMAND_VALID_FLAGS_Z = 0x0004;
505 static const mip_aiding_magnetic_field_command_valid_flags MIP_AIDING_MAGNETIC_FIELD_COMMAND_VALID_FLAGS_ALL = 0x0007;
506 static inline void insert_mip_aiding_magnetic_field_command_valid_flags(microstrain_serializer* serializer, const mip_aiding_magnetic_field_command_valid_flags self)
507 {
508  microstrain_insert_u16(serializer, (uint16_t)(self));
509 }
510 static inline void extract_mip_aiding_magnetic_field_command_valid_flags(microstrain_serializer* serializer, mip_aiding_magnetic_field_command_valid_flags* self)
511 {
512  uint16_t tmp = 0;
513  microstrain_extract_u16(serializer, &tmp);
514  *self = tmp;
515 }
516 
517 
519 {
521  uint8_t frame_id;
522  mip_vector3f magnetic_field;
523  mip_vector3f uncertainty;
525 };
527 
530 
531 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);
532 
540 
542 {
544  uint8_t frame_id;
545  float pressure;
546  float uncertainty;
547  uint16_t valid_flags;
548 };
550 
553 
554 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);
555 
558 
563 #ifdef __cplusplus
564 } // extern "C"
565 } // namespace C
566 } // namespace mip
567 #endif // __cplusplus
568 
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:216
mip::C::mip_aiding_magnetic_field_command
Definition: commands_aiding.h:518
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:157
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:145
mip::C::MIP_CMD_DESC_AIDING_POS_ECEF
@ MIP_CMD_DESC_AIDING_POS_ECEF
Definition: commands_aiding.h:38
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:335
mip::C::mip_aiding_frame_config_command_rotation::quaternion
mip_quatf quaternion
Definition: commands_aiding.h:148
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:63
mip::C::mip_aiding_pos_llh_command::longitude
double longitude
[deg]
Definition: commands_aiding.h:312
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:127
mip::C::mip_aiding_vel_body_frame_command_valid_flags
uint16_t mip_aiding_vel_body_frame_command_valid_flags
Definition: commands_aiding.h:437
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:270
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:417
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:65
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:500
mip::C::MIP_CMD_DESC_AIDING_WHEELSPEED
@ MIP_CMD_DESC_AIDING_WHEELSPEED
Definition: commands_aiding.h:45
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:129
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:314
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:396
mip::C::mip_aiding_vel_ecef_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:375
mip::C::mip_aiding_vel_body_frame_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:457
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:64
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:130
microstrain::C::microstrain_serializer
struct microstrain::C::microstrain_serializer microstrain_serializer
Structure used for serialization.
mip::C::MIP_CMD_DESC_AIDING_ANGULAR_RATE_LOCAL
@ MIP_CMD_DESC_AIDING_ANGULAR_RATE_LOCAL
Definition: commands_aiding.h:51
mip::C::MIP_CMD_DESC_AIDING_DELTA_ATTITUDE
@ MIP_CMD_DESC_AIDING_DELTA_ATTITUDE
Definition: commands_aiding.h:50
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:47
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:155
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:546
mip_result.h
mip::C::MIP_CMD_DESC_AIDING_LOCAL_FRAME
@ MIP_CMD_DESC_AIDING_LOCAL_FRAME
Definition: commands_aiding.h:35
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:376
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:458
mip::C::mip_aiding_vel_ned_command::velocity
mip_vector3f velocity
NED velocity [m/s].
Definition: commands_aiding.h:418
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:156
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:524
mip::C::mip_aiding_echo_control_response
Definition: commands_aiding.h:223
mip::C::mip_aiding_heading_true_command
Definition: commands_aiding.h:477
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:83
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:310
mip::C::MIP_CMD_DESC_AIDING_VEL_ECEF
@ MIP_CMD_DESC_AIDING_VEL_ECEF
Definition: commands_aiding.h:42
mip::C::mip_aiding_echo_control_command_mode
mip_aiding_echo_control_command_mode
Definition: commands_aiding.h:193
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:522
mip::C::mip_aiding_frame_config_command
Definition: commands_aiding.h:152
mip::C::mip_aiding_pos_ecef_command::position
mip_vector3d position
ECEF position [m].
Definition: commands_aiding.h:268
mip::C::mip_aiding_pos_ecef_command_valid_flags
uint16_t mip_aiding_pos_ecef_command_valid_flags
Definition: commands_aiding.h:246
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:40
mip::C::mip_aiding_frame_config_response::rotation
mip_aiding_frame_config_command_rotation rotation
Rotation as specified by format.
Definition: commands_aiding.h:172
mip::C::mip_aiding_heading_true_command::heading
float heading
Heading [radians]. Range +/- Pi.
Definition: commands_aiding.h:481
mip::C::mip_aiding_pos_llh_command
Definition: commands_aiding.h:307
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:460
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:197
mip::C::mip_aiding_height_above_ellipsoid_command
Definition: commands_aiding.h:332
mip::C::mip_aiding_height_above_ellipsoid_command::height
float height
[m]
Definition: commands_aiding.h:336
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:269
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:378
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:461
mip::C::mip_aiding_frame_config_response::tracking_enabled
bool tracking_enabled
If enabled, the Kalman filter will track errors.
Definition: commands_aiding.h:170
mip::C::mip_aiding_vel_body_frame_command::velocity
mip_vector3f velocity
[m/s]
Definition: commands_aiding.h:459
mip::C::mip_aiding_vel_ned_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:416
mip::C::MIP_CMD_DESC_AIDING_ECHO_CONTROL
@ MIP_CMD_DESC_AIDING_ECHO_CONTROL
Definition: commands_aiding.h:36
mip::C::MIP_AIDING_ECHO_CONTROL_COMMAND_MODE_STANDARD
@ MIP_AIDING_ECHO_CONTROL_COMMAND_MODE_STANDARD
Normal ack/nack behavior.
Definition: commands_aiding.h:196
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:521
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:171
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:355
mip::C::mip_time_timebase
mip_time_timebase
Definition: commands_aiding.h:61
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:523
mip::C::mip_aiding_vel_ecef_command
Definition: commands_aiding.h:373
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:483
mip::C::MIP_CMD_DESC_AIDING_DELTA_POSITION
@ MIP_CMD_DESC_AIDING_DELTA_POSITION
Definition: commands_aiding.h:49
mip::C::mip_aiding_magnetic_field_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:520
mip::C::mip_aiding_pressure_command::valid_flags
uint16_t valid_flags
Definition: commands_aiding.h:547
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:46
mip::C::mip_time::reserved
uint8_t reserved
Reserved, set to 0x01.
Definition: commands_aiding.h:84
mip::C::mip_aiding_heading_true_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:479
mip::C::MIP_CMD_DESC_AIDING_VEL_NED
@ MIP_CMD_DESC_AIDING_VEL_NED
Definition: commands_aiding.h:43
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:480
mip::C::mip_aiding_pos_llh_command::height
double height
[m]
Definition: commands_aiding.h:313
mip::C::mip_aiding_vel_ned_command
Definition: commands_aiding.h:414
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:267
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:544
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:159
mip::C::mip_time
Definition: commands_aiding.h:81
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
mip::C::MIP_CMD_DESC_AIDING_POS_LOCAL
@ MIP_CMD_DESC_AIDING_POS_LOCAL
Definition: commands_aiding.h:37
mip::C::MIP_CMD_DESC_AIDING_HEIGHT_REL
@ MIP_CMD_DESC_AIDING_HEIGHT_REL
Definition: commands_aiding.h:41
common.h
mip::C::mip_aiding_pressure_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:543
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:195
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:315
mip::C::mip_aiding_frame_config_response::format
mip_aiding_frame_config_command_format format
Format of the transformation.
Definition: commands_aiding.h:169
mip::C::mip_aiding_echo_control_command
Definition: commands_aiding.h:213
mip::C::mip_aiding_echo_control_response::mode
mip_aiding_echo_control_command_mode mode
Controls data echoing.
Definition: commands_aiding.h:225
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:420
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:39
mip::C::mip_aiding_heading_true_command::uncertainty
float uncertainty
Cannot be 0 unless the valid flags are 0.
Definition: commands_aiding.h:482
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:545
mip::C::mip_aiding_pos_ecef_command
Definition: commands_aiding.h:264
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:85
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:541
mip::C::MIP_CMD_DESC_AIDING_PRESSURE
@ MIP_CMD_DESC_AIDING_PRESSURE
Definition: commands_aiding.h:48
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:147
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:53
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:377
mip::C::mip_aiding_pos_ecef_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:266
mip::C::mip_aiding_height_above_ellipsoid_command::valid_flags
uint16_t valid_flags
Definition: commands_aiding.h:338
mip::C::mip_aiding_frame_config_command::translation
mip_vector3f translation
Translation X, Y, and Z.
Definition: commands_aiding.h:158
mip::C::mip_aiding_vel_body_frame_command
Definition: commands_aiding.h:455
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:379
mip::C::mip_aiding_pos_llh_command::time
mip_time time
Timestamp of the measurement.
Definition: commands_aiding.h:309
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:337
mip::C::mip_aiding_pos_llh_command::latitude
double latitude
[deg]
Definition: commands_aiding.h:311
mip::C::mip_aiding_frame_config_response::frame_id
uint8_t frame_id
Reference frame number. Limit 4.
Definition: commands_aiding.h:168
mip::C::mip_aiding_frame_config_response
Definition: commands_aiding.h:166
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:54
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:334
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:419
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:44
mip::C::mip_aiding_pos_llh_command_valid_flags
uint16_t mip_aiding_pos_llh_command_valid_flags
Definition: commands_aiding.h:289