Dokit
Native Qt library for Pokit devices
Loading...
Searching...
No Matches
abstractpokitservice.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 AbstractPokitService class.
7 */
8
9#ifndef QTPOKIT_ABSTRACTPOKITSERVICE_H
10#define QTPOKIT_ABSTRACTPOKITSERVICE_H
11
12#include "qtpokit_global.h"
13#include "pokitproducts.h"
14
15#include <QLowEnergyService>
16#include <QObject>
17
18#include <optional>
19
21
22QTPOKIT_BEGIN_NAMESPACE
23
24class AbstractPokitServicePrivate;
25
26class QTPOKIT_EXPORT AbstractPokitService : public QObject
27{
28 Q_OBJECT
29
30public:
31 AbstractPokitService() = delete;
32 virtual ~AbstractPokitService();
33
34 virtual bool readCharacteristics() = 0;
35
36 bool autoDiscover() const;
37 void setAutoDiscover(const bool discover = true);
38
39 std::optional<PokitProduct> pokitProduct() const;
40 void setPokitProduct(const PokitProduct product);
41
42 QLowEnergyService * service();
43 const QLowEnergyService * service() const;
44
45signals:
48
49protected:
50 /// \cond internal
51 AbstractPokitServicePrivate * d_ptr; ///< Internal d-pointer.
52 AbstractPokitService(AbstractPokitServicePrivate * const d, QObject * const parent);
53 /// \endcond
54
55private:
56 Q_DECLARE_PRIVATE(AbstractPokitService)
58 friend class TestAbstractPokitService;
59};
60
61QTPOKIT_END_NAMESPACE
62
63#endif // QTPOKIT_ABSTRACTPOKITSERVICE_H
The AbstractPokitService class provides a common base for Pokit services classes.
Definition abstractpokitservice.h:27
virtual bool readCharacteristics()=0
Read all characteristics.
void serviceErrorOccurred(QLowEnergyService::ServiceError newError)
This signal is emitted whenever an error occurs on the underlying QLowEnergyService.
void serviceDetailsDiscovered()
This signal is emitted when the Pokit service details have been discovered.
Declares the PokitProduct enumeration, and related helper functions.
QTPOKIT_EXPORT PokitProduct pokitProduct(const QBluetoothDeviceInfo &info)
Returns the PokitProduct corresponding the Bluetotoh device info.
Definition pokitproducts.cpp:55
PokitProduct
Pokit products known to, and supported by, the QtPokit library.
Definition pokitproducts.h:21
Q_DISABLE_COPY(Class)
Global QtPokit library macros.