Dokit
Internal development documentation
|
The DataLoggerServicePrivate class provides private implementation for DataLoggerService. More...
Public Member Functions | |
DataLoggerServicePrivate (QLowEnergyController *controller, DataLoggerService *const q) | |
Public Member Functions inherited from AbstractPokitServicePrivate | |
AbstractPokitServicePrivate (const QBluetoothUuid &serviceUuid, QLowEnergyController *controller, AbstractPokitService *const q) | |
bool | createServiceObject () |
Creates an internal service object from the internal controller. | |
QLowEnergyCharacteristic | getCharacteristic (const QBluetoothUuid &uuid) const |
Get uuid characteristc from the underlying service. | |
bool | readCharacteristic (const QBluetoothUuid &uuid) |
Read the uuid characteristic. | |
bool | enableCharacteristicNotificatons (const QBluetoothUuid &uuid) |
Enables client (Pokit device) side notification for characteristic uuid. | |
bool | disableCharacteristicNotificatons (const QBluetoothUuid &uuid) |
Disables client (Pokit device) side notification for characteristic uuid. | |
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 QByteArray | encodeSettings (const DataLoggerService::Settings &settings, const bool updateIntervalIs32bit) |
Returns settings in the format Pokit devices expect. | |
static DataLoggerService::Metadata | parseMetadata (const QByteArray &value) |
Parses the Metadata value into a DataLoggerService::Metatdata struct. | |
static DataLoggerService::Samples | parseSamples (const QByteArray &value) |
Parses the Reading value into a DataLoggerService::Samples vector. | |
Static Public Member Functions inherited from AbstractPokitServicePrivate | |
static | Q_LOGGING_CATEGORY (lc, "pokit.ble.service", QtInfoMsg) |
Logging category. | |
static bool | checkSize (const QString &label, const QByteArray &data, const int minSize, const int maxSize=-1, const bool failOnMax=false) |
Returns false if data is smaller than minSize, otherwise returns failOnMax if data is bigger than maxSize, otherwise returns true . | |
static QString | toHexString (const QByteArray &data, const int maxSize=20) |
Returns up to maxSize bytes of data as a human readable hexadecimal string. | |
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 | |
void | characteristicRead (const QLowEnergyCharacteristic &characteristic, const QByteArray &value) override |
Implements AbstractPokitServicePrivate::characteristicRead to parse value, then emit a specialised signal, for each supported characteristic. | |
void | characteristicWritten (const QLowEnergyCharacteristic &characteristic, const QByteArray &newValue) override |
Implements AbstractPokitServicePrivate::characteristicWritten to parse newValue, then emit a specialised signal, for each supported characteristic. | |
void | characteristicChanged (const QLowEnergyCharacteristic &characteristic, const QByteArray &newValue) override |
Implements AbstractPokitServicePrivate::characteristicChanged to parse newValue, then emit a specialised signal, for each supported characteristic. | |
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) |
Friends | |
class | TestDataLoggerService |
Additional Inherited Members | |
Public Attributes inherited from AbstractPokitServicePrivate | |
bool | autoDiscover { true } |
Whether autodiscovery is enabled or not. | |
QLowEnergyController * | controller { nullptr } |
BLE controller to fetch the service from. | |
std::optional< PokitProduct > | pokitProduct |
The Pokit product controller is connected to. | |
QLowEnergyService * | service { nullptr } |
BLE service to read/write characteristics. | |
QBluetoothUuid | serviceUuid |
UUIDs for service. | |
Public Attributes inherited from QObject | |
typedef | QObjectList |
Protected Slots inherited from AbstractPokitServicePrivate | |
void | connected () |
Handles QLowEnergyController::connected events. | |
void | discoveryFinished () |
Handles QLowEnergyController::discoveryFinished events. | |
void | errorOccurred (const QLowEnergyService::ServiceError newError) |
Handles QLowEnergyController::errorOccurred events. | |
virtual void | serviceDiscovered (const QBluetoothUuid &newService) |
Handles QLowEnergyController::serviceDiscovered events. | |
void | stateChanged (QLowEnergyService::ServiceState newState) |
Handles QLowEnergyController::stateChanged events. | |
Protected Attributes inherited from AbstractPokitServicePrivate | |
AbstractPokitService * | q_ptr |
Internal q-pointer. | |
Properties inherited from QObject | |
objectName | |
The DataLoggerServicePrivate class provides private implementation for DataLoggerService.
Definition at line 18 of file dataloggerservice_p.h.
|
explicit |
Constructs a new DataLoggerServicePrivate object with public implementation q.
Definition at line 347 of file dataloggerservice.cpp.
|
overrideprotectedvirtual |
Implements AbstractPokitServicePrivate::characteristicChanged to parse newValue, then emit a specialised signal, for each supported characteristic.
Reimplemented from AbstractPokitServicePrivate.
Definition at line 517 of file dataloggerservice.cpp.
References AbstractPokitServicePrivate::characteristicChanged(), DataLoggerService::CharacteristicUuids::metadata, QLowEnergyCharacteristic::name(), parseMetadata(), parseSamples(), QObject::Q_EMIT(), DataLoggerService::CharacteristicUuids::reading, AbstractPokitServicePrivate::serviceUuid, DataLoggerService::CharacteristicUuids::settings, QObject::tr(), and QLowEnergyCharacteristic::uuid().
|
overrideprotectedvirtual |
Implements AbstractPokitServicePrivate::characteristicRead to parse value, then emit a specialised signal, for each supported characteristic.
Reimplemented from AbstractPokitServicePrivate.
Definition at line 455 of file dataloggerservice.cpp.
References AbstractPokitServicePrivate::characteristicRead(), DataLoggerService::CharacteristicUuids::metadata, QLowEnergyCharacteristic::name(), parseMetadata(), QObject::Q_EMIT(), DataLoggerService::CharacteristicUuids::reading, AbstractPokitServicePrivate::serviceUuid, DataLoggerService::CharacteristicUuids::settings, QObject::tr(), and QLowEnergyCharacteristic::uuid().
|
overrideprotectedvirtual |
Implements AbstractPokitServicePrivate::characteristicWritten to parse newValue, then emit a specialised signal, for each supported characteristic.
Reimplemented from AbstractPokitServicePrivate.
Definition at line 486 of file dataloggerservice.cpp.
References AbstractPokitServicePrivate::characteristicWritten(), DataLoggerService::CharacteristicUuids::metadata, QLowEnergyCharacteristic::name(), QObject::Q_EMIT(), DataLoggerService::CharacteristicUuids::reading, AbstractPokitServicePrivate::serviceUuid, DataLoggerService::CharacteristicUuids::settings, QObject::tr(), and QLowEnergyCharacteristic::uuid().
|
static |
Returns settings in the format Pokit devices expect.
If updateIntervalIs32bit is true
then the Update Interval
field will be encoded in 32-bit instead of 16.
updateInterval
is uint16
seconds (as per the Pokit API 1.00), however for Pokit Pro it's uint32
milliseconds, even though that's not officially documented anywhere. Definition at line 358 of file dataloggerservice.cpp.
References DataLoggerService::Settings::arguments, DataLoggerService::Settings::command, QDataStream::LittleEndian, DataLoggerService::Settings::mode, DataLoggerService::Settings::range, QDataStream::setByteOrder(), QDataStream::setFloatingPointPrecision(), QDataStream::SinglePrecision, QByteArray::size(), DataLoggerService::Settings::timestamp, DataLoggerService::Settings::updateInterval, and QIODevice::WriteOnly.
Referenced by DataLoggerService::setSettings().
|
static |
Parses the Metadata
value into a DataLoggerService::Metatdata struct.
updateInterval
is uint16
(as per the Pokit API 1.00), however for Pokit Pro it's uint32
, even though that's not officially documented anywhere. Also note, the doc claims 'microseconds' (ie 10^-6), but clearly the value is 'milliseconds' (ie 10^-3) for Pokit Pro, and whole seconds for Pokit Meter. Definition at line 393 of file dataloggerservice.cpp.
References QString::arg(), QByteArray::at(), AbstractPokitServicePrivate::checkSize(), QByteArray::constData(), DataLoggerService::Error, DataLoggerService::Idle, QByteArray::mid(), QByteArray::size(), QByteArray::toHex(), AbstractPokitServicePrivate::toHexString(), and QObject::tr().
Referenced by characteristicChanged(), characteristicRead(), and DataLoggerService::metadata().
|
static |
Parses the Reading
value into a DataLoggerService::Samples vector.
Definition at line 436 of file dataloggerservice.cpp.
References QVector::append(), QString::arg(), QByteArray::constData(), QByteArray::mid(), QByteArray::size(), QVector::size(), AbstractPokitServicePrivate::toHexString(), and QObject::tr().
Referenced by characteristicChanged().
|
friend |
Definition at line 42 of file dataloggerservice_p.h.