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

            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           38 :     Q_OBJECT
      25              : 
      26              : public:
      27              :     /// UUID of the "Device Info" service.
      28              :     static inline const QBluetoothUuid serviceUuid
      29              :         { QBluetoothUuid::ServiceClassUuid::DeviceInformation }; // 0x180a
      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 }; // 0x2a29
      36              : 
      37              :         /// UUID of the `Device Info` service's `Model Number String` characterstic.
      38              :         static inline const QBluetoothUuid modelNumber
      39              :             { QBluetoothUuid::CharacteristicType::ModelNumberString }; // 0x2a24
      40              : 
      41              :         /// UUID of the `Device Info` service's `Firmware Revision String` characterstic.
      42              :         static inline const QBluetoothUuid firmwareRevision
      43              :             { QBluetoothUuid::CharacteristicType::FirmwareRevisionString }; // 0x2a26
      44              : 
      45              :         /// UUID of the `Device Info` service's `Hardware Revision String` characterstic.
      46              :         static inline const QBluetoothUuid hardwareRevision
      47              :             { QBluetoothUuid::CharacteristicType::HardwareRevisionString }; // 0x2a27
      48              : 
      49              :         /// UUID of the `Device Info` service's `Software Revision String` characterstic.
      50              :         static inline const QBluetoothUuid softwareRevision
      51              :             { QBluetoothUuid::CharacteristicType::SoftwareRevisionString }; // 0x2a28
      52              : 
      53              :         /// UUID of the `Device Info` service's `Serial Number String` characterstic.
      54              :         static inline const QBluetoothUuid serialNumber
      55              :             { QBluetoothUuid::CharacteristicType::SerialNumberString }; // 0x2a25
      56              :     };
      57              : 
      58              :     DeviceInfoService(QLowEnergyController * const pokitDevice, QObject * parent = nullptr);
      59          990 :     ~DeviceInfoService() = default;
      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         5024 :     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 2.0-1