Developmental Flight Test Instrumentation
uadc.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 <QObject>
16 // dfti
17 #include "sensor/serialsensor.hh"
18 #include "settings/settings.hh"
19 #include "util/util.hh"
20 
21 
22 namespace dfti {
23 
24 
26 const char uadcTerm = '\n';
28 const quint8 uadcPktLen = 56;
30 const quint8 uadcPktCksumPos = 53;
32 const quint8 uadcPktIasPos = 7;
34 const quint8 uadcPktIasLen = 5;
36 const quint8 uadcPktAoAPos = 14;
38 const quint8 uadcPktAoALen = 6;
40 const quint8 uadcPktAoSPos = 22;
42 const quint8 uadcPktAoSLen = 6;
44 const quint8 uadcPktAltPos = 30;
46 const quint8 uadcPktAltLen = 5;
48 const quint8 uadcPktPtPos = 37;
50 const quint8 uadcPktPtLen = 6;
52 const quint8 uadcPktPsPos = 45;
54 const quint8 uadcPktPsLen = 6;
55 
56 
58 
65 bool validateUADCChecksum(QByteArray pkt);
66 
67 
69 struct uADCData
70 {
72  quint32 id = 0;
74 
79  float iasMps = 0;
81 
84  float aoaDeg = 0;
86 
89  float aosDeg = 0;
91  quint16 altM = 0;
93  quint32 ptPa = 0;
95  quint32 psPa = 0;
96 };
97 
98 
100 
116 class uADC : public SerialSensor
117 {
118  Q_OBJECT;
119 
120 public:
122 
126  explicit uADC(Settings *_settings, QObject* _parent = nullptr);
127 
128 public slots:
130  void readData(void);
131 
132 signals:
134  void measurementUpdate(uADCData data);
135 
136 private:
138 
144  QByteArray _buf;
145 
147  uADCData data;
148 };
149 
150 
151 }; // namespace dfti
const quint8 uadcPktIasPos
uADC packet velocity byte start position.
Definition: uadc.hh:32
Serial IO Sensor interface.
const quint8 uadcPktIasLen
uADC packet velocity byte length.
Definition: uadc.hh:34
const quint8 uadcPktAoSPos
uADC packet AoS byte start position.
Definition: uadc.hh:40
Base class for interfacing with sensors over a serial port (UART/RS-232).
Definition: serialsensor.hh:28
Structure to hold uADC data.
Definition: uadc.hh:69
const char uadcTerm
uADC packet terminator.
Definition: uadc.hh:26
const quint8 uadcPktAoSLen
uADC packet AoS byte length.
Definition: uadc.hh:42
const quint8 uadcPktPtLen
uADC packet total pressure byte length.
Definition: uadc.hh:50
const quint8 uadcPktAoAPos
uADC packet AoA byte start position.
Definition: uadc.hh:36
const quint8 uadcPktPtPos
uADC packet total pressure byte start position.
Definition: uadc.hh:48
Definition: autopilot.cc:12
float iasMps
Indicated Airspeed, meters / second.
Definition: uadc.hh:79
Settings manager.
Definition: settings.hh:30
quint16 altM
Pressure altitude, meters.
Definition: uadc.hh:91
float aosDeg
Sideslip Angle, degrees.
Definition: uadc.hh:89
const quint8 uadcPktPsPos
uADC packet static pressure byte start position.
Definition: uadc.hh:52
const quint8 uadcPktLen
uADC packet length.
Definition: uadc.hh:28
quint32 ptPa
Total Pressure, Pa.
Definition: uadc.hh:93
float aoaDeg
Angle-of-Attack, degrees.
Definition: uadc.hh:84
const quint8 uadcPktCksumPos
uADC packet checksum pos.
Definition: uadc.hh:30
const quint8 uadcPktAltPos
uADC packet altitude byte start position.
Definition: uadc.hh:44
DFTI settings manager interface.
const quint8 uadcPktAoALen
uADC packet AoA byte length.
Definition: uadc.hh:38
const quint8 uadcPktPsLen
uADC packet static pressure byte length.
Definition: uadc.hh:54
quint32 psPa
Static Pressure, Pa.
Definition: uadc.hh:95
Utility functions.
const quint8 uadcPktAltLen
uADC packet altitude byte length.
Definition: uadc.hh:46
bool validateUADCChecksum(QByteArray pkt)
Validate the uADC packet checksum.
Definition: uadc.cc:109
Serial driver to acquire data from a Micro Air Data Computer.
Definition: uadc.hh:116