Dokit
Internal development documentation
Loading...
Searching...
No Matches
deviceinfoservice.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2022-2025 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
13
14#include <QBluetoothAddress>
15#include <QBluetoothUuid>
16#include <QVersionNumber>
17
19
21
22class QTPOKIT_EXPORT DeviceInfoService : public AbstractPokitService
23{
25
26public:
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.
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 ~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
77Q_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);
84
85protected:
86 /// \cond internal
88 /// \endcond
89
90private:
91 Q_DECLARE_PRIVATE(DeviceInfoService)
94};
95
97
98#endif // QTPOKIT_INFOSERVICE_H
Declares the AbstractPokitService class.
virtual bool readCharacteristics()=0
Read all characteristics.
The DeviceInfoServicePrivate class provides private implementation for DeviceInfoService.
The DeviceInfoService class accesses the Device Info service of Pokit devices.
QString serialNumber() const
Returns the most recent value of the Device Info service's (undocumented) Serial Number characteristi...
void manufacturerRead(const QString &name)
This signal is emitted when the Manufacturer Name characteristic has been read successfully.
void modelNumberRead(const QString &model)
This signal is emitted when the Model Number characteristic has been read successfully.
void hardwareRevisionRead(const QString &revision)
This signal is emitted when the Hardware Revision characteristic has been read successfully.
void softwareRevisionRead(const QString &revision)
This signal is emitted when the Software Revision characteristic has been read successfully.
static const QBluetoothUuid serviceUuid
UUID of the "Device Info" service.
void firmwareRevisionRead(const QString &revision)
This signal is emitted when the Firmware Revision characteristic has been read successfully.
void serialNumberRead(const QString &serialNumber)
This signal is emitted when the Serial Number characteristic has been read successfully.
DeviceInfoService(QLowEnergyController *const pokitDevice, QObject *parent=nullptr)
Constructs a new Pokit service with parent.
QObject(QObject *parent)
Q_DISABLE_COPY(Class)
Q_OBJECTQ_OBJECT
QObject * parent() const const
#define QTPOKIT_BEFRIEND_TEST(Class)
Macro for befriending a related unit test class, but only when QT_TESTLIB_LIB is defined.
#define QTPOKIT_BEGIN_NAMESPACE
Macro for starting the QtPokit library's top-most namespace (if one is defined).
#define QTPOKIT_EXPORT
QtPokit library export/import macro.
#define QTPOKIT_END_NAMESPACE
Macro for ending the QtPokit library's top-most namespace (if one is defined).
Characteristics available via the Device Info service.
static const QBluetoothUuid manufacturerName
UUID of the Device Info service's Manufacturer Name String characterstic.
static const QBluetoothUuid hardwareRevision
UUID of the Device Info service's Hardware Revision String characterstic.
static const QBluetoothUuid softwareRevision
UUID of the Device Info service's Software Revision String characterstic.
static const QBluetoothUuid serialNumber
UUID of the Device Info service's Serial Number String characterstic.
static const QBluetoothUuid firmwareRevision
UUID of the Device Info service's Firmware Revision String characterstic.
static const QBluetoothUuid modelNumber
UUID of the Device Info service's Model Number String characterstic.