xsens_imu
XsensDriver.hpp
Go to the documentation of this file.
1 #ifndef __XSENSDRIVER_H__
2 #define __XSENSDRIVER_H__
3 
4 #include <string>
5 #include <Eigen/Geometry>
6 #include <stdint.h>
7 #include <list>
8 #include <map>
9 
10 #include "XsensTypes.hpp"
11 
12 namespace xsens_imu {
13 
14  class XsensData;
15 
16  class XsensDriver {
17  public:
18  static const int DEFAULT_SAMPLE_FREQUENCY = 100;
19 
20  XsensDriver();
21  ~XsensDriver();
22 
23  bool open(std::string const& dev);
24  bool close();
25 
27  bool setCalibrationMode();
28  int getFileHandle();
29 
40 
51 
58  bool setTimeout(const uint32_t timeout);
59 
66  void setFrequency(const uint16_t new_sample_frequency);
67 
73  uint16_t getFrequency(void);
74 
79  int getPacketCounter();
80 
81 
86  Eigen::Quaternion<double> getOrientation() const;
87 
97  Eigen::Vector3d getEulerAngles() const;
98 
103  Eigen::Vector3d getCalibratedAccData() const;
104 
105 
110  Eigen::Vector3d getCalibratedGyroData() const;
111 
112 
117  Eigen::Vector3d getCalibratedMagData() const;
118 
123  Eigen::Vector3d getRawAccData() const;
124 
129  Eigen::Vector3d getRawGyroData() const;
130 
135  Eigen::Vector3d getRawMagData() const;
136 
140  std::list<std::string> getScenarios() const;
141 
142  std::list<std::string> getAvailableScenarios();
143  bool setScenario(std::string const& name);
144 
152  bool setSyncOut(bool enable, bool pulse, bool positive);
153 
154  private:
155  XsensData* _data;
156  std::map< std::string, int > m_scenarios;
157  uint16_t last_samplectr;
158  int m_timeout;
159  int samplectr_offset;
160  unsigned short _sample_freq;
161  };
162 }
163 
164 #endif
bool setSyncOut(bool enable, bool pulse, bool positive)
Definition: XsensDriver.cpp:269
Eigen::Vector3d getCalibratedAccData() const
Definition: XsensDriver.cpp:364
void setFrequency(const uint16_t new_sample_frequency)
Definition: XsensDriver.cpp:204
Eigen::Vector3d getCalibratedMagData() const
Definition: XsensDriver.cpp:372
XsensDriver()
Definition: XsensDriver.cpp:11
Definition: XsensData.hpp:10
bool setReadingMode(enum xsens_imu::imuMode=ONLY_ORI_DATA)
Definition: XsensDriver.cpp:121
enum xsens_imu::errorCodes getReading()
Definition: XsensDriver.cpp:291
enum xsens_imu::errorCodes getReadingNonBlocking()
Definition: XsensDriver.cpp:317
bool close()
Definition: XsensDriver.cpp:25
bool open(std::string const &dev)
Definition: XsensDriver.cpp:30
std::list< std::string > getAvailableScenarios()
Definition: XsensDriver.cpp:212
int getFileHandle()
Definition: XsensDriver.cpp:63
uint16_t getFrequency(void)
Definition: XsensDriver.cpp:208
Definition: XsensTypes.hpp:15
Definition: XsensDriver.hpp:16
Eigen::Vector3d getCalibratedGyroData() const
Definition: XsensDriver.cpp:368
int getPacketCounter()
Definition: XsensDriver.cpp:346
bool setScenario(std::string const &name)
Definition: XsensDriver.cpp:239
static const int DEFAULT_SAMPLE_FREQUENCY
Definition: XsensDriver.hpp:18
errorCodes
Definition: XsensTypes.hpp:6
bool setCalibrationMode()
Definition: XsensDriver.cpp:71
bool setTimeout(const uint32_t timeout)
Definition: XsensDriver.cpp:199
std::list< std::string > getScenarios() const
Eigen::Vector3d getRawGyroData() const
Definition: XsensDriver.cpp:380
Eigen::Vector3d getEulerAngles() const
Definition: XsensDriver.cpp:360
imuMode
Definition: XsensTypes.hpp:13
Eigen::Vector3d getRawMagData() const
Definition: XsensDriver.cpp:384
Eigen::Quaternion< double > getOrientation() const
Definition: XsensDriver.cpp:355
Definition: XsensData.hpp:12
Eigen::Vector3d getRawAccData() const
Definition: XsensDriver.cpp:376
~XsensDriver()
Definition: XsensDriver.cpp:21