Dokit
Internal development documentation
Loading...
Searching...
No Matches
PokitDevice Class Reference

The PokitDevice class simplifies Pokit device access. More...

Inheritance diagram for PokitDevice:
[legend]
Collaboration diagram for PokitDevice:
[legend]

Public Member Functions

 PokitDevice (const QBluetoothDeviceInfo &deviceInfo, QObject *parent=nullptr)
 Constructs a new Pokit device controller wrapper for deviceInfo, with parent.
 
 PokitDevice (QLowEnergyController *controller, QObject *parent=nullptr)
 Constructs a new Pokit device controller wrapper for controller, with parent.
 
virtual ~PokitDevice ()
 Destroys this PokitDevice object.
 
QLowEnergyControllercontroller ()
 Returns a non-const pointer to the controller used to access the Pokit device.
 
const QLowEnergyControllercontroller () const
 Returns a const pointer to the controller used to access the Pokit device.
 
CalibrationServicecalibration ()
 Returns a pointer to a CalibrationService instance that uses this device's controller for access.
 
DataLoggerServicedataLogger ()
 Returns a pointer to a DataLoggerService instance that uses this device's controller for access.
 
DeviceInfoServicedeviceInformation ()
 Returns a pointer to DeviceInformationService instance that uses this device's controller for access.
 
DsoServicedso ()
 Returns a pointer to DsoService instance that uses this device's controller for access.
 
MultimeterServicemultimeter ()
 Returns a pointer to MultimeterService instance that uses this device's controller for access.
 
StatusServicestatus ()
 Returns a pointer to StatusService instance that uses this device's controller for access.
 
- Public Member Functions inherited from QObject
virtual const QMetaObjectmetaObject () 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)
 
QThreadthread () 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)
 
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 &regExp, Qt::FindChildOptions options) const const
 
QList< T > findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const
 
const QObjectListchildren () 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< QByteArraydynamicPropertyNames () const const
 
void destroyed (QObject *obj)
 
void objectNameChanged (const QString &objectName)
 
QObjectparent () const const
 
bool inherits (const char *className) const const
 
void deleteLater ()
 
 Q_DISABLE_COPY (Class)
 
 Q_DISABLE_MOVE (Class)
 
 Q_DISABLE_COPY_MOVE (Class)
 
qobject_cast (QObject *object)
 
qobject_cast (const QObject *object)
 
qFindChild (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QString &name)
 
QList< T > qFindChildren (const QObject *obj, const QRegExp &regExp)
 
 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 serviceToString (const QBluetoothUuid &uuid)
 Returns a human-readable name for the uuid service, or a null QString if unknonw.
 
static QString charcteristicToString (const QBluetoothUuid &uuid)
 Returns a human-readable name for the uuid characteristic, or a null QString if unknown.
 
- 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)
 

Protected Member Functions

 PokitDevice (PokitDevicePrivate *const d, QObject *const parent)
 Constructs a new Pokit device controller wrapper with parent, and private implementation d.
 
- Protected Member Functions inherited from QObject
QObjectsender () 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)
 

Protected Attributes

PokitDevicePrivated_ptr
 Internal d-pointer.
 

Friends

class TestPokitDevice
 

Additional Inherited Members

- Public Attributes inherited from QObject
typedef QObjectList
 
- Properties inherited from QObject
 objectName
 

Detailed Description

The PokitDevice class simplifies Pokit device access.

It does this by wrapping QLowEnergyController to provide:

But this class is entirely optional, in that all features of all other QtPokit classes can be used wihtout this class. It's just a (meaningful) convenience.

Definition at line 30 of file pokitdevice.h.

Constructor & Destructor Documentation

◆ PokitDevice() [1/3]

PokitDevice::PokitDevice ( const QBluetoothDeviceInfo & deviceInfo,
QObject * parent = nullptr )
explicit

Constructs a new Pokit device controller wrapper for deviceInfo, with parent.

Though not strictly necessary, deviceInfo should normally come from a PokitDiscoveryAgent instance (or a QBluetoothDeviceDiscoveryAgent), otherwise connection is likely to fail with QLowEnergyController::UnknownRemoteDeviceError.

Definition at line 43 of file pokitdevice.cpp.

45{
46 Q_D(PokitDevice);
47 d->setController(QLowEnergyController::createCentral(deviceInfo, this));
48}
The PokitDevicePrivate class provides private implementation for PokitDevice.
The PokitDevice class simplifies Pokit device access.
Definition pokitdevice.h:31
PokitDevicePrivate * d_ptr
Internal d-pointer.
Definition pokitdevice.h:58
QLowEnergyController * createCentral(const QBluetoothDeviceInfo &remoteDevice, QObject *parent)
QObject(QObject *parent)
QObject * parent() const const

References QLowEnergyController::createCentral().

Here is the call graph for this function:

◆ PokitDevice() [2/3]

PokitDevice::PokitDevice ( QLowEnergyController * controller,
QObject * parent = nullptr )
explicit

Constructs a new Pokit device controller wrapper for controller, with parent.

Definition at line 53 of file pokitdevice.cpp.

55{
56 Q_D(PokitDevice);
57 d->setController(controller);
58}
QLowEnergyController * controller()
Returns a non-const pointer to the controller used to access the Pokit device.

References controller().

Here is the call graph for this function:

◆ ~PokitDevice()

PokitDevice::~PokitDevice ( )
virtual

Destroys this PokitDevice object.

Definition at line 77 of file pokitdevice.cpp.

78{
79 delete d_ptr;
80}

References d_ptr.

◆ PokitDevice() [3/3]

PokitDevice::PokitDevice ( PokitDevicePrivate *const d,
QObject *const parent )
protected

Constructs a new Pokit device controller wrapper with parent, and private implementation d.

Derived classes using this constructor should use PokitDevicePrivate::setController to assign the BLE controller as some point.

Definition at line 67 of file pokitdevice.cpp.

68 : QObject(parent), d_ptr(d)
69{
70
71}

Member Function Documentation

◆ calibration()

CalibrationService * PokitDevice::calibration ( )

Returns a pointer to a CalibrationService instance that uses this device's controller for access.

This is a convenience function, that always returns the same pointer (for this PokitDevice instance), but the service itself is lazily created (in a threadsafe manner) on the first invocation of this function.

Definition at line 117 of file pokitdevice.cpp.

118{
119 QTPOKIT_INTERNAL_GET_SERVICE(CalibrationService, calibration);
120}
The CalibrationService class accesses the Calibrartion service of Pokit devices.
CalibrationService * calibration()
Returns a pointer to a CalibrationService instance that uses this device's controller for access.

References calibration().

Referenced by calibration(), and CalibrateCommand::getService().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ charcteristicToString()

QString PokitDevice::charcteristicToString ( const QBluetoothUuid & uuid)
static

Returns a human-readable name for the uuid characteristic, or a null QString if unknown.

This is equivalent to QBluetoothUuid::characteristicToString() but for characteristics provided by Pokit devices.

Definition at line 218 of file pokitdevice.cpp.

219{
220 static const QHash<QBluetoothUuid, QString> hash{
224
228
232
235
242
244 QBluetoothUuid::characteristicToString(QBluetoothUuid::CharacteristicType::FirmwareRevisionString) },
246 QBluetoothUuid::characteristicToString(QBluetoothUuid::CharacteristicType::HardwareRevisionString) },
248 QBluetoothUuid::characteristicToString(QBluetoothUuid::CharacteristicType::ManufacturerNameString) },
250 QBluetoothUuid::characteristicToString(QBluetoothUuid::CharacteristicType::ModelNumberString) },
252 QBluetoothUuid::characteristicToString(QBluetoothUuid::CharacteristicType::SoftwareRevisionString) },
254 QBluetoothUuid::characteristicToString(QBluetoothUuid::CharacteristicType::SerialNumberString) },
255
256 // The next two are not specifically supported by this library, but strings provided for nicer debug output.
257 { QBluetoothUuid(QStringLiteral("f7bf3564-fb6d-4e53-88a4-5e37e0326063")), tr("OTA Control") },
258 { QBluetoothUuid(QStringLiteral("984227f3-34fc-4045-a5d0-2c581f81a153")), tr("OTA Data Transfer") },
259 };
260 return hash.value(uuid);
261}
QString characteristicToString(QBluetoothUuid::CharacteristicType uuid)
QString tr(const char *sourceText, const char *disambiguation, int n)
static const QBluetoothUuid temperature
UUID of the Calibration service's Temperature characterstic.
static const QBluetoothUuid metadata
UUID of the DataLogger service's Metadata characterstic.
static const QBluetoothUuid settings
UUID of the DataLogger service's Settings characterstic.
static const QBluetoothUuid reading
UUID of the DataLogger service's Reading characterstic.
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.
static const QBluetoothUuid metadata
UUID of the DSO service's Metadata characterstic.
Definition dsoservice.h:37
static const QBluetoothUuid reading
UUID of the DSO service's Reading characterstic.
Definition dsoservice.h:40
static const QBluetoothUuid settings
UUID of the DSO service's Settings characterstic.
Definition dsoservice.h:34
static const QBluetoothUuid reading
UUID of the Multimeter service's Reading characterstic.
static const QBluetoothUuid settings
UUID of the Multimeter service's Settings characterstic.
static const QBluetoothUuid name
UUID of the Pokit Status service's Device Name characterstic.
static const QBluetoothUuid torch
UUID of the Pokit Status service's (undocumented) Torch characterstic.
static const QBluetoothUuid deviceCharacteristics
UUID of the Pokit Status service's Device Characteristics characterstic.
static const QBluetoothUuid buttonPress
UUID of the Pokit Status service's (undocumented) Button Press characterstic.
static const QBluetoothUuid flashLed
UUID of the Pokit Status service's Flash LED characterstic.
static const QBluetoothUuid status
UUID of the Pokit Status service's Status characterstic.

References StatusService::CharacteristicUuids::buttonPress, QBluetoothUuid::characteristicToString(), StatusService::CharacteristicUuids::deviceCharacteristics, DeviceInfoService::CharacteristicUuids::firmwareRevision, StatusService::CharacteristicUuids::flashLed, CalibrationService::CharacteristicUuids::getParam, DeviceInfoService::CharacteristicUuids::hardwareRevision, DeviceInfoService::CharacteristicUuids::manufacturerName, DataLoggerService::CharacteristicUuids::metadata, DsoService::CharacteristicUuids::metadata, DeviceInfoService::CharacteristicUuids::modelNumber, StatusService::CharacteristicUuids::name, DataLoggerService::CharacteristicUuids::reading, DsoService::CharacteristicUuids::reading, MultimeterService::CharacteristicUuids::reading, DeviceInfoService::CharacteristicUuids::serialNumber, CalibrationService::CharacteristicUuids::setParam, DataLoggerService::CharacteristicUuids::settings, DsoService::CharacteristicUuids::settings, MultimeterService::CharacteristicUuids::settings, DeviceInfoService::CharacteristicUuids::softwareRevision, StatusService::CharacteristicUuids::status, CalibrationService::CharacteristicUuids::temperature, StatusService::CharacteristicUuids::torch, and QObject::tr().

Referenced by AbstractPokitServicePrivate::characteristicChanged(), AbstractPokitServicePrivate::characteristicRead(), AbstractPokitServicePrivate::characteristicWritten(), AbstractPokitServicePrivate::disableCharacteristicNotificatons(), AbstractPokitServicePrivate::enableCharacteristicNotificatons(), AbstractPokitServicePrivate::getCharacteristic(), AbstractPokitServicePrivate::readCharacteristic(), and AbstractPokitServicePrivate::stateChanged().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ controller() [1/2]

QLowEnergyController * PokitDevice::controller ( )

Returns a non-const pointer to the controller used to access the Pokit device.

Definition at line 85 of file pokitdevice.cpp.

86{
87 Q_D(PokitDevice);
88 return d->controller;
89}

Referenced by DeviceCommand::deviceDiscovered(), DeviceCommand::disconnect(), PokitDevice(), and InfoCommand::serviceDetailsDiscovered().

Here is the caller graph for this function:

◆ controller() [2/2]

const QLowEnergyController * PokitDevice::controller ( ) const

Returns a const pointer to the controller used to access the Pokit device.

Definition at line 94 of file pokitdevice.cpp.

95{
96 Q_D(const PokitDevice);
97 return d->controller;
98}

◆ dataLogger()

DataLoggerService * PokitDevice::dataLogger ( )

Returns a pointer to a DataLoggerService instance that uses this device's controller for access.

This is a convenience function, that always returns the same pointer (for this PokitDevice instance), but the service itself is lazily created (in a threadsafe manner) on the first invocation of this function.

Definition at line 129 of file pokitdevice.cpp.

130{
131 QTPOKIT_INTERNAL_GET_SERVICE(DataLoggerService, dataLogger);
132}
The DataLoggerService class accesses the Data Logger service of Pokit devices.
DataLoggerService * dataLogger()
Returns a pointer to a DataLoggerService instance that uses this device's controller for access.

References dataLogger().

Referenced by dataLogger(), LoggerFetchCommand::getService(), LoggerStartCommand::getService(), and LoggerStopCommand::getService().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ deviceInformation()

DeviceInfoService * PokitDevice::deviceInformation ( )

Returns a pointer to DeviceInformationService instance that uses this device's controller for access.

This is a convenience function, that always returns the same pointer (for this PokitDevice instance), but the service itself is lazily created (in a threadsafe manner) on the first invocation of this function.

Definition at line 142 of file pokitdevice.cpp.

143{
144 QTPOKIT_INTERNAL_GET_SERVICE(DeviceInfoService, deviceInfo);
145}
The DeviceInfoService class accesses the Device Info service of Pokit devices.

Referenced by InfoCommand::getService().

Here is the caller graph for this function:

◆ dso()

DsoService * PokitDevice::dso ( )

Returns a pointer to DsoService instance that uses this device's controller for access.

This is a convenience function, that always returns the same pointer (for this PokitDevice instance), but the service itself is lazily created (in a threadsafe manner) on the first invocation of this function.

Definition at line 154 of file pokitdevice.cpp.

155{
156 QTPOKIT_INTERNAL_GET_SERVICE(DsoService, dso);
157}
The DsoService class accesses the DSO (Digital Storage Oscilloscope) service of Pokit devices.
Definition dsoservice.h:24
DsoService * dso()
Returns a pointer to DsoService instance that uses this device's controller for access.

References dso().

Referenced by dso(), and DsoCommand::getService().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ multimeter()

MultimeterService * PokitDevice::multimeter ( )

Returns a pointer to MultimeterService instance that uses this device's controller for access.

This is a convenience function, that always returns the same pointer (for this PokitDevice instance), but the service itself is lazily created (in a threadsafe manner) on the first invocation of this function.

Definition at line 166 of file pokitdevice.cpp.

167{
168 QTPOKIT_INTERNAL_GET_SERVICE(MultimeterService, multimeter);
169}
The MultimeterService class accesses the Multimeter service of Pokit devices.
MultimeterService * multimeter()
Returns a pointer to MultimeterService instance that uses this device's controller for access.

References multimeter().

Referenced by MeterCommand::getService(), and multimeter().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ serviceToString()

QString PokitDevice::serviceToString ( const QBluetoothUuid & uuid)
static

Returns a human-readable name for the uuid service, or a null QString if unknonw.

This is equivalent to QBluetoothUuid::serviceClassToString() but for services provided by Pokit devices.

Definition at line 190 of file pokitdevice.cpp.

191{
192 static const QHash<QBluetoothUuid, QString> hash{
193 { CalibrationService::serviceUuid, tr("Calibration") },
194 { DataLoggerService::serviceUuid, tr("Data Logger") },
195 { DsoService::serviceUuid, tr("DSO") },
196 { MultimeterService::serviceUuid, tr("Multimeter") },
197 { StatusService::ServiceUuids::pokitMeter, tr("Status (Pokit Meter)") },
198 { StatusService::ServiceUuids::pokitPro, tr("Status (Pokit Pro)") },
200 QBluetoothUuid::serviceClassToString(QBluetoothUuid::ServiceClassUuid::DeviceInformation) },
201
202 // The following are not specifically supported by this library, but strings provided for nicer debug output.
203 { QBluetoothUuid::ServiceClassUuid::GenericAccess,
204 QBluetoothUuid::serviceClassToString(QBluetoothUuid::ServiceClassUuid::GenericAccess) },
205 { QBluetoothUuid::ServiceClassUuid::GenericAttribute,
206 QBluetoothUuid::serviceClassToString(QBluetoothUuid::ServiceClassUuid::GenericAttribute) },
207 { QBluetoothUuid(QStringLiteral("1d14d6ee-fd63-4fa1-bfa4-8f47b42119f0")), tr("OTA Firmware Update") },
208 };
209 return hash.value(uuid);
210}
static const QBluetoothUuid serviceUuid
UUID of the Calibration service.
static const QBluetoothUuid serviceUuid
UUID of the "DataLogger" service.
static const QBluetoothUuid serviceUuid
UUID of the "Device Info" service.
static const QBluetoothUuid serviceUuid
UUID of the "DSO" service.
Definition dsoservice.h:29
static const QBluetoothUuid serviceUuid
UUID of the Multimeter service.
QString serviceClassToString(QBluetoothUuid::ServiceClassUuid uuid)
static const QBluetoothUuid pokitPro
UUID of the Pokit Pro's Pokit Status service.
static const QBluetoothUuid pokitMeter
UUID of the Pokit Meter's Pokit Status service.

References StatusService::ServiceUuids::pokitMeter, StatusService::ServiceUuids::pokitPro, QBluetoothUuid::serviceClassToString(), CalibrationService::serviceUuid, DataLoggerService::serviceUuid, DeviceInfoService::serviceUuid, DsoService::serviceUuid, MultimeterService::serviceUuid, and QObject::tr().

Referenced by AbstractPokitServicePrivate::getCharacteristic(), and PokitDevicePrivate::serviceDiscovered().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ status()

StatusService * PokitDevice::status ( )

Returns a pointer to StatusService instance that uses this device's controller for access.

This is a convenience function, that always returns the same pointer (for this PokitDevice instance), but the service itself is lazily created (in a threadsafe manner) on the first invocation of this function.

Definition at line 178 of file pokitdevice.cpp.

179{
180 QTPOKIT_INTERNAL_GET_SERVICE(StatusService, status);
181}
StatusService * status()
Returns a pointer to StatusService instance that uses this device's controller for access.
The StatusService class accesses the Pokit Status service of Pokit devices.

References status().

Referenced by FlashLedCommand::getService(), SetNameCommand::getService(), SetTorchCommand::getService(), StatusCommand::getService(), and status().

Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ TestPokitDevice

friend class TestPokitDevice
friend

Definition at line 65 of file pokitdevice.h.

Member Data Documentation

◆ d_ptr

PokitDevicePrivate* PokitDevice::d_ptr
protected

Internal d-pointer.

Definition at line 58 of file pokitdevice.h.

Referenced by ~PokitDevice().


The documentation for this class was generated from the following files: