LCOV - code coverage report
Current view: top level - include/qtpokit - deviceinfoservice.h (source / functions) Hit Total Coverage
Project: Dokit Lines: 2 2 100.0 %
Version: Functions: 0 0 -

          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 DeviceInfoService class.
       7             :  */
       8             : 
       9             : #ifndef QTPOKIT_INFOSERVICE_H
      10             : #define QTPOKIT_INFOSERVICE_H
      11             : 
      12             : #include "abstractpokitservice.h"
      13             : 
      14             : #include <QBluetoothAddress>
      15             : #include <QBluetoothUuid>
      16             : #include <QVersionNumber>
      17             : 
      18             : QTPOKIT_BEGIN_NAMESPACE
      19             : 
      20             : class DeviceInfoServicePrivate;
      21             : 
      22             : class QTPOKIT_EXPORT DeviceInfoService : public AbstractPokitService
      23             : {
      24          20 :     Q_OBJECT
      25             : 
      26             : public:
      27             :     /// UUID of the "Device Info" service.
      28             :     static inline const QBluetoothUuid serviceUuid
      29             :         { QBluetoothUuid::ServiceClassUuid::DeviceInformation };
      30             : 
      31             :     /// Characteristics available via the `Device Info` service.
      32             :     struct QTPOKIT_EXPORT CharacteristicUuids {
      33             :         /// UUID of the `Device Info` service's `Manufacturer Name String` characterstic.
      34             :         static inline const QBluetoothUuid manufacturerName
      35             :             { QBluetoothUuid::CharacteristicType::ManufacturerNameString };
      36             : 
      37             :         /// UUID of the `Device Info` service's `Model Number String` characterstic.
      38             :         static inline const QBluetoothUuid modelNumber
      39             :             { QBluetoothUuid::CharacteristicType::ModelNumberString };
      40             : 
      41             :         /// UUID of the `Device Info` service's `Firmware Revision String` characterstic.
      42             :         static inline const QBluetoothUuid firmwareRevision
      43             :             { QBluetoothUuid::CharacteristicType::FirmwareRevisionString };
      44             : 
      45             :         /// UUID of the `Device Info` service's `Hardware Revision String` characterstic.
      46             :         static inline const QBluetoothUuid hardwareRevision
      47             :             { QBluetoothUuid::CharacteristicType::HardwareRevisionString };
      48             : 
      49             :         /// UUID of the `Device Info` service's `Software Revision String` characterstic.
      50             :         static inline const QBluetoothUuid softwareRevision
      51             :             { QBluetoothUuid::CharacteristicType::SoftwareRevisionString };
      52             : 
      53             :         /// UUID of the `Device Info` service's `Serial Number String` characterstic.
      54             :         static inline const QBluetoothUuid serialNumber
      55             :             { QBluetoothUuid::CharacteristicType::SerialNumberString };
      56             :     };
      57             : 
      58             :     DeviceInfoService(QLowEnergyController * const pokitDevice, QObject * parent = nullptr);
      59             :     ~DeviceInfoService() override;
      60             : 
      61             :     bool readCharacteristics() override;
      62             :     bool readFirmwareRevisionCharacteristic();
      63             :     bool readHardwareRevisionCharacteristic();
      64             :     bool readManufacturerCharacteristics();
      65             :     bool readModelNumberCharacteristic();
      66             :     bool readSoftwareRevisionCharacteristic();
      67             :     bool readSerialNumberCharacteristic();
      68             : 
      69             :     // All Device Info characteristics are read-only, single values.
      70             :     QString manufacturer() const;
      71             :     QString modelNumber() const;
      72             :     QString hardwareRevision() const;
      73             :     QString firmwareRevision() const;
      74             :     QString softwareRevision() const;
      75             :     QString serialNumber() const;
      76             : 
      77             : Q_SIGNALS:
      78             :     void manufacturerRead(const QString &name);
      79             :     void modelNumberRead(const QString &model);
      80             :     void hardwareRevisionRead(const QString &revision);
      81             :     void firmwareRevisionRead(const QString &revision);
      82             :     void softwareRevisionRead(const QString &revision);
      83             :     void serialNumberRead(const QString &serialNumber);
      84             : 
      85             : protected:
      86             :     /// \cond internal
      87             :     DeviceInfoService(DeviceInfoServicePrivate * const d, QObject * const parent);
      88             :     /// \endcond
      89             : 
      90             : private:
      91        2496 :     Q_DECLARE_PRIVATE(DeviceInfoService)
      92             :     Q_DISABLE_COPY(DeviceInfoService)
      93             :     friend class TestDeviceInfoService;
      94             : };
      95             : 
      96             : QTPOKIT_END_NAMESPACE
      97             : 
      98             : #endif // QTPOKIT_INFOSERVICE_H

Generated by: LCOV version 1.14