Developmental Flight Test Instrumentation
serialsensor.hh
Go to the documentation of this file.
1 
9 #pragma once
10 
11 
12 // 3rd party
13 #include <QByteArray>
14 #include <QDebug>
15 #include <QIODevice>
16 #include <QObject>
17 #include <QSerialPort>
18 #include <QSerialPortInfo>
19 // dfti
20 #include "settings/settings.hh"
21 #include "util/util.hh"
22 
23 
24 namespace dfti {
25 
26 
28 class SerialSensor : public QObject
29 {
30  Q_OBJECT;
31 
32 public:
34 
38  explicit SerialSensor(Settings *_settings, QObject* _parent = nullptr) :
39  settings(_settings), QObject(_parent) { };
40 
42  ~SerialSensor();
43 
45 
48  void configureSerial(QString _portName);
49 
51  void init();
52 
54 
57  bool isOpen(void);
58 
60 
66  virtual void open(void);
67 
69 
74  void setBaudRate(quint32 rate);
75 
77  void threadStart(void);
78 
79 public slots:
81  virtual void readData(void) = 0;
82 
83 protected:
85  Settings *settings = nullptr;
86 
88  QString portName{""};
89 
91  QSerialPort::BaudRate baudRate{QSerialPort::Baud115200};
92 
94  bool _valid_serial = false;
95 
97  QSerialPort* _port = nullptr;
98 };
99 
100 
101 }; // namespace dfti
QString portName
Serial port name.
Definition: serialsensor.hh:88
Base class for interfacing with sensors over a serial port (UART/RS-232).
Definition: serialsensor.hh:28
virtual void readData(void)=0
Slot to read in data over serial and parse complete packets.
virtual void open(void)
Opens the serial port.
Definition: serialsensor.cc:63
~SerialSensor()
Destructor.
Definition: serialsensor.cc:18
Settings * settings
Settings object.
Definition: serialsensor.hh:85
QSerialPort::BaudRate baudRate
Serial port baud rate.
Definition: serialsensor.hh:91
SerialSensor(Settings *_settings, QObject *_parent=nullptr)
Constructor.
Definition: serialsensor.hh:38
bool _valid_serial
Indicates if serial port passed validation.
Definition: serialsensor.hh:94
Definition: autopilot.cc:12
void init()
Initialize the serial port.
Definition: serialsensor.cc:38
QSerialPort * _port
Serial port object.
Definition: serialsensor.hh:97
Settings manager.
Definition: settings.hh:30
void configureSerial(QString _portName)
Set the serial port parameters.
Definition: serialsensor.cc:31
DFTI settings manager interface.
void setBaudRate(quint32 rate)
Set the serial port baud rate.
Definition: serialsensor.cc:91
bool isOpen(void)
Returns true if the serial port is open.
Definition: serialsensor.cc:84
Utility functions.
void threadStart(void)
Start the sensor in a thread.
Definition: serialsensor.cc:106