Developmental Flight Test Instrumentation
rio.hh
Go to the documentation of this file.
1 
9 #pragma once
10 
11 
12 // stdlib
13 #include <vector>
14 // 3rd party
15 #include <QByteArray>
16 #include <QDebug>
17 #include <QObject>
18 // dfti
19 #include "sensor/serialsensor.hh"
20 #include "settings/settings.hh"
21 #include "util/util.hh"
22 
23 
25 #define ONE_BYTE 2
26 
27 
28 namespace dfti {
29 
30 
32 const char rioSep = '$';
34 const char rioTerm = '\n';
36 const QString rioStart{"$$$"};
38 const QString rioTermStr{"\r\n"};
39 
40 
42 
49 bool validateRIOChecksum(QByteArray pkt);
50 
51 
53 struct RIOData
54 {
56  std::vector<float> values;
57 };
58 
59 
61 
68 class RIO : public SerialSensor
69 {
70  Q_OBJECT;
71 
72 public:
74 
78  explicit RIO(Settings *_settings, QObject* _parent = nullptr);
79 
80 public slots:
82  void readData(void);
83 
84 signals:
86  void measurementUpdate(RIOData data);
87 
88 private:
90 
96  QByteArray _buf;
97 
99  RIOData data;
100 };
101 
102 
103 }; // namespace dfti
Serial IO Sensor interface.
Base class for interfacing with sensors over a serial port (UART/RS-232).
Definition: serialsensor.hh:28
bool validateRIOChecksum(QByteArray pkt)
Validate the RIO packet checksum.
Definition: rio.cc:98
std::vector< float > values
Vector of RIO values.
Definition: rio.hh:56
Definition: autopilot.cc:12
const QString rioTermStr
RIO packet terminator string.
Definition: rio.hh:38
Settings manager.
Definition: settings.hh:30
Serial driver to acquire data from a generic Remote I/O device.
Definition: rio.hh:68
Structure to hold control effector data.
Definition: rio.hh:53
const char rioSep
RIO packet separator.
Definition: rio.hh:32
const char rioTerm
RIO packet terminator.
Definition: rio.hh:34
const QString rioStart
RIO packet start.
Definition: rio.hh:36
DFTI settings manager interface.
Utility functions.