VectorNav C++ Library
sensors.h
1 #ifndef _VNSENSORS_SENSORS_H_
2 #define _VNSENSORS_SENSORS_H_
3 
4 #if PYTHON
5  #include "boostpython.h"
6 #endif
7 
8 #include <string>
9 #include <vector>
10 
11 #include "int.h"
12 #include "nocopy.h"
13 #include "packetfinder.h"
14 #include "export.h"
15 #include "registers.h"
16 
17 #if PYTHON
18  #include "vn/event.h"
19 #endif
20 
21 namespace vn {
22 
23 namespace xplat {
24  class IPort;
25 }
26 namespace sensors {
27 
29 struct sensor_error : public std::exception
30 {
31 private:
32  sensor_error();
33 
34 public:
35 
38  explicit sensor_error(protocol::uart::SensorError e);
39 
41  sensor_error(const sensor_error& e);
42 
43  ~sensor_error() throw();
44 
48  char const* what() const throw();
49 
51  protocol::uart::SensorError error;
52 
53 private:
54  char *_errorMessage;
55 };
56 
58 class vn_proglib_DLLEXPORT VnSensor : private util::NoCopy
59 {
60 
61 public:
62 
63  enum Family
64  {
68  VnSensor_Family_Vn300
69  };
70 
71  #if PYTHON
72  typedef Event<protocol::uart::Packet&, size_t, xplat::TimeStamp> AsyncPacketReceivedEvent;
73  #endif
74 
83  typedef void(*RawDataReceivedHandler)(void* userData, const char* rawData, size_t length, size_t runningIndex);
84 
93  typedef void(*PossiblePacketFoundHandler)(void* userData, protocol::uart::Packet& possiblePacket, size_t packetStartRunningIndex);
94 
107  typedef void(*AsyncPacketReceivedHandler)(void* userData, protocol::uart::Packet& asyncPacket, size_t packetStartRunningIndex);
108 
120  typedef void(*ErrorPacketReceivedHandler)(void* userData, protocol::uart::Packet& errorPacket, size_t packetStartRunningIndex);
121 
123  static std::vector<uint32_t> supportedBaudrates();
124 
125  VnSensor();
126 
127  ~VnSensor();
128 
134  uint32_t baudrate();
135 
139  std::string port();
140 
145 
150  protocol::uart::ErrorDetectionMode sendErrorDetectionMode();
151 
157  void setSendErrorDetectionMode(protocol::uart::ErrorDetectionMode mode);
158 
162  bool isConnected();
163 
168  uint16_t responseTimeoutMs();
169 
174  void setResponseTimeoutMs(uint16_t timeout);
175 
179  uint16_t retransmitDelayMs();
180 
184  void setRetransmitDelayMs(uint16_t delay);
185 
187 
191  bool verifySensorConnectivity();
192 
197  void connect(const std::string &portName, uint32_t baudrate);
198 
211  void connect(xplat::IPort* port);
212 
217  void disconnect();
218 
227  std::string transaction(std::string toSend);
228 
254  std::string send(
255  std::string toSend,
256  bool waitForReply = true,
257  protocol::uart::ErrorDetectionMode errorDetectionMode = protocol::uart::ERRORDETECTIONMODE_CHECKSUM);
258 
263  void tare(bool waitForReply = true);
264 
269  void setGyroBias(bool waitForReply = true);
270 
276  void magneticDisturbancePresent(bool disturbancePresent, bool waitForReply = true);
277 
283  void accelerationDisturbancePresent(bool disturbancePresent, bool waitForReply = true);
284 
289  void writeSettings(bool waitForReply = true);
290 
296  void restoreFactorySettings(bool waitForReply = true);
297 
302  void reset(bool waitForReply = true);
303 
308  void changeBaudRate(uint32_t baudrate);
309 
315  //static void determineDeviceFamily(std::string portName, uint32_t baudrate);
316 
321  Family determineDeviceFamily();
322 
327  static Family determineDeviceFamily(std::string modelNumber);
328 
334 
341  void registerRawDataReceivedHandler(void* userData, RawDataReceivedHandler handler);
342 
343  #if PL150
344  //Event event
345  #else
346  #if PYTHON
347 
348  PyObject* registerRawDataReceivedHandler(PyObject* callable);
349 
350  #endif
351  #endif
352 
354  void unregisterRawDataReceivedHandler();
355 
362  void registerPossiblePacketFoundHandler(void* userData, PossiblePacketFoundHandler handler);
363 
365  void unregisterPossiblePacketFoundHandler();
366 
373  void registerAsyncPacketReceivedHandler(void* userData, AsyncPacketReceivedHandler handler);
374 
375  #if PL150
376  //packet, index, timestamp
377  //Event<protocol::uart::Packet&, size_t, size_t> eventAsyncPacketRecieved;
378  #if PYTHON
379  AsyncPacketReceivedEvent eventAsyncPacketReceived;
380  #endif
381 
382  #else
383  #if PYTHON
384  PyObject* registerAsyncPacketReceivedHandler(PyObject* callable);
385  #endif
386  #endif
387 
389  void unregisterAsyncPacketReceivedHandler();
390 
397  void registerErrorPacketReceivedHandler(void* userData, ErrorPacketReceivedHandler handler);
398 
400  void unregisterErrorPacketReceivedHandler();
401 
403 
409 
413  BinaryOutputRegister readBinaryOutput1();
414 
419  void writeBinaryOutput1(BinaryOutputRegister &fields, bool waitForReply = true);
420 
424  BinaryOutputRegister readBinaryOutput2();
425 
430  void writeBinaryOutput2(BinaryOutputRegister &fields, bool waitForReply = true);
431 
435  BinaryOutputRegister readBinaryOutput3();
436 
441  void writeBinaryOutput3(BinaryOutputRegister &fields, bool waitForReply = true);
442 
443 
448  uint32_t readSerialBaudRate(uint8_t port);
449 
455  void writeSerialBaudRate(const uint32_t &baudrate, uint8_t port, bool waitForReply = true);
456 
461  protocol::uart::AsciiAsync readAsyncDataOutputType(uint8_t port);
462 
468  void writeAsyncDataOutputType(protocol::uart::AsciiAsync ador, uint8_t port, bool waitForReply = true);
469 
474  uint32_t readAsyncDataOutputFrequency(uint8_t port);
475 
481  void writeAsyncDataOutputFrequency(const uint32_t &adof, uint8_t port, bool waitForReply = true);
482 
486  InsBasicConfigurationRegisterVn200 readInsBasicConfigurationVn200();
487 
492  void writeInsBasicConfigurationVn200(InsBasicConfigurationRegisterVn200 &fields, bool waitForReply = true);
493 
499  void writeInsBasicConfigurationVn200(
500  protocol::uart::Scenario scenario,
501  const uint8_t &ahrsAiding,
502  bool waitForReply = true);
503 
507  InsBasicConfigurationRegisterVn300 readInsBasicConfigurationVn300();
508 
513  void writeInsBasicConfigurationVn300(InsBasicConfigurationRegisterVn300 &fields, bool waitForReply = true);
514 
521  void writeInsBasicConfigurationVn300(
522  protocol::uart::Scenario scenario,
523  const uint8_t &ahrsAiding,
524  const uint8_t &estBaseline,
525  bool waitForReply = true);
526 
530  std::string readUserTag();
531 
536  void writeUserTag(const std::string &tag, bool waitForReply = true);
537 
541  std::string readModelNumber();
542 
546  uint32_t readHardwareRevision();
547 
551  uint32_t readSerialNumber();
552 
556  std::string readFirmwareVersion();
557 
561  uint32_t readSerialBaudRate();
562 
567  void writeSerialBaudRate(const uint32_t &baudrate, bool waitForReply = true);
568 
572  protocol::uart::AsciiAsync readAsyncDataOutputType();
573 
578  void writeAsyncDataOutputType(protocol::uart::AsciiAsync ador, bool waitForReply = true);
579 
583  uint32_t readAsyncDataOutputFrequency();
584 
589  void writeAsyncDataOutputFrequency(const uint32_t &adof, bool waitForReply = true);
590 
594  vn::math::vec3f readYawPitchRoll();
595 
599  vn::math::vec4f readAttitudeQuaternion();
600 
604  QuaternionMagneticAccelerationAndAngularRatesRegister readQuaternionMagneticAccelerationAndAngularRates();
605 
609  vn::math::vec3f readMagneticMeasurements();
610 
614  vn::math::vec3f readAccelerationMeasurements();
615 
619  vn::math::vec3f readAngularRateMeasurements();
620 
624  MagneticAccelerationAndAngularRatesRegister readMagneticAccelerationAndAngularRates();
625 
629  MagneticAndGravityReferenceVectorsRegister readMagneticAndGravityReferenceVectors();
630 
635  void writeMagneticAndGravityReferenceVectors(MagneticAndGravityReferenceVectorsRegister &fields, bool waitForReply = true);
636 
642  void writeMagneticAndGravityReferenceVectors(
643  const vn::math::vec3f &magRef,
644  const vn::math::vec3f &accRef,
645  bool waitForReply = true);
646 
650  FilterMeasurementsVarianceParametersRegister readFilterMeasurementsVarianceParameters();
651 
656  void writeFilterMeasurementsVarianceParameters(FilterMeasurementsVarianceParametersRegister &fields, bool waitForReply = true);
657 
665  void writeFilterMeasurementsVarianceParameters(
666  const float &angularWalkVariance,
667  const vn::math::vec3f &angularRateVariance,
668  const vn::math::vec3f &magneticVariance,
669  const vn::math::vec3f &accelerationVariance,
670  bool waitForReply = true);
671 
675  MagnetometerCompensationRegister readMagnetometerCompensation();
676 
681  void writeMagnetometerCompensation(MagnetometerCompensationRegister &fields, bool waitForReply = true);
682 
688  void writeMagnetometerCompensation(
689  const vn::math::mat3f &c,
690  const vn::math::vec3f &b,
691  bool waitForReply = true);
692 
696  FilterActiveTuningParametersRegister readFilterActiveTuningParameters();
697 
702  void writeFilterActiveTuningParameters(FilterActiveTuningParametersRegister &fields, bool waitForReply = true);
703 
711  void writeFilterActiveTuningParameters(
712  const float &magneticDisturbanceGain,
713  const float &accelerationDisturbanceGain,
714  const float &magneticDisturbanceMemory,
715  const float &accelerationDisturbanceMemory,
716  bool waitForReply = true);
717 
721  AccelerationCompensationRegister readAccelerationCompensation();
722 
727  void writeAccelerationCompensation(AccelerationCompensationRegister &fields, bool waitForReply = true);
728 
734  void writeAccelerationCompensation(
735  const vn::math::mat3f &c,
736  const vn::math::vec3f &b,
737  bool waitForReply = true);
738 
742  vn::math::mat3f readReferenceFrameRotation();
743 
748  void writeReferenceFrameRotation(const vn::math::mat3f &c, bool waitForReply = true);
749 
753  YawPitchRollMagneticAccelerationAndAngularRatesRegister readYawPitchRollMagneticAccelerationAndAngularRates();
754 
758  CommunicationProtocolControlRegister readCommunicationProtocolControl();
759 
764  void writeCommunicationProtocolControl(CommunicationProtocolControlRegister &fields, bool waitForReply = true);
765 
776  void writeCommunicationProtocolControl(
777  protocol::uart::CountMode serialCount,
778  protocol::uart::StatusMode serialStatus,
779  protocol::uart::CountMode spiCount,
780  protocol::uart::StatusMode spiStatus,
781  protocol::uart::ChecksumMode serialChecksum,
782  protocol::uart::ChecksumMode spiChecksum,
783  protocol::uart::ErrorMode errorMode,
784  bool waitForReply = true);
785 
789  SynchronizationControlRegister readSynchronizationControl();
790 
795  void writeSynchronizationControl(SynchronizationControlRegister &fields, bool waitForReply = true);
796 
807  void writeSynchronizationControl(
808  protocol::uart::SyncInMode syncInMode,
809  protocol::uart::SyncInEdge syncInEdge,
810  const uint16_t &syncInSkipFactor,
811  protocol::uart::SyncOutMode syncOutMode,
812  protocol::uart::SyncOutPolarity syncOutPolarity,
813  const uint16_t &syncOutSkipFactor,
814  const uint32_t &syncOutPulseWidth,
815  bool waitForReply = true);
816 
820  SynchronizationStatusRegister readSynchronizationStatus();
821 
826  void writeSynchronizationStatus(SynchronizationStatusRegister &fields, bool waitForReply = true);
827 
834  void writeSynchronizationStatus(
835  const uint32_t &syncInCount,
836  const uint32_t &syncInTime,
837  const uint32_t &syncOutCount,
838  bool waitForReply = true);
839 
843  FilterBasicControlRegister readFilterBasicControl();
844 
849  void writeFilterBasicControl(FilterBasicControlRegister &fields, bool waitForReply = true);
850 
859  void writeFilterBasicControl(
860  protocol::uart::MagneticMode magMode,
861  protocol::uart::ExternalSensorMode extMagMode,
862  protocol::uart::ExternalSensorMode extAccMode,
863  protocol::uart::ExternalSensorMode extGyroMode,
864  const vn::math::vec3f &gyroLimit,
865  bool waitForReply = true);
866 
870  VpeBasicControlRegister readVpeBasicControl();
871 
876  void writeVpeBasicControl(VpeBasicControlRegister &fields, bool waitForReply = true);
877 
885  void writeVpeBasicControl(
886  protocol::uart::VpeEnable enable,
887  protocol::uart::HeadingMode headingMode,
888  protocol::uart::VpeMode filteringMode,
889  protocol::uart::VpeMode tuningMode,
890  bool waitForReply = true);
891 
895  VpeMagnetometerBasicTuningRegister readVpeMagnetometerBasicTuning();
896 
901  void writeVpeMagnetometerBasicTuning(VpeMagnetometerBasicTuningRegister &fields, bool waitForReply = true);
902 
909  void writeVpeMagnetometerBasicTuning(
910  const vn::math::vec3f &baseTuning,
911  const vn::math::vec3f &adaptiveTuning,
912  const vn::math::vec3f &adaptiveFiltering,
913  bool waitForReply = true);
914 
918  VpeMagnetometerAdvancedTuningRegister readVpeMagnetometerAdvancedTuning();
919 
924  void writeVpeMagnetometerAdvancedTuning(VpeMagnetometerAdvancedTuningRegister &fields, bool waitForReply = true);
925 
934  void writeVpeMagnetometerAdvancedTuning(
935  const vn::math::vec3f &minFiltering,
936  const vn::math::vec3f &maxFiltering,
937  const float &maxAdaptRate,
938  const float &disturbanceWindow,
939  const float &maxTuning,
940  bool waitForReply = true);
941 
945  VpeAccelerometerBasicTuningRegister readVpeAccelerometerBasicTuning();
946 
951  void writeVpeAccelerometerBasicTuning(VpeAccelerometerBasicTuningRegister &fields, bool waitForReply = true);
952 
959  void writeVpeAccelerometerBasicTuning(
960  const vn::math::vec3f &baseTuning,
961  const vn::math::vec3f &adaptiveTuning,
962  const vn::math::vec3f &adaptiveFiltering,
963  bool waitForReply = true);
964 
968  VpeAccelerometerAdvancedTuningRegister readVpeAccelerometerAdvancedTuning();
969 
974  void writeVpeAccelerometerAdvancedTuning(VpeAccelerometerAdvancedTuningRegister &fields, bool waitForReply = true);
975 
984  void writeVpeAccelerometerAdvancedTuning(
985  const vn::math::vec3f &minFiltering,
986  const vn::math::vec3f &maxFiltering,
987  const float &maxAdaptRate,
988  const float &disturbanceWindow,
989  const float &maxTuning,
990  bool waitForReply = true);
991 
995  VpeGyroBasicTuningRegister readVpeGyroBasicTuning();
996 
1001  void writeVpeGyroBasicTuning(VpeGyroBasicTuningRegister &fields, bool waitForReply = true);
1002 
1009  void writeVpeGyroBasicTuning(
1010  const vn::math::vec3f &angularWalkVariance,
1011  const vn::math::vec3f &baseTuning,
1012  const vn::math::vec3f &adaptiveTuning,
1013  bool waitForReply = true);
1014 
1018  vn::math::vec3f readFilterStartupGyroBias();
1019 
1024  void writeFilterStartupGyroBias(const vn::math::vec3f &bias, bool waitForReply = true);
1025 
1029  MagnetometerCalibrationControlRegister readMagnetometerCalibrationControl();
1030 
1035  void writeMagnetometerCalibrationControl(MagnetometerCalibrationControlRegister &fields, bool waitForReply = true);
1036 
1043  void writeMagnetometerCalibrationControl(
1044  protocol::uart::HsiMode hsiMode,
1045  protocol::uart::HsiOutput hsiOutput,
1046  const uint8_t &convergeRate,
1047  bool waitForReply = true);
1048 
1052  CalculatedMagnetometerCalibrationRegister readCalculatedMagnetometerCalibration();
1053 
1057  float readIndoorHeadingModeControl();
1058 
1063  void writeIndoorHeadingModeControl(const float &maxRateError, bool waitForReply = true);
1064 
1068  vn::math::vec3f readVelocityCompensationMeasurement();
1069 
1074  void writeVelocityCompensationMeasurement(const vn::math::vec3f &velocity, bool waitForReply = true);
1075 
1079  VelocityCompensationControlRegister readVelocityCompensationControl();
1080 
1085  void writeVelocityCompensationControl(VelocityCompensationControlRegister &fields, bool waitForReply = true);
1086 
1093  void writeVelocityCompensationControl(
1094  protocol::uart::VelocityCompensationMode mode,
1095  const float &velocityTuning,
1096  const float &rateTuning,
1097  bool waitForReply = true);
1098 
1102  VelocityCompensationStatusRegister readVelocityCompensationStatus();
1103 
1107  ImuMeasurementsRegister readImuMeasurements();
1108 
1112  GpsConfigurationRegister readGpsConfiguration();
1113 
1118  void writeGpsConfiguration(GpsConfigurationRegister &fields, bool waitForReply = true);
1119 
1125  void writeGpsConfiguration(
1126  protocol::uart::GpsMode mode,
1127  protocol::uart::PpsSource ppsSource,
1128  bool waitForReply = true);
1129 
1133  vn::math::vec3f readGpsAntennaOffset();
1134 
1139  void writeGpsAntennaOffset(const vn::math::vec3f &position, bool waitForReply = true);
1140 
1144  GpsSolutionLlaRegister readGpsSolutionLla();
1145 
1149  GpsSolutionEcefRegister readGpsSolutionEcef();
1150 
1154  InsSolutionLlaRegister readInsSolutionLla();
1155 
1159  InsSolutionEcefRegister readInsSolutionEcef();
1160 
1164  InsAdvancedConfigurationRegister readInsAdvancedConfiguration();
1165 
1170  void writeInsAdvancedConfiguration(InsAdvancedConfigurationRegister &fields, bool waitForReply = true);
1171 
1190  void writeInsAdvancedConfiguration(
1191  const uint8_t &useMag,
1192  const uint8_t &usePres,
1193  const uint8_t &posAtt,
1194  const uint8_t &velAtt,
1195  const uint8_t &velBias,
1196  protocol::uart::FoamInit useFoam,
1197  const uint8_t &gpsCovType,
1198  const uint8_t &velCount,
1199  const float &velInit,
1200  const float &moveOrigin,
1201  const float &gpsTimeout,
1202  const float &deltaLimitPos,
1203  const float &deltaLimitVel,
1204  const float &minPosUncertainty,
1205  const float &minVelUncertainty,
1206  bool waitForReply = true);
1207 
1211  InsStateLlaRegister readInsStateLla();
1212 
1216  InsStateEcefRegister readInsStateEcef();
1217 
1221  StartupFilterBiasEstimateRegister readStartupFilterBiasEstimate();
1222 
1227  void writeStartupFilterBiasEstimate(StartupFilterBiasEstimateRegister &fields, bool waitForReply = true);
1228 
1235  void writeStartupFilterBiasEstimate(
1236  const vn::math::vec3f &gyroBias,
1237  const vn::math::vec3f &accelBias,
1238  const float &pressureBias,
1239  bool waitForReply = true);
1240 
1244  DeltaThetaAndDeltaVelocityRegister readDeltaThetaAndDeltaVelocity();
1245 
1249  DeltaThetaAndDeltaVelocityConfigurationRegister readDeltaThetaAndDeltaVelocityConfiguration();
1250 
1255  void writeDeltaThetaAndDeltaVelocityConfiguration(DeltaThetaAndDeltaVelocityConfigurationRegister &fields, bool waitForReply = true);
1256 
1263  void writeDeltaThetaAndDeltaVelocityConfiguration(
1264  protocol::uart::IntegrationFrame integrationFrame,
1265  protocol::uart::CompensationMode gyroCompensation,
1266  protocol::uart::CompensationMode accelCompensation,
1267  bool waitForReply = true);
1268 
1272  ReferenceVectorConfigurationRegister readReferenceVectorConfiguration();
1273 
1278  void writeReferenceVectorConfiguration(ReferenceVectorConfigurationRegister &fields, bool waitForReply = true);
1279 
1288  void writeReferenceVectorConfiguration(
1289  const uint8_t &useMagModel,
1290  const uint8_t &useGravityModel,
1291  const uint32_t &recalcThreshold,
1292  const float &year,
1293  const vn::math::vec3d &position,
1294  bool waitForReply = true);
1295 
1299  GyroCompensationRegister readGyroCompensation();
1300 
1305  void writeGyroCompensation(GyroCompensationRegister &fields, bool waitForReply = true);
1306 
1312  void writeGyroCompensation(
1313  const vn::math::mat3f &c,
1314  const vn::math::vec3f &b,
1315  bool waitForReply = true);
1316 
1320  ImuFilteringConfigurationRegister readImuFilteringConfiguration();
1321 
1326  void writeImuFilteringConfiguration(ImuFilteringConfigurationRegister &fields, bool waitForReply = true);
1327 
1341  void writeImuFilteringConfiguration(
1342  const uint16_t &magWindowSize,
1343  const uint16_t &accelWindowSize,
1344  const uint16_t &gyroWindowSize,
1345  const uint16_t &tempWindowSize,
1346  const uint16_t &presWindowSize,
1347  protocol::uart::FilterMode magFilterMode,
1348  protocol::uart::FilterMode accelFilterMode,
1349  protocol::uart::FilterMode gyroFilterMode,
1350  protocol::uart::FilterMode tempFilterMode,
1351  protocol::uart::FilterMode presFilterMode,
1352  bool waitForReply = true);
1353 
1357  GpsCompassBaselineRegister readGpsCompassBaseline();
1358 
1363  void writeGpsCompassBaseline(GpsCompassBaselineRegister &fields, bool waitForReply = true);
1364 
1370  void writeGpsCompassBaseline(
1371  const vn::math::vec3f &position,
1372  const vn::math::vec3f &uncertainty,
1373  bool waitForReply = true);
1374 
1378  GpsCompassEstimatedBaselineRegister readGpsCompassEstimatedBaseline();
1379 
1383  ImuRateConfigurationRegister readImuRateConfiguration();
1384 
1389  void writeImuRateConfiguration(ImuRateConfigurationRegister &fields, bool waitForReply = true);
1390 
1398  void writeImuRateConfiguration(
1399  const uint16_t &imuRate,
1400  const uint16_t &navDivisor,
1401  const float &filterTargetRate,
1402  const float &filterMinRate,
1403  bool waitForReply = true);
1404 
1408  YawPitchRollTrueBodyAccelerationAndAngularRatesRegister readYawPitchRollTrueBodyAccelerationAndAngularRates();
1409 
1413  YawPitchRollTrueInertialAccelerationAndAngularRatesRegister readYawPitchRollTrueInertialAccelerationAndAngularRates();
1414 
1416 
1417  #ifdef PYTHON_WRAPPERS
1418 
1419  #endif
1420 
1421  #if PYTHON && !PL156_ORIGINAL && !PL156_FIX_ATTEMPT_1
1422 
1423  void stopRequest();
1424  bool threadStopped();
1425  void unregisterListners();
1426  void shutdownRequest();
1427  void goRequest();
1428 
1429  #endif
1430 
1431 private:
1432  struct Impl;
1433  Impl *_pi;
1434 
1435 };
1436 
1437 }
1438 }
1439 
1440 #endif
Structure representing the Velocity Compensation Status register.
Definition: registers.h:681
Structure representing the INS Basic Configuration register for a VN-200 sensor.
Definition: registers.h:960
Unknown device family.
Definition: sensors.h:65
Structure representing the VPE Gyro Basic Tuning register.
Definition: registers.h:585
Structure representing the INS Basic Configuration register for a VN-300 sensor.
Definition: registers.h:981
Template for a Euclidean vector.
Definition: vector.h:22
Structure representing the Startup Filter Bias Estimate register.
Definition: registers.h:1145
Structure representing the Yaw, Pitch, Roll, True Body Acceleration and Angular Rates register...
Definition: registers.h:1406
char const * what() const
Returns a description of the exception.
Structure representing the Acceleration Compensation register.
Definition: registers.h:250
Structure representing the Magnetometer Compensation register.
Definition: registers.h:200
Structure representing the Yaw, Pitch, Roll, True Inertial Acceleration and Angular Rates register...
Definition: registers.h:1431
Structure representing the Synchronization Status register.
Definition: registers.h:382
Structure representing the Filter Measurements Variance Parameters register.
Definition: registers.h:171
Structure representing the GPS Compass Estimated Baseline register.
Definition: registers.h:1348
Structure representing the VPE Accelerometer Basic Tuning register.
Definition: registers.h:527
Structure representing the INS Advanced Configuration register.
Definition: registers.h:1006
Structure representing the INS State - ECEF register.
Definition: registers.h:1112
Structure representing the INS Solution - ECEF register.
Definition: registers.h:911
Structure representing the GPS Solution - LLA register.
Definition: registers.h:764
Structure representing the GPS Compass Baseline register.
Definition: registers.h:1327
Interface for a simple port.
Definition: port.h:12
A device of the VectorNav VN-200 sensor family.
Definition: sensors.h:67
Template for a matrix.
Definition: matrix.h:20
Structure representing the IMU Rate Configuration register.
Definition: registers.h:1377
Family
Definition: sensors.h:63
Structure representing the INS Solution - LLA register.
Definition: registers.h:862
Structure representing the IMU Filtering Configuration register.
Definition: registers.h:1274
Structure representing the Magnetic and Gravity Reference Vectors register.
Definition: registers.h:150
Structure representing the Filter Basic Control register.
Definition: registers.h:407
Structure representing the Gyro Compensation register.
Definition: registers.h:1253
Structure representing the Yaw, Pitch, Roll, Magnetic, Acceleration and Angular Rates register...
Definition: registers.h:271
Structure representing the VPE Magnetometer Advanced Tuning register.
Definition: registers.h:494
protocol::uart::SensorError error
The associated sensor error.
Definition: sensors.h:51
Definition: mock.h:4
A timeout occurred.
Definition: exceptions.h:85
Helpful class for working with VectorNav sensors.
Definition: sensors.h:58
A device of the VectorNav VN-100 sensor family.
Definition: sensors.h:66
Structure representing the VPE Basic Control register.
Definition: registers.h:440
Structure representing the Synchronization Control register.
Definition: registers.h:341
Structure representing the GPS Configuration register.
Definition: registers.h:743
Identifies a derived class as being unable to be copied and prevents copy attempts.
Definition: nocopy.h:21
Represents an error from a VectorNav sensor.
Definition: sensors.h:29
Structure representing the GPS Solution - ECEF register.
Definition: registers.h:813
Structure representing the Quaternion, Magnetic, Acceleration and Angular Rates register.
Definition: registers.h:96
Structure representing the Magnetic, Acceleration and Angular Rates register.
Definition: registers.h:125
Definition: attitude.h:8
Structure representing the Velocity Compensation Control register.
Definition: registers.h:656
Structure representing the Calculated Magnetometer Calibration register.
Definition: registers.h:635
Structure representing the Reference Vector Configuration register.
Definition: registers.h:1220
Structure representing a Binary Output register.
Definition: registers.h:24
Structure representing the Communication Protocol Control register.
Definition: registers.h:300
Structure representing the Delta Theta and Delta Velocity Configuration register. ...
Definition: registers.h:1195
Structure representing the VPE Accelerometer Advanced Tuning register.
Definition: registers.h:552
Structure representing the VPE Magnetometer Basic Tuning register.
Definition: registers.h:469
Structure representing the Magnetometer Calibration Control register.
Definition: registers.h:610
Structure representing the INS State - LLA register.
Definition: registers.h:1079
Structure representing the Delta Theta and Delta Velocity register.
Definition: registers.h:1170
Structure representing the Filter Active Tuning Parameters register.
Definition: registers.h:221
Structure representing a UART packet received from the VectorNav sensor.
Definition: packet.h:16
Structure representing the IMU Measurements register.
Definition: registers.h:710