Hospital Analyser  1.0
devicemeasurementmanager.h
1 #ifndef DEVICEMEASUREMENTMANAGER_H
2 #define DEVICEMEASUREMENTMANAGER_H
3 
4 #include "Header/deviceinfo.h"
5 #include "Header/csvwriter.h"
6 
7 #include <QtCharts/QAbstractSeries>
8 #include <QtBluetooth/QLowEnergyController>
9 #include <QThreadPool>
10 
11 QT_CHARTS_USE_NAMESPACE
12 
16 class DeviceMeasurementManager : public QObject
17 {
18  Q_OBJECT
19  Q_PROPERTY(bool isConnected READ isConnected NOTIFY isConnectedChanged)
20  Q_PROPERTY(QVariant leftPedalStats READ leftPedalStats NOTIFY dataChanged)
21  Q_PROPERTY(QVariant rightPedalStats READ rightPedalStats NOTIFY dataChanged)
22 
23 public:
24  explicit DeviceMeasurementManager(QObject *parent = 0);
25  void setDeviceForMeasurement(DeviceInfo *deviceInfo);
26 
31  bool isConnected() const;
32 
37  QVariant leftPedalStats();
38 
43  QVariant rightPedalStats();
44 
45 Q_SIGNALS:
49  void dataChanged();
53  void isConnectedChanged();
54 
55 public slots:
56  void updateSeries(QAbstractSeries *series, quint8 id);
57  void disconnectFromDevice();
58 
59 
60 private slots:
61  void serviceScanDone();
62  void error(QLowEnergyController::Error e);
63  void connected();
64  void disconnected();
65  void serviceStateChanged(QLowEnergyService::ServiceState s);
66  void updatePedalData(const QLowEnergyCharacteristic /*&c*/, const QByteArray &value);
67 
68 private:
69  qreal ProcessData(quint8 B1, quint8 B2, bool singleDec);
70  void UpdateStatistics(QList<qreal>& m_pedalStats, qreal roll, qreal ay, qreal az, qreal load);
71  void UpdateList(QList<qreal>& data, QList<QPointF>& points, qreal newVal);
72  void ClearData();
73  void initDataPoints();
74 
75  QLowEnergyController *m_control;
76  QLowEnergyService *m_service;
77  QLowEnergyDescriptor m_descriptor;
78  DeviceInfo *currentDevice;
79 
80  /*Left pedal*/
81  QList<QPointF> rollPoints_left;
82  QList<QPointF> ayPoints_left;
83  QList<QPointF> azPoints_left;
84  QList<QPointF> loadPoints_left;
85 
86  QList<qreal> rollData_left;
87  QList<qreal> ayData_left;
88  QList<qreal> azData_left;
89  QList<qreal> loadData_left;
90 
91  /*Right pedal*/
92  QList<QPointF> rollPoints_right;
93  QList<QPointF> ayPoints_right;
94  QList<QPointF> azPoints_right;
95  QList<QPointF> loadPoints_right;
96 
97  QList<qreal> rollData_right;
98  QList<qreal> ayData_right;
99  QList<qreal> azData_right;
100  QList<qreal> loadData_right;
101 
102  QList<quint8> samples;
103 
104  /*Max-Min-Current*/
105  QList<qreal> m_leftPedalStats;
106  QList<qreal> m_rightPedalStats;
107 
108 
109  bool m_connected;
110  CSVWriter writer;
111  QThreadPool *threadPool;
112 };
113 
114 #endif // DEVICEMEASUREMENTMANAGER_H
QVariant rightPedalStats()
DeviceMeasurementManager::rightPedalStats Manages rightPedalStats property. This property provides ma...
The CSVWriter class Provides functionality to save measured data to CSV file.
Definition: csvwriter.h:11
void setDeviceForMeasurement(DeviceInfo *deviceInfo)
DeviceMeasurementManager::setDeviceForMeasurement If already connected to another device this method ...
Definition: devicemeasurementmanager.cpp:43
void updateSeries(QAbstractSeries *series, quint8 id)
DeviceMeasurementManager::updateSeries Updates plot values.
Definition: devicemeasurementmanager.cpp:295
void disconnectFromDevice()
DeviceMeasurementManager::disconnectFromDevice Disconnects from current device, saves measured data t...
Definition: devicemeasurementmanager.cpp:393
bool isConnected() const
DeviceMeasurementManager::isConnected Manages isConnected property.
void isConnectedChanged()
isConnectedChanged Emits signal when connecting state changes
QVariant leftPedalStats()
DeviceMeasurementManager::leftPedalStats Manages leftPedalStats property. This property provides maxi...
The DeviceMeasurementManager class connects to device, service and charakteristics and processes inco...
Definition: devicemeasurementmanager.h:16
void dataChanged()
dataChanged Emits signal when data in GATT charakteristics got updated from embedded device ...
The DeviceInfo class Provides information about discovered slave device.
Definition: deviceinfo.h:11