Dokit
Native Qt library for Pokit devices
|
The StatusService class accesses the Pokit Status
service of Pokit devices.
More...
Classes | |
struct | CharacteristicUuids |
Characteristics available via the Pokit Status service. More... | |
struct | DeviceCharacteristics |
Attributes included in the Device Characteristics characterstic. More... | |
struct | ServiceUuids |
UUIDs of the Pokit Status service. More... | |
struct | Status |
Attributes included in the Status characterstic. More... | |
Public Types | |
enum class | DeviceStatus : quint8 { Idle = 0 , MultimeterDcVoltage = 1 , MultimeterAcVoltage = 2 , MultimeterDcCurrent = 3 , MultimeterAcCurrent = 4 , MultimeterResistance = 5 , MultimeterDiode = 6 , MultimeterContinuity = 7 , MultimeterTemperature = 8 , DsoModeSampling = 9 , LoggerModeSampling = 10 } |
Values supported by the Status attribute of the Status characteristic. More... | |
enum class | BatteryStatus : quint8 { Low = 0 , Good = 1 } |
Values supported by the Battery Status attribute of the Status characteristic. More... | |
enum class | SwitchPosition : quint8 { Voltage = 0 , MultiMode = 1 , HighCurrent = 2 } |
Values supported by the (undocumented) Switch Position attribute of the Status characteristic. More... | |
enum class | ChargingStatus : quint8 { Discharging = 0 , Charging = 1 , Charged = 2 } |
Values supported by the (undocumented) Charging Statue attribute of the Status characteristic. More... | |
enum class | TorchStatus : quint8 { Off = 0 , On = 1 } |
Values supported by the single byte of the attribute of the (undocumented) Torch characteristic. More... | |
enum class | ButtonStatus : quint8 { Released = 0 , Pressed = 1 , Held = 2 } |
Values supported by the second byte of the attribute of the (undocumented) Button Press characteristic. More... | |
Signals | |
void | deviceCharacteristicsRead (const StatusService::DeviceCharacteristics &characteristics) |
This signal is emitted when the Device Characteristics characteristic has been read successfully. | |
void | deviceNameRead (const QString &deviceName) |
This signal is emitted when the Device Name characteristic has been read successfully. | |
void | deviceNameWritten () |
This signal is emitted when the Device Name characteristic has been written successfully. | |
void | deviceStatusRead (const StatusService::Status &status) |
This signal is emitted when the Status characteristic has been read successfully. | |
void | deviceLedFlashed () |
This signal is emitted when device's LED has flashed in response to a write of the Flash LED characteristic. | |
void | torchStatusRead (const TorchStatus &status) |
This signal is emitted when the Torch characteristic has been read successfully. | |
void | torchStatusWritten () |
This signal is emitted when the Torch characteristic has been written successfully. | |
void | buttonPressRead (const quint8 &unknown, const ButtonStatus status) |
This signal is emitted when the Button Press characteristic has been read successfully. | |
Signals inherited from AbstractPokitService | |
void | serviceDetailsDiscovered () |
This signal is emitted when the Pokit service details have been discovered. | |
void | serviceErrorOccurred (QLowEnergyService::ServiceError newError) |
This signal is emitted whenever an error occurs on the underlying QLowEnergyService. | |
Public Member Functions | |
StatusService (QLowEnergyController *const pokitDevice, QObject *parent=nullptr) | |
Constructs a new Pokit service with parent. | |
bool | readCharacteristics () override |
Read all characteristics. | |
bool | readDeviceCharacteristics () |
Read the Status service's Device Characteristics characteristic. | |
bool | readStatusCharacteristic () |
Read the Status service's Status characteristic. | |
bool | readNameCharacteristic () |
Read the Status service's Name characteristic. | |
bool | readTorchCharacteristic () |
Read the Status service's (undocumented) Torch characteristic. | |
bool | readButtonPressCharacteristic () |
Read the Status service's (undocumented) Button Press characteristic. | |
DeviceCharacteristics | deviceCharacteristics () const |
Returns the most recent value of the Status service's Device Characteristics characteristic. | |
Status | status () const |
Returns the most recent value of the Status service's Status characteristic. | |
bool | enableStatusNotifications () |
Enables client-side notifications of device status changes. | |
bool | disableStatusNotifications () |
Disables client-side notifications of device status changes. | |
QString | deviceName () const |
Returns the most recent value of the Status services's Device Name characteristic. | |
bool | setDeviceName (const QString &name) |
Set's the Pokit device's name to name. | |
bool | flashLed () |
Flash the Pokit device's LED. | |
std::optional< TorchStatus > | torchStatus () const |
Returns the most recent value of the Status services's Torch characteristic. | |
bool | setTorchStatus (const TorchStatus status) |
Set the Pokit device's torch to status. | |
bool | enableTorchStatusNotifications () |
Enables client-side notifications of torch status changes. | |
bool | disableTorchStatusNotifications () |
Disables client-side notifications of torch status changes. | |
std::optional< ButtonStatus > | buttonPress () const |
Returns the most recent value of the Status services's Button Press characteristic. | |
bool | enableButtonPressedNotifications () |
Enables client-side notifications of button presses. | |
bool | disableButtonPressedNotifications () |
Disables client-side notifications of button presses. | |
Public Member Functions inherited from AbstractPokitService | |
virtual | ~AbstractPokitService () |
Destroys this AbstractPokitService object. | |
bool | autoDiscover () const |
Returns true if autodiscovery of services and service details is enabled, false otherwise. | |
void | setAutoDiscover (const bool discover=true) |
If discover is true , autodiscovery will be attempted. | |
std::optional< PokitProduct > | pokitProduct () const |
Returns the Pokit product this service is attached to. | |
void | setPokitProduct (const PokitProduct product) |
Sets the current Pokit product. | |
QLowEnergyService * | service () |
Returns a non-const pointer to the internal service object, if any. | |
const QLowEnergyService * | service () const |
Returns a const pointer to the internal service object, if any. | |
Public Member Functions inherited from QObject | |
virtual const QMetaObject * | metaObject () const const |
QObject (QObject *parent) | |
virtual bool | event (QEvent *e) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
QString | objectName () const const |
void | setObjectName (const QString &name) |
bool | isWidgetType () const const |
bool | isWindowType () const const |
bool | signalsBlocked () const const |
bool | blockSignals (bool block) |
QThread * | thread () const const |
void | moveToThread (QThread *targetThread) |
int | startTimer (int interval, Qt::TimerType timerType) |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType) |
void | killTimer (int id) |
T | findChild (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegExp ®Exp, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const |
const QObjectList & | children () const const |
void | setParent (QObject *parent) |
void | installEventFilter (QObject *filterObj) |
void | removeEventFilter (QObject *obj) |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const |
bool | disconnect (const char *signal, const QObject *receiver, const char *method) const const |
bool | disconnect (const QObject *receiver, const char *method) const const |
void | dumpObjectTree () |
void | dumpObjectInfo () |
void | dumpObjectTree () const const |
void | dumpObjectInfo () const const |
bool | setProperty (const char *name, const QVariant &value) |
QVariant | property (const char *name) const const |
QList< QByteArray > | dynamicPropertyNames () const const |
void | destroyed (QObject *obj) |
void | objectNameChanged (const QString &objectName) |
QObject * | parent () const const |
bool | inherits (const char *className) const const |
void | deleteLater () |
Q_DISABLE_COPY (Class) | |
Q_DISABLE_MOVE (Class) | |
Q_DISABLE_COPY_MOVE (Class) | |
T | qobject_cast (QObject *object) |
T | qobject_cast (const QObject *object) |
T | qFindChild (const QObject *obj, const QString &name) |
QList< T > | qFindChildren (const QObject *obj, const QString &name) |
QList< T > | qFindChildren (const QObject *obj, const QRegExp ®Exp) |
Q_CLASSINFO (Name, Value) | |
Q_INTERFACES (...) | |
Q_PROPERTY (...) | |
Q_ENUMS (...) | |
Q_FLAGS (...) | |
Q_ENUM (...) | |
Q_FLAG (...) | |
Q_ENUM_NS (...) | |
Q_FLAG_NS (...) | |
Q_OBJECT Q_OBJECT | |
Q_GADGET Q_GADGET | |
Q_NAMESPACE Q_NAMESPACE | |
Q_NAMESPACE_EXPORT (EXPORT_MACRO) | |
Q_SIGNALS Q_SIGNALS | |
Q_SIGNAL Q_SIGNAL | |
Q_SLOTS Q_SLOTS | |
Q_SLOT Q_SLOT | |
Q_EMIT Q_EMIT | |
Q_INVOKABLE Q_INVOKABLE | |
Q_REVISION Q_REVISION | |
Q_SET_OBJECT_NAME (Object) | |
QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT | |
Static Public Member Functions | |
static QString | toString (const StatusService::DeviceStatus &status) |
Returns a string version of the status enum label. | |
static QString | toString (const StatusService::BatteryStatus &status) |
Returns a string version of the status enum label. | |
static QString | toString (const StatusService::SwitchPosition &position) |
Returns a string version of the position enum label. | |
static QString | toString (const StatusService::ChargingStatus &status) |
Returns a string version of the status enum label. | |
static QString | toString (const StatusService::TorchStatus &status) |
Returns a string version of the status enum label. | |
static QString | toString (const StatusService::ButtonStatus &status) |
Returns a string version of the status enum label. | |
Static Public Member Functions inherited from QObject | |
QString | tr (const char *sourceText, const char *disambiguation, int n) |
QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
bool | disconnect (const QMetaObject::Connection &connection) |
bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
Friends | |
class | TestStatusService |
Additional Inherited Members | |
Public Attributes inherited from QObject | |
typedef | QObjectList |
Protected Member Functions inherited from QObject | |
QObject * | sender () const const |
int | senderSignalIndex () const const |
int | receivers (const char *signal) const const |
bool | isSignalConnected (const QMetaMethod &signal) const const |
virtual void | timerEvent (QTimerEvent *event) |
virtual void | childEvent (QChildEvent *event) |
virtual void | customEvent (QEvent *event) |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
Properties inherited from QObject | |
objectName | |
The StatusService class accesses the Pokit Status
service of Pokit devices.
|
strong |
|
strong |
|
strong |
Values supported by the (undocumented) Charging Statue
attribute of the Status
characteristic.
Enumerator | |
---|---|
Discharging | Battery is dischargin. |
Charging | Battery is being charged. |
Charged | Battery is fully charged. |
|
strong |
Values supported by the Status
attribute of the Status
characteristic.
|
strong |
Values supported by the (undocumented) Switch Position
attribute of the Status
characteristic.
|
strong |
std::optional< StatusService::ButtonStatus > StatusService::buttonPress | ( | ) | const |
Returns the most recent value of the Status
services's Button Press
characteristic.
The returned value, if any, is from the underlying Bluetooth stack's cache. If no such value is currently available (eg if the device does not support the Torch characteristic), then nullopt
is returned.
|
signal |
This signal is emitted when the Button Press
characteristic has been read successfully.
StatusService::DeviceCharacteristics StatusService::deviceCharacteristics | ( | ) | const |
Returns the most recent value of the Status
service's Device Characteristics
characteristic.
The returned value, if any, is from the underlying Bluetooth stack's cache. If no such value is currently available (ie the serviceDetailsDiscovered signal has not been emitted yet), then a null result is returned, which can be checked via the returned DeviceCharacteristics::firmwareVersion, like:
|
signal |
This signal is emitted when the Device Characteristics
characteristic has been read successfully.
QString StatusService::deviceName | ( | ) | const |
Returns the most recent value of the Status
services's Device Name
characteristic.
The returned value, if any, is from the underlying Bluetooth stack's cache. If no such value is currently available (ie the serviceDetailsDiscovered signal has not been emitted yet), then a null QString is returned.
|
signal |
This signal is emitted when the Device Name
characteristic has been read successfully.
|
signal |
This signal is emitted when the Device Name
characteristic has been written successfully.
|
signal |
This signal is emitted when the Status
characteristic has been read successfully.
bool StatusService::disableButtonPressedNotifications | ( | ) |
Disables client-side notifications of button presses.
Instantaneous button press statussed can still be fetched by readButtonPressCharacteristic().
Returns true
is the request was successfully submited to the device queue, false
otherwise.
bool StatusService::disableStatusNotifications | ( | ) |
Disables client-side notifications of device status changes.
Instantaneous status can still be fetched by readStatusCharacteristic().
Returns true
is the request was successfully submited to the device queue, false
otherwise.
bool StatusService::disableTorchStatusNotifications | ( | ) |
Disables client-side notifications of torch status changes.
Instantaneous torch status can still be fetched by readTorchCharacteristic().
Returns true
is the request was successfully submited to the device queue, false
otherwise.
bool StatusService::enableButtonPressedNotifications | ( | ) |
Enables client-side notifications of button presses.
This is an alternative to manually requesting individual reads via readButtonPressCharacteristic().
Returns true
is the request was successfully submited to the device queue, false
otherwise.
Successfully read values (if any) will be emitted via the torchStatusRead() signal.
bool StatusService::enableStatusNotifications | ( | ) |
Enables client-side notifications of device status changes.
This is an alternative to manually requesting individual reads via readStatusCharacteristic().
Returns true
is the request was successfully submited to the device queue, false
otherwise.
Successfully read values (if any) will be emitted via the deviceStatusRead() signal.
bool StatusService::enableTorchStatusNotifications | ( | ) |
Enables client-side notifications of torch status changes.
This is an alternative to manually requesting individual reads via readTorchCharacteristic().
Returns true
is the request was successfully submited to the device queue, false
otherwise.
Successfully read values (if any) will be emitted via the torchStatusRead() signal.
bool StatusService::flashLed | ( | ) |
Flash the Pokit device's LED.
Returns true
if the flash request was successfully queued, false
otherwise.
Emits deviceLedFlashed() if/when the LED has flashed successfully.
0x80
. bool StatusService::readButtonPressCharacteristic | ( | ) |
Read the Status
service's (undocumented) Button Press
characteristic.
Returns true
is the read request is succesfully queued, false
otherwise (ie if the underlying controller it not yet connected to the Pokit device, or the device's services have not yet been discovered).
Emits buttonPressRead() if/when the characteristic has been read successfully.
|
overridevirtual |
Read all characteristics.
This convenience function will queue refresh requests of all characteristics supported by this service.
Relevant *Service::*Read
signals will be emitted by derived class objects as each characteristic is successfully read.
Implements AbstractPokitService.
bool StatusService::readDeviceCharacteristics | ( | ) |
Read the Status
service's Device Characteristics
characteristic.
Returns true
is the read request is succesfully queued, false
otherwise (ie if the underlying controller it not yet connected to the Pokit device, or the device's services have not yet been discovered).
Emits deviceCharacteristicsRead() if/when the characteristic has been read successfully.
bool StatusService::readNameCharacteristic | ( | ) |
Read the Status
service's Name
characteristic.
Returns true
is the read request is succesfully queued, false
otherwise (ie if the underlying controller it not yet connected to the Pokit device, or the device's services have not yet been discovered).
Emits deviceNameRead() if/when the characteristic has been read successfully.
bool StatusService::readStatusCharacteristic | ( | ) |
Read the Status
service's Status
characteristic.
Returns true
is the read request is succesfully queued, false
otherwise (ie if the underlying controller it not yet connected to the Pokit device, or the device's services have not yet been discovered).
Emits deviceStatusRead() if/when the characteristic has been read successfully.
bool StatusService::readTorchCharacteristic | ( | ) |
Read the Status
service's (undocumented) Torch
characteristic.
Returns true
is the read request is succesfully queued, false
otherwise (ie if the underlying controller it not yet connected to the Pokit device, or the device's services have not yet been discovered).
Emits torchStatusRead() if/when the characteristic has been read successfully.
bool StatusService::setDeviceName | ( | const QString & | name | ) |
Set's the Pokit device's name to name.
Returns true
if the write request was successfully queued, false
otherwise.
Emits deviceNameWritten() if/when the name has been set.
bool StatusService::setTorchStatus | ( | const TorchStatus | status | ) |
Set the Pokit device's torch to status.
Returns true
if the request was successfully queued, false
otherwise.
Emits torchStatusWritten() if/when the LED has flashed successfully.
StatusService::Status StatusService::status | ( | ) | const |
Returns the most recent value of the Status
service's Status
characteristic.
The returned value, if any, is from the underlying Bluetooth stack's cache. If no such value is currently available (ie the serviceDetailsDiscovered signal has not been emitted yet), then the returned StatusService::Status::batteryLevel member will be a quiet NaN, which can be checked like:
Not all Pokit devices support the Status::batteryStatus member, in which case the member will be initilialised to the maximum value supported by the underlying type (ie 255
) to indicate "not set"
std::optional< StatusService::TorchStatus > StatusService::torchStatus | ( | ) | const |
Returns the most recent value of the Status
services's Torch
characteristic.
The returned value, if any, is from the underlying Bluetooth stack's cache. If no such value is currently available (eg if the device does not support the Torch characteristic), then nullopt
is returned.
|
signal |
This signal is emitted when the Torch
characteristic has been read successfully.
|
signal |
This signal is emitted when the Torch
characteristic has been written successfully.