LCOV - code coverage report
Current view: top level - include/qtpokit - genericaccessservice.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-2023 Paul Colby <git@colby.id.au>
       2             : // SPDX-License-Identifier: LGPL-3.0-or-later
       3             : 
       4             : /*!
       5             :  * \file
       6             :  * Declares the GenericAccessService class.
       7             :  */
       8             : 
       9             : #ifndef QTPOKIT_GENERICACCESSSERVICE_H
      10             : #define QTPOKIT_GENERICACCESSSERVICE_H
      11             : 
      12             : #include "abstractpokitservice.h"
      13             : 
      14             : #include <QBluetoothAddress>
      15             : #include <QBluetoothUuid>
      16             : #include <QVersionNumber>
      17             : 
      18             : QTPOKIT_BEGIN_NAMESPACE
      19             : 
      20             : class GenericAccessServicePrivate;
      21             : 
      22             : class QTPOKIT_EXPORT GenericAccessService : public AbstractPokitService
      23             : {
      24          18 :     Q_OBJECT
      25             : 
      26             : public:
      27             :     /// UUID of the `Generic Access` service.
      28             :     static inline const QBluetoothUuid serviceUuid { QBluetoothUuid::ServiceClassUuid::GenericAccess };
      29             : 
      30             :     /// Characteristics available via the `Generic Access` service.
      31             :     struct QTPOKIT_EXPORT CharacteristicUuids {
      32             :         /// UUID of the `Generic Access` service's `Device Name` characterstic.
      33             :         static inline const QBluetoothUuid deviceName { QBluetoothUuid::CharacteristicType::DeviceName };
      34             : 
      35             :         /// UUID of the `Generic Access` service's `Appearance` characterstic.
      36             :         static inline const QBluetoothUuid appearance { QBluetoothUuid::CharacteristicType::Appearance };
      37             :     };
      38             : 
      39             :     GenericAccessService(QLowEnergyController * const pokitDevice, QObject * parent = nullptr);
      40             :     ~GenericAccessService() override;
      41             : 
      42             :     bool readCharacteristics() override;
      43             :     bool readAppearanceCharacteristic();
      44             :     bool readDeviceNameCharacteristic();
      45             : 
      46             :     // Appearance characteristic (BLE read only).
      47             :     quint16 appearance() const;
      48             : 
      49             :     // Device Name characteristic (BLE read/write).
      50             :     QString deviceName() const;
      51             :     bool setDeviceName(const QString &name);
      52             : 
      53             : signals:
      54             :     void appearanceRead(const quint16 appearance);
      55             :     void deviceNameRead(const QString &deviceName);
      56             :     void deviceNameWritten();
      57             : 
      58             : protected:
      59             :     /// \cond internal
      60             :     GenericAccessService(GenericAccessServicePrivate * const d, QObject * const parent);
      61             :     /// \endcond
      62             : 
      63             : private:
      64         156 :     Q_DECLARE_PRIVATE(GenericAccessService)
      65             :     Q_DISABLE_COPY(GenericAccessService)
      66             :     friend class TestGenericAccessService;
      67             : };
      68             : 
      69             : QTPOKIT_END_NAMESPACE
      70             : 
      71             : #endif // QTPOKIT_GENERICACCESSSERVICE_H

Generated by: LCOV version 1.14