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 414 : 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 1320 : 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