Line data Source code
1 : // SPDX-FileCopyrightText: 2022-2024 Paul Colby <git@colby.id.au>
2 : // SPDX-License-Identifier: LGPL-3.0-or-later
3 :
4 : /*!
5 : * \file
6 : * Declares the PokitDevice class.
7 : */
8 :
9 : #ifndef QTPOKIT_POKITDEVICE_H
10 : #define QTPOKIT_POKITDEVICE_H
11 :
12 : #include "qtpokit_global.h"
13 :
14 : #include <QBluetoothDeviceInfo>
15 : #include <QObject>
16 :
17 : class QLowEnergyController;
18 :
19 : QTPOKIT_BEGIN_NAMESPACE
20 :
21 : class CalibrationService;
22 : class DataLoggerService;
23 : class DeviceInfoService;
24 : class DsoService;
25 : class MultimeterService;
26 : class StatusService;
27 :
28 : class PokitDevicePrivate;
29 :
30 : class QTPOKIT_EXPORT PokitDevice : public QObject
31 : {
32 711 : Q_OBJECT
33 :
34 : public:
35 : explicit PokitDevice(const QBluetoothDeviceInfo &deviceInfo, QObject * parent = nullptr);
36 : explicit PokitDevice(QLowEnergyController * controller, QObject * parent = nullptr);
37 : virtual ~PokitDevice();
38 :
39 : QLowEnergyController * controller();
40 : const QLowEnergyController * controller() const;
41 :
42 : CalibrationService * calibration();
43 : DataLoggerService * dataLogger();
44 : DeviceInfoService * deviceInformation();
45 : DsoService * dso();
46 : MultimeterService * multimeter();
47 : StatusService * status();
48 :
49 : static QString serviceToString(const QBluetoothUuid &uuid);
50 : static QString charcteristicToString(const QBluetoothUuid &uuid);
51 :
52 : public Q_SLOTS:
53 :
54 : Q_SIGNALS:
55 :
56 : protected:
57 : /// \cond internal
58 : PokitDevicePrivate * d_ptr; ///< Internal d-pointer.
59 : PokitDevice(PokitDevicePrivate * const d, QObject * const parent);
60 : /// \endcond
61 :
62 : private:
63 2562 : Q_DECLARE_PRIVATE(PokitDevice)
64 : Q_DISABLE_COPY(PokitDevice)
65 : friend class TestPokitDevice;
66 : };
67 :
68 : QTPOKIT_END_NAMESPACE
69 :
70 : #endif // QTPOKIT_POKITDEVICE_H
|