MIP SDK  0.0.1
MicroStrain Communications Library for embedded systems
data_filter.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "descriptors.h"
4 #include "../mip_result.h"
5 
6 #include <stdint.h>
7 #include <stddef.h>
8 #include <stdbool.h>
9 
10 namespace mip {
11 class Serializer;
12 
13 namespace C {
14 struct mip_interface;
15 } // namespace C
16 
17 namespace data_filter {
18 
25 
27 // Descriptors
29 
30 enum
31 {
33 
34  DATA_POS_LLH = 0x01,
35  DATA_VEL_NED = 0x02,
59  DATA_MAG_BIAS = 0x1A,
84  DATA_ECEF_POS = 0x40,
85  DATA_ECEF_VEL = 0x41,
94 
95 };
96 
98 // Shared Type Definitions
100 
101 enum class FilterMode : uint16_t
102 {
103  GX5_STARTUP = 0,
104  GX5_INIT = 1,
107  INIT = 1,
108  VERT_GYRO = 2,
109  AHRS = 3,
110  FULL_NAV = 4,
111 };
112 
113 enum class FilterDynamicsMode : uint16_t
114 {
115  GX5_PORTABLE = 1,
116  GX5_AUTOMOTIVE = 2,
117  GX5_AIRBORNE = 3,
118  GQ7_DEFAULT = 1,
119 };
120 
121 struct FilterStatusFlags : Bitfield<FilterStatusFlags>
122 {
123  enum _enumType : uint16_t
124  {
125  NONE = 0x0000,
154  };
155  uint16_t value = NONE;
156 
158  FilterStatusFlags(int val) : value((uint16_t)val) {}
159  operator uint16_t() const { return value; }
160  FilterStatusFlags& operator=(uint16_t val) { value = val; return *this; }
161  FilterStatusFlags& operator=(int val) { value = val; return *this; }
162  FilterStatusFlags& operator|=(uint16_t val) { return *this = value | val; }
163  FilterStatusFlags& operator&=(uint16_t val) { return *this = value & val; }
164 };
165 
166 enum class FilterAidingMeasurementType : uint8_t
167 {
168  GNSS = 1,
169  DUAL_ANTENNA = 2,
170  HEADING = 3,
171  PRESSURE = 4,
172  MAGNETOMETER = 5,
173  SPEED = 6,
174 };
175 
176 struct FilterMeasurementIndicator : Bitfield<FilterMeasurementIndicator>
177 {
178  enum _enumType : uint8_t
179  {
180  NONE = 0x00,
181  ENABLED = 0x01,
182  USED = 0x02,
187  };
188  uint8_t value = NONE;
189 
191  FilterMeasurementIndicator(int val) : value((uint8_t)val) {}
192  operator uint8_t() const { return value; }
193  FilterMeasurementIndicator& operator=(uint8_t val) { value = val; return *this; }
194  FilterMeasurementIndicator& operator=(int val) { value = val; return *this; }
195  FilterMeasurementIndicator& operator|=(uint8_t val) { return *this = value | val; }
196  FilterMeasurementIndicator& operator&=(uint8_t val) { return *this = value & val; }
197 };
198 
199 struct GnssAidStatusFlags : Bitfield<GnssAidStatusFlags>
200 {
201  enum _enumType : uint16_t
202  {
203  NONE = 0x0000,
204  TIGHT_COUPLING = 0x0001,
205  DIFFERENTIAL = 0x0002,
206  INTEGER_FIX = 0x0004,
207  GPS_L1 = 0x0008,
208  GPS_L2 = 0x0010,
209  GPS_L5 = 0x0020,
210  GLO_L1 = 0x0040,
211  GLO_L2 = 0x0080,
212  GAL_E1 = 0x0100,
213  GAL_E5 = 0x0200,
214  GAL_E6 = 0x0400,
215  BEI_B1 = 0x0800,
216  BEI_B2 = 0x1000,
217  BEI_B3 = 0x2000,
218  NO_FIX = 0x4000,
219  CONFIG_ERROR = 0x8000,
220  };
221  uint16_t value = NONE;
222 
224  GnssAidStatusFlags(int val) : value((uint16_t)val) {}
225  operator uint16_t() const { return value; }
226  GnssAidStatusFlags& operator=(uint16_t val) { value = val; return *this; }
227  GnssAidStatusFlags& operator=(int val) { value = val; return *this; }
228  GnssAidStatusFlags& operator|=(uint16_t val) { return *this = value | val; }
229  GnssAidStatusFlags& operator&=(uint16_t val) { return *this = value & val; }
230 };
231 
232 
234 // Mip Fields
236 
242 
244 {
247 
248  static const bool HAS_FUNCTION_SELECTOR = false;
249 
250  double latitude = 0;
251  double longitude = 0;
252  double ellipsoid_height = 0;
253  uint16_t valid_flags = 0;
254 
255 };
256 void insert(Serializer& serializer, const PositionLlh& self);
257 void extract(Serializer& serializer, PositionLlh& self);
258 
266 
268 {
271 
272  static const bool HAS_FUNCTION_SELECTOR = false;
273 
274  float north = 0;
275  float east = 0;
276  float down = 0;
277  uint16_t valid_flags = 0;
278 
279 };
280 void insert(Serializer& serializer, const VelocityNed& self);
281 void extract(Serializer& serializer, VelocityNed& self);
282 
298 
300 {
303 
304  static const bool HAS_FUNCTION_SELECTOR = false;
305 
306  float q[4] = {0};
307  uint16_t valid_flags = 0;
308 
309 };
310 void insert(Serializer& serializer, const AttitudeQuaternion& self);
311 void extract(Serializer& serializer, AttitudeQuaternion& self);
312 
330 
332 {
335 
336  static const bool HAS_FUNCTION_SELECTOR = false;
337 
338  float dcm[9] = {0};
339  uint16_t valid_flags = 0;
340 
341 };
342 void insert(Serializer& serializer, const AttitudeDcm& self);
343 void extract(Serializer& serializer, AttitudeDcm& self);
344 
353 
355 {
358 
359  static const bool HAS_FUNCTION_SELECTOR = false;
360 
361  float roll = 0;
362  float pitch = 0;
363  float yaw = 0;
364  uint16_t valid_flags = 0;
365 
366 };
367 void insert(Serializer& serializer, const EulerAngles& self);
368 void extract(Serializer& serializer, EulerAngles& self);
369 
377 
378 struct GyroBias
379 {
382 
383  static const bool HAS_FUNCTION_SELECTOR = false;
384 
385  float bias[3] = {0};
386  uint16_t valid_flags = 0;
387 
388 };
389 void insert(Serializer& serializer, const GyroBias& self);
390 void extract(Serializer& serializer, GyroBias& self);
391 
399 
400 struct AccelBias
401 {
404 
405  static const bool HAS_FUNCTION_SELECTOR = false;
406 
407  float bias[3] = {0};
408  uint16_t valid_flags = 0;
409 
410 };
411 void insert(Serializer& serializer, const AccelBias& self);
412 void extract(Serializer& serializer, AccelBias& self);
413 
421 
423 {
426 
427  static const bool HAS_FUNCTION_SELECTOR = false;
428 
429  float north = 0;
430  float east = 0;
431  float down = 0;
432  uint16_t valid_flags = 0;
433 
434 };
435 void insert(Serializer& serializer, const PositionLlhUncertainty& self);
436 void extract(Serializer& serializer, PositionLlhUncertainty& self);
437 
445 
447 {
450 
451  static const bool HAS_FUNCTION_SELECTOR = false;
452 
453  float north = 0;
454  float east = 0;
455  float down = 0;
456  uint16_t valid_flags = 0;
457 
458 };
459 void insert(Serializer& serializer, const VelocityNedUncertainty& self);
460 void extract(Serializer& serializer, VelocityNedUncertainty& self);
461 
470 
472 {
475 
476  static const bool HAS_FUNCTION_SELECTOR = false;
477 
478  float roll = 0;
479  float pitch = 0;
480  float yaw = 0;
481  uint16_t valid_flags = 0;
482 
483 };
484 void insert(Serializer& serializer, const EulerAnglesUncertainty& self);
485 void extract(Serializer& serializer, EulerAnglesUncertainty& self);
486 
494 
496 {
499 
500  static const bool HAS_FUNCTION_SELECTOR = false;
501 
502  float bias_uncert[3] = {0};
503  uint16_t valid_flags = 0;
504 
505 };
506 void insert(Serializer& serializer, const GyroBiasUncertainty& self);
507 void extract(Serializer& serializer, GyroBiasUncertainty& self);
508 
516 
518 {
521 
522  static const bool HAS_FUNCTION_SELECTOR = false;
523 
524  float bias_uncert[3] = {0};
525  uint16_t valid_flags = 0;
526 
527 };
528 void insert(Serializer& serializer, const AccelBiasUncertainty& self);
529 void extract(Serializer& serializer, AccelBiasUncertainty& self);
530 
544 
545 struct Timestamp
546 {
549 
550  static const bool HAS_FUNCTION_SELECTOR = false;
551 
552  double tow = 0;
553  uint16_t week_number = 0;
554  uint16_t valid_flags = 0;
555 
556 };
557 void insert(Serializer& serializer, const Timestamp& self);
558 void extract(Serializer& serializer, Timestamp& self);
559 
567 
568 struct Status
569 {
572 
573  static const bool HAS_FUNCTION_SELECTOR = false;
574 
575  FilterMode filter_state = static_cast<FilterMode>(0);
578 
579 };
580 void insert(Serializer& serializer, const Status& self);
581 void extract(Serializer& serializer, Status& self);
582 
591 
593 {
596 
597  static const bool HAS_FUNCTION_SELECTOR = false;
598 
599  float accel[3] = {0};
600  uint16_t valid_flags = 0;
601 
602 };
603 void insert(Serializer& serializer, const LinearAccel& self);
604 void extract(Serializer& serializer, LinearAccel& self);
605 
613 
615 {
618 
619  static const bool HAS_FUNCTION_SELECTOR = false;
620 
621  float gravity[3] = {0};
622  uint16_t valid_flags = 0;
623 
624 };
625 void insert(Serializer& serializer, const GravityVector& self);
626 void extract(Serializer& serializer, GravityVector& self);
627 
635 
636 struct CompAccel
637 {
640 
641  static const bool HAS_FUNCTION_SELECTOR = false;
642 
643  float accel[3] = {0};
644  uint16_t valid_flags = 0;
645 
646 };
647 void insert(Serializer& serializer, const CompAccel& self);
648 void extract(Serializer& serializer, CompAccel& self);
649 
657 
659 {
662 
663  static const bool HAS_FUNCTION_SELECTOR = false;
664 
665  float gyro[3] = {0};
666  uint16_t valid_flags = 0;
667 
668 };
669 void insert(Serializer& serializer, const CompAngularRate& self);
670 void extract(Serializer& serializer, CompAngularRate& self);
671 
679 
681 {
684 
685  static const bool HAS_FUNCTION_SELECTOR = false;
686 
687  float q[4] = {0};
688  uint16_t valid_flags = 0;
689 
690 };
691 void insert(Serializer& serializer, const QuaternionAttitudeUncertainty& self);
692 void extract(Serializer& serializer, QuaternionAttitudeUncertainty& self);
693 
701 
703 {
706 
707  static const bool HAS_FUNCTION_SELECTOR = false;
708 
709  float magnitude = 0;
710  uint16_t valid_flags = 0;
711 
712 };
713 void insert(Serializer& serializer, const Wgs84GravityMag& self);
714 void extract(Serializer& serializer, Wgs84GravityMag& self);
715 
726 
728 {
731 
732  static const bool HAS_FUNCTION_SELECTOR = false;
733 
734  enum class HeadingSource : uint16_t
735  {
736  NONE = 0,
737  MAGNETOMETER = 1,
739  EXTERNAL = 4,
740  DUAL_ANTENNA = 8,
741  };
742 
743  float heading = 0;
744  float heading_1sigma = 0;
745  HeadingSource source = static_cast<HeadingSource>(0);
746  uint16_t valid_flags = 0;
747 
748 };
749 void insert(Serializer& serializer, const HeadingUpdateState& self);
750 void extract(Serializer& serializer, HeadingUpdateState& self);
751 
760 
762 {
765 
766  static const bool HAS_FUNCTION_SELECTOR = false;
767 
768  float intensity_north = 0;
769  float intensity_east = 0;
770  float intensity_down = 0;
771  float inclination = 0;
772  float declination = 0;
773  uint16_t valid_flags = 0;
774 
775 };
776 void insert(Serializer& serializer, const MagneticModel& self);
777 void extract(Serializer& serializer, MagneticModel& self);
778 
786 
788 {
791 
792  static const bool HAS_FUNCTION_SELECTOR = false;
793 
794  float scale_factor[3] = {0};
795  uint16_t valid_flags = 0;
796 
797 };
798 void insert(Serializer& serializer, const AccelScaleFactor& self);
799 void extract(Serializer& serializer, AccelScaleFactor& self);
800 
808 
810 {
813 
814  static const bool HAS_FUNCTION_SELECTOR = false;
815 
816  float scale_factor_uncert[3] = {0};
817  uint16_t valid_flags = 0;
818 
819 };
820 void insert(Serializer& serializer, const AccelScaleFactorUncertainty& self);
821 void extract(Serializer& serializer, AccelScaleFactorUncertainty& self);
822 
830 
832 {
835 
836  static const bool HAS_FUNCTION_SELECTOR = false;
837 
838  float scale_factor[3] = {0};
839  uint16_t valid_flags = 0;
840 
841 };
842 void insert(Serializer& serializer, const GyroScaleFactor& self);
843 void extract(Serializer& serializer, GyroScaleFactor& self);
844 
852 
854 {
857 
858  static const bool HAS_FUNCTION_SELECTOR = false;
859 
860  float scale_factor_uncert[3] = {0};
861  uint16_t valid_flags = 0;
862 
863 };
864 void insert(Serializer& serializer, const GyroScaleFactorUncertainty& self);
865 void extract(Serializer& serializer, GyroScaleFactorUncertainty& self);
866 
874 
875 struct MagBias
876 {
879 
880  static const bool HAS_FUNCTION_SELECTOR = false;
881 
882  float bias[3] = {0};
883  uint16_t valid_flags = 0;
884 
885 };
886 void insert(Serializer& serializer, const MagBias& self);
887 void extract(Serializer& serializer, MagBias& self);
888 
896 
898 {
901 
902  static const bool HAS_FUNCTION_SELECTOR = false;
903 
904  float bias_uncert[3] = {0};
905  uint16_t valid_flags = 0;
906 
907 };
908 void insert(Serializer& serializer, const MagBiasUncertainty& self);
909 void extract(Serializer& serializer, MagBiasUncertainty& self);
910 
920 
922 {
925 
926  static const bool HAS_FUNCTION_SELECTOR = false;
927 
928  float geometric_altitude = 0;
931  float standard_pressure = 0;
932  float standard_density = 0;
933  uint16_t valid_flags = 0;
934 
935 };
936 void insert(Serializer& serializer, const StandardAtmosphere& self);
937 void extract(Serializer& serializer, StandardAtmosphere& self);
938 
950 
952 {
955 
956  static const bool HAS_FUNCTION_SELECTOR = false;
957 
958  float pressure_altitude = 0;
959  uint16_t valid_flags = 0;
960 
961 };
962 void insert(Serializer& serializer, const PressureAltitude& self);
963 void extract(Serializer& serializer, PressureAltitude& self);
964 
971 
973 {
976 
977  static const bool HAS_FUNCTION_SELECTOR = false;
978 
979  float density_altitude = 0;
980  uint16_t valid_flags = 0;
981 
982 };
983 void insert(Serializer& serializer, const DensityAltitude& self);
984 void extract(Serializer& serializer, DensityAltitude& self);
985 
995 
997 {
1000 
1001  static const bool HAS_FUNCTION_SELECTOR = false;
1002 
1003  float offset[3] = {0};
1004  uint16_t valid_flags = 0;
1005 
1006 };
1007 void insert(Serializer& serializer, const AntennaOffsetCorrection& self);
1008 void extract(Serializer& serializer, AntennaOffsetCorrection& self);
1009 
1017 
1019 {
1022 
1023  static const bool HAS_FUNCTION_SELECTOR = false;
1024 
1025  float offset_uncert[3] = {0};
1026  uint16_t valid_flags = 0;
1027 
1028 };
1029 void insert(Serializer& serializer, const AntennaOffsetCorrectionUncertainty& self);
1030 void extract(Serializer& serializer, AntennaOffsetCorrectionUncertainty& self);
1031 
1041 
1043 {
1046 
1047  static const bool HAS_FUNCTION_SELECTOR = false;
1048 
1049  uint8_t receiver_id = 0;
1050  float offset[3] = {0};
1051  uint16_t valid_flags = 0;
1052 
1053 };
1054 void insert(Serializer& serializer, const MultiAntennaOffsetCorrection& self);
1055 void extract(Serializer& serializer, MultiAntennaOffsetCorrection& self);
1056 
1064 
1066 {
1069 
1070  static const bool HAS_FUNCTION_SELECTOR = false;
1071 
1072  uint8_t receiver_id = 0;
1073  float offset_uncert[3] = {0};
1074  uint16_t valid_flags = 0;
1075 
1076 };
1077 void insert(Serializer& serializer, const MultiAntennaOffsetCorrectionUncertainty& self);
1079 
1089 
1091 {
1094 
1095  static const bool HAS_FUNCTION_SELECTOR = false;
1096 
1097  float hard_iron[3] = {0};
1098  uint16_t valid_flags = 0;
1099 
1100 };
1101 void insert(Serializer& serializer, const MagnetometerOffset& self);
1102 void extract(Serializer& serializer, MagnetometerOffset& self);
1103 
1113 
1115 {
1118 
1119  static const bool HAS_FUNCTION_SELECTOR = false;
1120 
1121  float soft_iron[9] = {0};
1122  uint16_t valid_flags = 0;
1123 
1124 };
1125 void insert(Serializer& serializer, const MagnetometerMatrix& self);
1126 void extract(Serializer& serializer, MagnetometerMatrix& self);
1127 
1135 
1137 {
1140 
1141  static const bool HAS_FUNCTION_SELECTOR = false;
1142 
1143  float hard_iron_uncertainty[3] = {0};
1144  uint16_t valid_flags = 0;
1145 
1146 };
1147 void insert(Serializer& serializer, const MagnetometerOffsetUncertainty& self);
1148 void extract(Serializer& serializer, MagnetometerOffsetUncertainty& self);
1149 
1157 
1159 {
1162 
1163  static const bool HAS_FUNCTION_SELECTOR = false;
1164 
1165  float soft_iron_uncertainty[9] = {0};
1166  uint16_t valid_flags = 0;
1167 
1168 };
1169 void insert(Serializer& serializer, const MagnetometerMatrixUncertainty& self);
1170 void extract(Serializer& serializer, MagnetometerMatrixUncertainty& self);
1171 
1178 
1180 {
1183 
1184  static const bool HAS_FUNCTION_SELECTOR = false;
1185 
1186  float covariance[9] = {0};
1187  uint16_t valid_flags = 0;
1188 
1189 };
1190 void insert(Serializer& serializer, const MagnetometerCovarianceMatrix& self);
1191 void extract(Serializer& serializer, MagnetometerCovarianceMatrix& self);
1192 
1200 
1202 {
1205 
1206  static const bool HAS_FUNCTION_SELECTOR = false;
1207 
1208  float residual[3] = {0};
1209  uint16_t valid_flags = 0;
1210 
1211 };
1212 void insert(Serializer& serializer, const MagnetometerResidualVector& self);
1213 void extract(Serializer& serializer, MagnetometerResidualVector& self);
1214 
1222 
1224 {
1227 
1228  static const bool HAS_FUNCTION_SELECTOR = false;
1229 
1230  uint8_t receiver_id = 0;
1231  float bias = 0;
1232  float bias_drift = 0;
1233  uint16_t valid_flags = 0;
1234 
1235 };
1236 void insert(Serializer& serializer, const ClockCorrection& self);
1237 void extract(Serializer& serializer, ClockCorrection& self);
1238 
1246 
1248 {
1251 
1252  static const bool HAS_FUNCTION_SELECTOR = false;
1253 
1254  uint8_t receiver_id = 0;
1255  float bias_uncertainty = 0;
1257  uint16_t valid_flags = 0;
1258 
1259 };
1260 void insert(Serializer& serializer, const ClockCorrectionUncertainty& self);
1261 void extract(Serializer& serializer, ClockCorrectionUncertainty& self);
1262 
1270 
1272 {
1275 
1276  static const bool HAS_FUNCTION_SELECTOR = false;
1277 
1278  uint8_t receiver_id = 0;
1279  float time_of_week = 0;
1281  uint8_t reserved[8] = {0};
1282 
1283 };
1284 void insert(Serializer& serializer, const GnssPosAidStatus& self);
1285 void extract(Serializer& serializer, GnssPosAidStatus& self);
1286 
1294 
1296 {
1299 
1300  static const bool HAS_FUNCTION_SELECTOR = false;
1301 
1302  float time_of_week = 0;
1304  uint8_t reserved[8] = {0};
1305 
1306 };
1307 void insert(Serializer& serializer, const GnssAttAidStatus& self);
1308 void extract(Serializer& serializer, GnssAttAidStatus& self);
1309 
1317 
1319 {
1322 
1323  static const bool HAS_FUNCTION_SELECTOR = false;
1324 
1325  enum class HeadingAidType : uint8_t
1326  {
1327  DUAL_ANTENNA = 1,
1328  EXTERNAL_MESSAGE = 2,
1329  };
1330 
1331  float time_of_week = 0;
1332  HeadingAidType type = static_cast<HeadingAidType>(0);
1333  float reserved[2] = {0};
1334 
1335 };
1336 void insert(Serializer& serializer, const HeadAidStatus& self);
1337 void extract(Serializer& serializer, HeadAidStatus& self);
1338 
1346 
1348 {
1351 
1352  static const bool HAS_FUNCTION_SELECTOR = false;
1353 
1354  double relative_position[3] = {0};
1355  uint16_t valid_flags = 0;
1356 
1357 };
1358 void insert(Serializer& serializer, const RelPosNed& self);
1359 void extract(Serializer& serializer, RelPosNed& self);
1360 
1368 
1369 struct EcefPos
1370 {
1373 
1374  static const bool HAS_FUNCTION_SELECTOR = false;
1375 
1376  double position_ecef[3] = {0};
1377  uint16_t valid_flags = 0;
1378 
1379 };
1380 void insert(Serializer& serializer, const EcefPos& self);
1381 void extract(Serializer& serializer, EcefPos& self);
1382 
1390 
1391 struct EcefVel
1392 {
1395 
1396  static const bool HAS_FUNCTION_SELECTOR = false;
1397 
1398  float velocity_ecef[3] = {0};
1399  uint16_t valid_flags = 0;
1400 
1401 };
1402 void insert(Serializer& serializer, const EcefVel& self);
1403 void extract(Serializer& serializer, EcefVel& self);
1404 
1412 
1414 {
1417 
1418  static const bool HAS_FUNCTION_SELECTOR = false;
1419 
1420  float pos_uncertainty[3] = {0};
1421  uint16_t valid_flags = 0;
1422 
1423 };
1424 void insert(Serializer& serializer, const EcefPosUncertainty& self);
1425 void extract(Serializer& serializer, EcefPosUncertainty& self);
1426 
1434 
1436 {
1439 
1440  static const bool HAS_FUNCTION_SELECTOR = false;
1441 
1442  float vel_uncertainty[3] = {0};
1443  uint16_t valid_flags = 0;
1444 
1445 };
1446 void insert(Serializer& serializer, const EcefVelUncertainty& self);
1447 void extract(Serializer& serializer, EcefVelUncertainty& self);
1448 
1456 
1458 {
1461 
1462  static const bool HAS_FUNCTION_SELECTOR = false;
1463 
1464  float time_of_week = 0;
1465  uint8_t source = 0;
1468 
1469 };
1470 void insert(Serializer& serializer, const AidingMeasurementSummary& self);
1471 void extract(Serializer& serializer, AidingMeasurementSummary& self);
1472 
1480 
1482 {
1485 
1486  static const bool HAS_FUNCTION_SELECTOR = false;
1487 
1489  uint16_t valid_flags = 0;
1490 
1491 };
1492 void insert(Serializer& serializer, const OdometerScaleFactorError& self);
1493 void extract(Serializer& serializer, OdometerScaleFactorError& self);
1494 
1502 
1504 {
1507 
1508  static const bool HAS_FUNCTION_SELECTOR = false;
1509 
1511  uint16_t valid_flags = 0;
1512 
1513 };
1514 void insert(Serializer& serializer, const OdometerScaleFactorErrorUncertainty& self);
1515 void extract(Serializer& serializer, OdometerScaleFactorErrorUncertainty& self);
1516 
1524 
1526 {
1529 
1530  static const bool HAS_FUNCTION_SELECTOR = false;
1531 
1532  enum class FixType : uint8_t
1533  {
1534  FIX_NONE = 0,
1535  FIX_DA_FLOAT = 1,
1536  FIX_DA_FIXED = 2,
1537  };
1538 
1539  struct DualAntennaStatusFlags : Bitfield<DualAntennaStatusFlags>
1540  {
1541  enum _enumType : uint16_t
1542  {
1543  NONE = 0x0000,
1544  RCV_1_DATA_VALID = 0x0001,
1545  RCV_2_DATA_VALID = 0x0002,
1547  };
1548  uint16_t value = NONE;
1549 
1551  DualAntennaStatusFlags(int val) : value((uint16_t)val) {}
1552  operator uint16_t() const { return value; }
1553  DualAntennaStatusFlags& operator=(uint16_t val) { value = val; return *this; }
1554  DualAntennaStatusFlags& operator=(int val) { value = val; return *this; }
1555  DualAntennaStatusFlags& operator|=(uint16_t val) { return *this = value | val; }
1556  DualAntennaStatusFlags& operator&=(uint16_t val) { return *this = value & val; }
1557  };
1558 
1559  float time_of_week = 0;
1560  float heading = 0;
1561  float heading_unc = 0;
1562  FixType fix_type = static_cast<FixType>(0);
1564  uint16_t valid_flags = 0;
1565 
1566 };
1567 void insert(Serializer& serializer, const GnssDualAntennaStatus& self);
1568 void extract(Serializer& serializer, GnssDualAntennaStatus& self);
1569 
1572 
1577 } // namespace data_filter
1578 } // namespace mip
1579 
Serialization class.
Definition: serialization.h:145
void insert(Serializer &serializer, const PositionLlh &self)
Definition: data_filter.cpp:32
void extract(Serializer &serializer, PositionLlh &self)
Definition: data_filter.cpp:43
FilterDynamicsMode
Definition: data_filter.hpp:114
FilterAidingMeasurementType
Definition: data_filter.hpp:167
FilterMode
Definition: data_filter.hpp:102
@ DATA_COMPENSATED_ACCELERATION
Definition: data_filter.hpp:61
@ DATA_GNSS_POS_AID_STATUS
Definition: data_filter.hpp:87
@ DATA_ACCEL_SCALE_FACTOR_UNCERTAINTY
Definition: data_filter.hpp:58
@ DATA_ATT_UNCERTAINTY_QUATERNION
Definition: data_filter.hpp:51
@ DATA_GYRO_SCALE_FACTOR
Definition: data_filter.hpp:55
@ DATA_ODOMETER_SCALE_FACTOR_ERROR
Definition: data_filter.hpp:91
@ DATA_MAG_BIAS
Definition: data_filter.hpp:59
@ DATA_MAGNETIC_MODEL
Definition: data_filter.hpp:54
@ DATA_GRAVITY_VECTOR
Definition: data_filter.hpp:52
@ DATA_VEL_UNCERTAINTY
Definition: data_filter.hpp:42
@ DATA_GYRO_SCALE_FACTOR_UNCERTAINTY
Definition: data_filter.hpp:57
@ DATA_HEAD_AID_STATUS
Definition: data_filter.hpp:89
@ DESCRIPTOR_SET
Definition: data_filter.hpp:32
@ DATA_CLOCK_CORRECTION
Definition: data_filter.hpp:78
@ DATA_ATT_MATRIX
Definition: data_filter.hpp:37
@ DATA_FILTER_TIMESTAMP
Definition: data_filter.hpp:50
@ DATA_MAG_COMPENSATION_MATRIX
Definition: data_filter.hpp:68
@ DATA_CLOCK_CORRECTION_UNCERTAINTY
Definition: data_filter.hpp:79
@ DATA_ECEF_POS
Definition: data_filter.hpp:84
@ DATA_POS_LLH
Definition: data_filter.hpp:34
@ DATA_MAG_COMPENSATION_MATRIX_UNCERTAINTY
Definition: data_filter.hpp:71
@ DATA_GYRO_BIAS
Definition: data_filter.hpp:39
@ DATA_ODOMETER_SCALE_FACTOR_ERROR_UNCERTAINTY
Definition: data_filter.hpp:92
@ DATA_ATT_EULER_ANGLES
Definition: data_filter.hpp:38
@ DATA_MAG_COVARIANCE
Definition: data_filter.hpp:72
@ DATA_MAG_SCALE_FACTOR
Definition: data_filter.hpp:65
@ DATA_ACCEL_BIAS
Definition: data_filter.hpp:40
@ DATA_GNSS_ATT_AID_STATUS
Definition: data_filter.hpp:88
@ DATA_ACCEL_SCALE_FACTOR
Definition: data_filter.hpp:56
@ DATA_MAG_BIAS_UNCERTAINTY
Definition: data_filter.hpp:60
@ DATA_POS_UNCERTAINTY
Definition: data_filter.hpp:41
@ DATA_COMPENSATED_MAGNETOMETER
Definition: data_filter.hpp:69
@ DATA_GYRO_BIAS_UNCERTAINTY
Definition: data_filter.hpp:44
@ DATA_REL_POS_NED
Definition: data_filter.hpp:86
@ DATA_MULTI_ANTENNA_OFFSET_CORRECTION_UNCERTAINTY
Definition: data_filter.hpp:81
@ DATA_FILTER_STATUS
Definition: data_filter.hpp:49
@ DATA_MAG_SCALE_FACTOR_UNCERTAINTY
Definition: data_filter.hpp:66
@ DATA_DENSITY_ALTITUDE_DATA
Definition: data_filter.hpp:64
@ DATA_MAG_RESIDUAL
Definition: data_filter.hpp:74
@ DATA_HEADING_UPDATE_STATE
Definition: data_filter.hpp:53
@ DATA_MULTI_ANTENNA_OFFSET_CORRECTION
Definition: data_filter.hpp:80
@ DATA_LINEAR_ACCELERATION
Definition: data_filter.hpp:46
@ DATA_ANTENNA_OFFSET_CORRECTION_UNCERTAINTY
Definition: data_filter.hpp:77
@ DATA_ATT_QUATERNION
Definition: data_filter.hpp:36
@ DATA_ECEF_VEL
Definition: data_filter.hpp:85
@ DATA_ATT_UNCERTAINTY_EULER
Definition: data_filter.hpp:43
@ DATA_GRAVITY_COVARIANCE
Definition: data_filter.hpp:73
@ DATA_ECEF_POS_UNCERTAINTY
Definition: data_filter.hpp:82
@ DATA_MAG_COMPENSATION_OFFSET_UNCERTAINTY
Definition: data_filter.hpp:70
@ DATA_ECEF_VEL_UNCERTAINTY
Definition: data_filter.hpp:83
@ DATA_AID_MEAS_SUMMARY
Definition: data_filter.hpp:90
@ DATA_MAG_COMPENSATION_OFFSET
Definition: data_filter.hpp:67
@ DATA_ANTENNA_OFFSET_CORRECTION
Definition: data_filter.hpp:76
@ DATA_PRESSURE_ALTITUDE_DATA
Definition: data_filter.hpp:63
@ DATA_WGS84_GRAVITY
Definition: data_filter.hpp:48
@ DATA_STANDARD_ATMOSPHERE_DATA
Definition: data_filter.hpp:62
@ DATA_GNSS_DUAL_ANTENNA_STATUS
Definition: data_filter.hpp:93
@ DATA_COMPENSATED_ANGULAR_RATE
Definition: data_filter.hpp:47
@ DATA_VEL_NED
Definition: data_filter.hpp:35
@ DATA_MAG_FILTERED_RESIDUAL
Definition: data_filter.hpp:75
@ DATA_ACCEL_BIAS_UNCERTAINTY
Definition: data_filter.hpp:45
struct mip::C::mip_interface mip_interface
State of the interface for communicating with a MIP device.
A collection of C++ classes and functions covering the full mip api.
Definition: commands_3dm.c:11
A dummy struct which is used to mark bitfield objects.
Definition: descriptors.h:95
Definition: data_filter.hpp:401
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:405
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:403
float bias[3]
(x, y, z) [meters/second^2]
Definition: data_filter.hpp:407
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:408
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:402
Definition: data_filter.hpp:518
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:522
float bias_uncert[3]
(x,y,z) [meters/second^2]
Definition: data_filter.hpp:524
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:520
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:519
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:525
Definition: data_filter.hpp:788
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:792
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:790
float scale_factor[3]
(x,y,z) [dimensionless]
Definition: data_filter.hpp:794
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:789
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:795
Definition: data_filter.hpp:810
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:812
float scale_factor_uncert[3]
(x,y,z) [dimensionless]
Definition: data_filter.hpp:816
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:814
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:811
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:817
Definition: data_filter.hpp:1458
FilterAidingMeasurementType type
(see product manual for supported types)
Definition: data_filter.hpp:1466
FilterMeasurementIndicator indicator
Definition: data_filter.hpp:1467
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1462
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1459
float time_of_week
[seconds]
Definition: data_filter.hpp:1464
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1460
uint8_t source
Definition: data_filter.hpp:1465
Definition: data_filter.hpp:997
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1001
float offset[3]
(x,y,z) [meters]
Definition: data_filter.hpp:1003
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1004
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:998
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:999
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1023
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1020
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1021
float offset_uncert[3]
(x,y,z) [meters]
Definition: data_filter.hpp:1025
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1026
Definition: data_filter.hpp:332
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:333
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:336
float dcm[9]
Matrix elements in row-major order.
Definition: data_filter.hpp:338
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:339
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:334
Definition: data_filter.hpp:300
float q[4]
Quaternion elements EQSTART q = (q_w, q_x, q_y, q_z) EQEND.
Definition: data_filter.hpp:306
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:307
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:302
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:301
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:304
Definition: data_filter.hpp:1224
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1233
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1225
float bias_drift
[seconds/second]
Definition: data_filter.hpp:1232
uint8_t receiver_id
1, 2, etc.
Definition: data_filter.hpp:1230
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1226
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1228
float bias
[seconds]
Definition: data_filter.hpp:1231
Definition: data_filter.hpp:1248
uint8_t receiver_id
1, 2, etc.
Definition: data_filter.hpp:1254
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1249
float bias_drift_uncertainty
[seconds/second]
Definition: data_filter.hpp:1256
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1250
float bias_uncertainty
[seconds]
Definition: data_filter.hpp:1255
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1257
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1252
Definition: data_filter.hpp:637
float accel[3]
(x,y,z) [meters/second^2]
Definition: data_filter.hpp:643
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:639
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:644
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:638
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:641
Definition: data_filter.hpp:659
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:660
float gyro[3]
(x, y, z) [radians/second]
Definition: data_filter.hpp:665
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:666
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:661
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:663
Definition: data_filter.hpp:973
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:977
float density_altitude
m
Definition: data_filter.hpp:979
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:980
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:974
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:975
Definition: data_filter.hpp:1370
uint16_t valid_flags
0 - invalid, 1 valid
Definition: data_filter.hpp:1377
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1371
double position_ecef[3]
[meters, ECEF]
Definition: data_filter.hpp:1376
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1374
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1372
Definition: data_filter.hpp:1414
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1421
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1416
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1415
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1418
float pos_uncertainty[3]
[meters]
Definition: data_filter.hpp:1420
Definition: data_filter.hpp:1392
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1393
float velocity_ecef[3]
[meters/second, ECEF]
Definition: data_filter.hpp:1398
uint16_t valid_flags
0 - invalid, 1 valid
Definition: data_filter.hpp:1399
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1396
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1394
Definition: data_filter.hpp:1436
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1437
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1443
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1440
float vel_uncertainty[3]
[meters/second]
Definition: data_filter.hpp:1442
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1438
Definition: data_filter.hpp:355
float pitch
[radians]
Definition: data_filter.hpp:362
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:356
float roll
[radians]
Definition: data_filter.hpp:361
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:357
float yaw
[radians]
Definition: data_filter.hpp:363
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:364
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:359
Definition: data_filter.hpp:472
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:481
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:476
float roll
[radians]
Definition: data_filter.hpp:478
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:474
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:473
float pitch
[radians]
Definition: data_filter.hpp:479
float yaw
[radians]
Definition: data_filter.hpp:480
Definition: data_filter.hpp:177
FilterMeasurementIndicator(int val)
Definition: data_filter.hpp:191
FilterMeasurementIndicator & operator|=(uint8_t val)
Definition: data_filter.hpp:195
_enumType
Definition: data_filter.hpp:179
@ USED
Definition: data_filter.hpp:182
@ ENABLED
Definition: data_filter.hpp:181
@ CONFIGURATION_ERROR
Definition: data_filter.hpp:185
@ NONE
Definition: data_filter.hpp:180
@ RESIDUAL_HIGH_WARNING
Definition: data_filter.hpp:183
@ SAMPLE_TIME_WARNING
Definition: data_filter.hpp:184
@ MAX_NUM_MEAS_EXCEEDED
Definition: data_filter.hpp:186
FilterMeasurementIndicator & operator=(uint8_t val)
Definition: data_filter.hpp:193
FilterMeasurementIndicator & operator=(int val)
Definition: data_filter.hpp:194
FilterMeasurementIndicator & operator&=(uint8_t val)
Definition: data_filter.hpp:196
FilterMeasurementIndicator()
Definition: data_filter.hpp:190
uint8_t value
Definition: data_filter.hpp:188
Definition: data_filter.hpp:122
uint16_t value
Definition: data_filter.hpp:155
FilterStatusFlags()
Definition: data_filter.hpp:157
FilterStatusFlags(int val)
Definition: data_filter.hpp:158
FilterStatusFlags & operator&=(uint16_t val)
Definition: data_filter.hpp:163
FilterStatusFlags & operator=(uint16_t val)
Definition: data_filter.hpp:160
FilterStatusFlags & operator=(int val)
Definition: data_filter.hpp:161
_enumType
Definition: data_filter.hpp:124
@ GX5_RUN_GPS_UNAVAILABLE
Definition: data_filter.hpp:129
@ GX5_RUN_MAG_SOFT_IRON_EST_HIGH_WARNING
Definition: data_filter.hpp:142
@ NONE
Definition: data_filter.hpp:125
@ GQ7_VELOCITY_WARNING
Definition: data_filter.hpp:147
@ GX5_RUN_NAN_IN_SOLUTION_WARNING
Definition: data_filter.hpp:134
@ GQ7_GNSS_CLK_WARNING
Definition: data_filter.hpp:149
@ GQ7_MOUNTING_TRANSFORM_WARNING
Definition: data_filter.hpp:151
@ GQ7_HEADING_WARNING
Definition: data_filter.hpp:145
@ GQ7_IMU_BIAS_WARNING
Definition: data_filter.hpp:148
@ GQ7_ROLL_PITCH_WARNING
Definition: data_filter.hpp:144
@ GX5_INIT_NO_ATTITUDE
Definition: data_filter.hpp:126
@ GX5_RUN_MATRIX_SINGULARITY
Definition: data_filter.hpp:130
@ GX5_RUN_ANT_OFFSET_CORRECTION_EST_HIGH_WARNING
Definition: data_filter.hpp:140
@ GX5_RUN_VELOCITY_COVARIANCE_WARNING
Definition: data_filter.hpp:132
@ GX5_RUN_ATTITUDE_COVARIANCE_WARNING
Definition: data_filter.hpp:133
@ GQ7_TIME_SYNC_WARNING
No time synchronization pulse detected.
Definition: data_filter.hpp:152
@ GQ7_POSITION_WARNING
Definition: data_filter.hpp:146
@ GX5_RUN_GYRO_SCALE_FACTOR_EST_HIGH_WARNING
Definition: data_filter.hpp:137
@ GX5_RUN_MAG_BIAS_EST_HIGH_WARNING
Definition: data_filter.hpp:139
@ GX5_RUN_ACCEL_SCALE_FACTOR_EST_HIGH_WARNING
Definition: data_filter.hpp:138
@ GX5_RUN_GYRO_BIAS_EST_HIGH_WARNING
Definition: data_filter.hpp:135
@ GX5_RUN_ACCEL_BIAS_EST_HIGH_WARNING
Definition: data_filter.hpp:136
@ GX5_INIT_NO_POSITION_VELOCITY
Definition: data_filter.hpp:127
@ GX5_RUN_IMU_UNAVAILABLE
Definition: data_filter.hpp:128
@ GQ7_FILTER_CONDITION
Definition: data_filter.hpp:143
@ GX5_RUN_MAG_HARD_IRON_EST_HIGH_WARNING
Definition: data_filter.hpp:141
@ GQ7_ANTENNA_LEVER_ARM_WARNING
Definition: data_filter.hpp:150
@ GQ7_SOLUTION_ERROR
Filter computation warning flags. If any bits 12-15 are set, and all filter outputs will be invalid.
Definition: data_filter.hpp:153
@ GX5_RUN_POSITION_COVARIANCE_WARNING
Definition: data_filter.hpp:131
FilterStatusFlags & operator|=(uint16_t val)
Definition: data_filter.hpp:162
Definition: data_filter.hpp:200
GnssAidStatusFlags(int val)
Definition: data_filter.hpp:224
GnssAidStatusFlags & operator|=(uint16_t val)
Definition: data_filter.hpp:228
_enumType
Definition: data_filter.hpp:202
@ TIGHT_COUPLING
If 1, the Kalman filter is processing raw range information from this GNSS module.
Definition: data_filter.hpp:204
@ INTEGER_FIX
If 1, the Kalman filter has an RTK integer fix from this GNSS module, indicating the best position pe...
Definition: data_filter.hpp:206
@ NONE
Definition: data_filter.hpp:203
@ GLO_L1
If 1, the Kalman filter is using GLONASS L1 measurements.
Definition: data_filter.hpp:210
@ BEI_B2
If 1, the Kalman filter is using Beidou B2 measurements (not enabled on GQ7 currently)
Definition: data_filter.hpp:216
@ GPS_L5
If 1, the Kalman filter is using GPS L5 measurements (not available on the GQ7)
Definition: data_filter.hpp:209
@ BEI_B1
If 1, the Kalman filter is using Beidou B1 measurements (not enabled on GQ7 currently)
Definition: data_filter.hpp:215
@ BEI_B3
If 1, the Kalman filter is using Beidou B3 measurements (not available on the GQ7)
Definition: data_filter.hpp:217
@ DIFFERENTIAL
If 1, the Kalman filter is processing RTK corrections from this GNSS module.
Definition: data_filter.hpp:205
@ NO_FIX
If 1, this GNSS module is reporting no position fix.
Definition: data_filter.hpp:218
@ GPS_L1
If 1, the Kalman filter is using GPS L1 measurements.
Definition: data_filter.hpp:207
@ GPS_L2
If 1, the Kalman filter is using GPS L2 measurements.
Definition: data_filter.hpp:208
@ CONFIG_ERROR
If 1, there is likely an issue with the antenna offset for this GNSS module.
Definition: data_filter.hpp:219
@ GAL_E6
If 1, the Kalman filter is using Galileo E6 measurements.
Definition: data_filter.hpp:214
@ GAL_E5
If 1, the Kalman filter is using Galileo E5 measurements.
Definition: data_filter.hpp:213
@ GLO_L2
If 1, the Kalman filter is using GLONASS L2 measurements.
Definition: data_filter.hpp:211
@ GAL_E1
If 1, the Kalman filter is using Galileo E1 measurements.
Definition: data_filter.hpp:212
GnssAidStatusFlags & operator=(int val)
Definition: data_filter.hpp:227
uint16_t value
Definition: data_filter.hpp:221
GnssAidStatusFlags()
Definition: data_filter.hpp:223
GnssAidStatusFlags & operator&=(uint16_t val)
Definition: data_filter.hpp:229
GnssAidStatusFlags & operator=(uint16_t val)
Definition: data_filter.hpp:226
Definition: data_filter.hpp:1296
float time_of_week
Last valid aiding measurement time of week [seconds] [processed instead of measured?...
Definition: data_filter.hpp:1302
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1297
uint8_t reserved[8]
Definition: data_filter.hpp:1304
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1298
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1300
GnssAidStatusFlags status
Last valid aiding measurement status bitfield.
Definition: data_filter.hpp:1303
DualAntennaStatusFlags(int val)
Definition: data_filter.hpp:1551
DualAntennaStatusFlags & operator|=(uint16_t val)
Definition: data_filter.hpp:1555
DualAntennaStatusFlags & operator&=(uint16_t val)
Definition: data_filter.hpp:1556
DualAntennaStatusFlags & operator=(uint16_t val)
Definition: data_filter.hpp:1553
DualAntennaStatusFlags & operator=(int val)
Definition: data_filter.hpp:1554
Definition: data_filter.hpp:1526
FixType fix_type
Fix type indicator.
Definition: data_filter.hpp:1562
FixType
Definition: data_filter.hpp:1533
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1564
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1528
float heading_unc
[radians]
Definition: data_filter.hpp:1561
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1527
float heading
[radians]
Definition: data_filter.hpp:1560
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1530
DualAntennaStatusFlags status_flags
Definition: data_filter.hpp:1563
float time_of_week
Last dual-antenna GNSS aiding measurement time of week [seconds].
Definition: data_filter.hpp:1559
Definition: data_filter.hpp:1272
GnssAidStatusFlags status
Aiding measurement status bitfield.
Definition: data_filter.hpp:1280
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1276
float time_of_week
Last GNSS aiding measurement time of week [seconds].
Definition: data_filter.hpp:1279
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1274
uint8_t receiver_id
Definition: data_filter.hpp:1278
uint8_t reserved[8]
Definition: data_filter.hpp:1281
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1273
Definition: data_filter.hpp:615
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:619
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:616
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:617
float gravity[3]
(x, y, z) [meters/second^2]
Definition: data_filter.hpp:621
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:622
Definition: data_filter.hpp:379
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:383
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:381
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:386
float bias[3]
(x, y, z) [radians/second]
Definition: data_filter.hpp:385
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:380
Definition: data_filter.hpp:496
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:498
float bias_uncert[3]
(x,y,z) [radians/sec]
Definition: data_filter.hpp:502
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:497
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:503
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:500
Definition: data_filter.hpp:832
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:836
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:839
float scale_factor[3]
(x,y,z) [dimensionless]
Definition: data_filter.hpp:838
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:834
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:833
Definition: data_filter.hpp:854
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:856
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:855
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:858
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:861
float scale_factor_uncert[3]
(x,y,z) [dimensionless]
Definition: data_filter.hpp:860
Definition: data_filter.hpp:1319
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1321
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1320
HeadingAidType type
1 - Dual antenna, 2 - External heading message (user supplied)
Definition: data_filter.hpp:1332
HeadingAidType
Definition: data_filter.hpp:1326
float reserved[2]
Definition: data_filter.hpp:1333
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1323
float time_of_week
Last valid aiding measurement time of week [seconds] [processed instead of measured?...
Definition: data_filter.hpp:1331
Definition: data_filter.hpp:728
uint16_t valid_flags
1 if a valid heading update was received in 2 seconds, 0 otherwise.
Definition: data_filter.hpp:746
HeadingSource source
Definition: data_filter.hpp:745
HeadingSource
Definition: data_filter.hpp:735
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:732
float heading_1sigma
[radians]
Definition: data_filter.hpp:744
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:729
float heading
[radians]
Definition: data_filter.hpp:743
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:730
Definition: data_filter.hpp:593
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:597
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:594
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:600
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:595
float accel[3]
(x,y,z) [meters/second^2]
Definition: data_filter.hpp:599
Definition: data_filter.hpp:876
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:883
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:880
float bias[3]
(x,y,z) [Gauss]
Definition: data_filter.hpp:882
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:878
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:877
Definition: data_filter.hpp:898
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:900
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:902
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:899
float bias_uncert[3]
(x,y,z) [Gauss]
Definition: data_filter.hpp:904
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:905
Definition: data_filter.hpp:762
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:763
float intensity_north
[Gauss]
Definition: data_filter.hpp:768
float intensity_east
[Gauss]
Definition: data_filter.hpp:769
float inclination
[radians]
Definition: data_filter.hpp:771
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:764
float intensity_down
[Gauss]
Definition: data_filter.hpp:770
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:766
float declination
[radians]
Definition: data_filter.hpp:772
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:773
Definition: data_filter.hpp:1180
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1181
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1184
float covariance[9]
Definition: data_filter.hpp:1186
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1182
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1187
Definition: data_filter.hpp:1115
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1119
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1122
float soft_iron[9]
Row-major [dimensionless].
Definition: data_filter.hpp:1121
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1117
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1116
Definition: data_filter.hpp:1159
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1160
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1166
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1163
float soft_iron_uncertainty[9]
Row-major [dimensionless].
Definition: data_filter.hpp:1165
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1161
Definition: data_filter.hpp:1091
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1092
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1095
float hard_iron[3]
(x,y,z) [Gauss]
Definition: data_filter.hpp:1097
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1093
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1098
Definition: data_filter.hpp:1137
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1141
float hard_iron_uncertainty[3]
(x,y,z) [Gauss]
Definition: data_filter.hpp:1143
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1144
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1138
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1139
Definition: data_filter.hpp:1202
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1209
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1203
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1204
float residual[3]
(x,y,z) [Gauss]
Definition: data_filter.hpp:1208
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1206
Definition: data_filter.hpp:1043
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1047
float offset[3]
(x,y,z) [meters]
Definition: data_filter.hpp:1050
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1051
uint8_t receiver_id
Receiver ID for the receiver to which the antenna is attached.
Definition: data_filter.hpp:1049
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1045
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1044
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1070
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1068
float offset_uncert[3]
(x,y,z) [meters]
Definition: data_filter.hpp:1073
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1067
uint8_t receiver_id
Receiver ID for the receiver to which the antenna is attached.
Definition: data_filter.hpp:1072
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1074
Definition: data_filter.hpp:1482
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1483
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1484
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1486
float scale_factor_error
[dimensionless]
Definition: data_filter.hpp:1488
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1489
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1506
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1505
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1511
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1508
float scale_factor_error_uncertainty
[dimensionless]
Definition: data_filter.hpp:1510
Definition: data_filter.hpp:244
double longitude
[degrees]
Definition: data_filter.hpp:251
double ellipsoid_height
[meters]
Definition: data_filter.hpp:252
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:246
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:248
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:245
uint16_t valid_flags
0 - Invalid, 1 - valid
Definition: data_filter.hpp:253
double latitude
[degrees]
Definition: data_filter.hpp:250
Definition: data_filter.hpp:423
float down
[meters]
Definition: data_filter.hpp:431
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:425
float north
[meters]
Definition: data_filter.hpp:429
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:432
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:424
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:427
float east
[meters]
Definition: data_filter.hpp:430
Definition: data_filter.hpp:952
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:954
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:953
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:956
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:959
float pressure_altitude
[meters]
Definition: data_filter.hpp:958
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:682
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:683
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:688
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:685
float q[4]
[dimensionless]
Definition: data_filter.hpp:687
Definition: data_filter.hpp:1348
double relative_position[3]
[meters, NED]
Definition: data_filter.hpp:1354
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:1349
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:1355
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:1352
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:1350
Definition: data_filter.hpp:922
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:923
float geometric_altitude
Input into calculation [meters].
Definition: data_filter.hpp:928
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:933
float standard_temperature
[degC]
Definition: data_filter.hpp:930
float geopotential_altitude
[meters]
Definition: data_filter.hpp:929
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:924
float standard_pressure
[milliBar]
Definition: data_filter.hpp:931
float standard_density
[kilogram/meter^3]
Definition: data_filter.hpp:932
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:926
Definition: data_filter.hpp:569
FilterMode filter_state
Device-specific filter state. Please consult the user manual for definition.
Definition: data_filter.hpp:575
FilterDynamicsMode dynamics_mode
Device-specific dynamics mode. Please consult the user manual for definition.
Definition: data_filter.hpp:576
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:570
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:573
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:571
FilterStatusFlags status_flags
Device-specific status flags. Please consult the user manual for definition.
Definition: data_filter.hpp:577
Definition: data_filter.hpp:546
uint16_t week_number
GPS Week Number since 1980 [weeks].
Definition: data_filter.hpp:553
double tow
GPS Time of Week [seconds].
Definition: data_filter.hpp:552
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:554
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:547
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:548
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:550
Definition: data_filter.hpp:268
uint16_t valid_flags
0 - Invalid, 1 - valid
Definition: data_filter.hpp:277
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:270
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:272
float down
[meters/second]
Definition: data_filter.hpp:276
float north
[meters/second]
Definition: data_filter.hpp:274
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:269
float east
[meters/second]
Definition: data_filter.hpp:275
Definition: data_filter.hpp:447
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:451
float north
[meters/second]
Definition: data_filter.hpp:453
float east
[meters/second]
Definition: data_filter.hpp:454
float down
[meters/second]
Definition: data_filter.hpp:455
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:449
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:448
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:456
Definition: data_filter.hpp:703
static const uint8_t DESCRIPTOR_SET
Definition: data_filter.hpp:704
float magnitude
[meters/second^2]
Definition: data_filter.hpp:709
static const bool HAS_FUNCTION_SELECTOR
Definition: data_filter.hpp:707
static const uint8_t FIELD_DESCRIPTOR
Definition: data_filter.hpp:705
uint16_t valid_flags
0 - invalid, 1 - valid
Definition: data_filter.hpp:710