Dokit
Internal development documentation
Loading...
Searching...
No Matches
genericaccessservice.h
Go to the documentation of this file.
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
13
14#include <QBluetoothAddress>
15#include <QBluetoothUuid>
16#include <QVersionNumber>
17
19
21
23{
24 Q_OBJECT
25
26public:
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.
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
54 void appearanceRead(const quint16 appearance);
55 void deviceNameRead(const QString &deviceName);
57
58protected:
59 /// \cond internal
61 /// \endcond
62
63private:
64 Q_DECLARE_PRIVATE(GenericAccessService)
66 friend class TestGenericAccessService;
67};
68
70
71#endif // QTPOKIT_GENERICACCESSSERVICE_H
Declares the AbstractPokitService class.
The AbstractPokitService class provides a common base for Pokit services classes.
virtual bool readCharacteristics()=0
Read all characteristics.
The GenericAccessServicePrivate class provides private implementation for GenericAccessService.
The GenericAccessService class accesses the Generic Access service of Pokit devices.
void deviceNameWritten()
This signal is emitted when the Device Name characteristic has been written successfully.
void deviceNameRead(const QString &deviceName)
This signal is emitted when the Device Name characteristic has been read successfully.
void appearanceRead(const quint16 appearance)
This signal is emitted when the Appearance characteristic has been read successfully.
Q_DISABLE_COPY(Class)
Q_SIGNALSQ_SIGNALS
#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 Generic Access service.