Witmotion IMU Library  1.3.1~dev_4684448
Open source UART communication library for sensor devices manufactured by WitMotion Shenzhen Co.,Ltd
wt901-uart.h
1 #ifndef WITMOTION_WT901
2 #define WITMOTION_WT901
3 
4 #include <QSerialPort>
5 #include <QSerialPortInfo>
6 #include <QDateTime>
7 
8 #include <iostream>
9 #include <string>
10 #include <cmath>
11 
12 #include <unistd.h>
13 
14 #include "witmotion/types.h"
15 #include "witmotion/util.h"
16 #include "witmotion/serial.h"
17 
18 namespace witmotion
19 {
20 namespace wt901
21 {
22 
24 {
25  Q_OBJECT
26 private:
28 protected:
29  virtual void CalculateAccelerationBias(witmotion_config_packet& packet, const float bias);
30 public:
31  virtual const std::set<witmotion_packet_id>* RegisteredPacketTypes();
32  virtual void Start();
33  virtual void UnlockConfiguration();
34  virtual void Calibrate();
35  virtual void CalibrateMagnetometer();
36  virtual void SetBaudRate(const QSerialPort::BaudRate& rate);
37  virtual void SetPollingRate(const int32_t hz);
38  virtual void SetOrientation(const bool vertical = false);
39  virtual void ToggleDormant();
40  virtual void SetGyroscopeAutoRecalibration(const bool recalibrate = true);
41  virtual void SetAxisTransition(const bool axis9 = true);
42  virtual void SetLED(const bool on = true);
43  virtual void SetMeasurements(const bool realtime_clock = false,
44  const bool acceleration = true,
45  const bool angular_velocity = true,
46  const bool euler_angles = true,
47  const bool magnetometer = true,
48  const bool orientation = false,
49  const bool port_status = false);
50  virtual void SetAccelerationBias(float x,
51  float y,
52  float z);
53  virtual void SetI2CAddress(const uint8_t address);
54  virtual void SetRTC(const QDateTime datetime);
55  virtual void ConfirmConfiguration();
56  QWitmotionWT901Sensor(const QString device,
57  const QSerialPort::BaudRate rate,
58  const uint32_t polling_period = 50);
59 };
60 
61 }
62 }
63 
64 #endif