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 <QPointer>
18 #include <QSerialPort>
19 #include <QSerialPortInfo>
20 // dfti
21 #include "core/qptrutil.hh"
22 #include "settings/settings.hh"
23 #include "util/util.hh"
24 
25 
26 namespace dfti {
27 
28 
30 class SerialSensor : public QObject
31 {
32  Q_OBJECT;
33 
34 public:
36 
40  explicit SerialSensor(Settings *_settings, QObject* _parent = nullptr) :
41  settings(_settings), QObject(_parent) { };
42 
44  ~SerialSensor();
45 
47 
50  void configureSerial(QString _portName);
51 
53  void init();
54 
56 
59  bool isOpen(void);
60 
62 
68  virtual void open(void);
69 
71 
76  void setBaudRate(quint32 rate);
77 
79  void threadStart(void);
80 
81 public slots:
83  virtual void readData(void) = 0;
84 
85 protected:
87  QPointer<Settings> settings = nullptr;
88 
90  QString portName{""};
91 
93  QSerialPort::BaudRate baudRate{QSerialPort::Baud115200};
94 
96  bool _valid_serial = false;
97 
99  QPointer<QSerialPort> _port = nullptr;
100 
102 
108  QString validateSerialPort(QString _port);
109 };
110 
111 
112 }; // namespace dfti
QString portName
Serial port name.
Definition: serialsensor.hh:90
Base class for interfacing with sensors over a serial port (UART/RS-232).
Definition: serialsensor.hh:30
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:62
~SerialSensor()
Destructor.
Definition: serialsensor.cc:18
QSerialPort::BaudRate baudRate
Serial port baud rate.
Definition: serialsensor.hh:93
SerialSensor(Settings *_settings, QObject *_parent=nullptr)
Constructor.
Definition: serialsensor.hh:40
bool _valid_serial
Indicates if serial port passed validation.
Definition: serialsensor.hh:96
QPointer Utility functions.
Definition: autopilot.cc:12
void init()
Initialize the serial port.
Definition: serialsensor.cc:37
QString validateSerialPort(QString _port)
Validates a proposed serial port.
Definition: serialsensor.cc:113
QPointer< Settings > settings
Settings object.
Definition: serialsensor.hh:87
Settings manager.
Definition: settings.hh:30
void configureSerial(QString _portName)
Set the serial port parameters.
Definition: serialsensor.cc:30
QPointer< QSerialPort > _port
Serial port object.
Definition: serialsensor.hh:99
DFTI settings manager interface.
void setBaudRate(quint32 rate)
Set the serial port baud rate.
Definition: serialsensor.cc:90
bool isOpen(void)
Returns true if the serial port is open.
Definition: serialsensor.cc:83
Utility functions.
void threadStart(void)
Start the sensor in a thread.
Definition: serialsensor.cc:105