Line data Source code
1 : // SPDX-FileCopyrightText: 2022-2023 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 GenericAccessService; 26 : class MultimeterService; 27 : class StatusService; 28 : 29 : class PokitDevicePrivate; 30 : 31 : class QTPOKIT_EXPORT PokitDevice : public QObject 32 : { 33 408 : Q_OBJECT 34 : 35 : public: 36 : explicit PokitDevice(const QBluetoothDeviceInfo &deviceInfo, QObject * parent = nullptr); 37 : explicit PokitDevice(QLowEnergyController * controller, QObject * parent = nullptr); 38 : virtual ~PokitDevice(); 39 : 40 : QLowEnergyController * controller(); 41 : const QLowEnergyController * controller() const; 42 : 43 : CalibrationService * calibration(); 44 : DataLoggerService * dataLogger(); 45 : DeviceInfoService * deviceInformation(); 46 : DsoService * dso(); 47 : GenericAccessService * genericAccess(); 48 : MultimeterService * multimeter(); 49 : StatusService * status(); 50 : 51 : static QString serviceToString(const QBluetoothUuid &uuid); 52 : static QString charcteristicToString(const QBluetoothUuid &uuid); 53 : 54 : public slots: 55 : 56 : signals: 57 : 58 : protected: 59 : /// \cond internal 60 : PokitDevicePrivate * d_ptr; ///< Internal d-pointer. 61 : PokitDevice(PokitDevicePrivate * const d, QObject * const parent); 62 : /// \endcond 63 : 64 : private: 65 1324 : Q_DECLARE_PRIVATE(PokitDevice) 66 : Q_DISABLE_COPY(PokitDevice) 67 : friend class TestPokitDevice; 68 : }; 69 : 70 : QTPOKIT_END_NAMESPACE 71 : 72 : #endif // QTPOKIT_POKITDEVICE_H