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

The CalibrationService class accesses the Calibrartion service of Pokit devices. More...

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

Classes

struct  CharacteristicUuids
 Characteristics available via the Calibration service. More...
 

Signals

void temperatureCalibrated ()
 This signal is emitted when the Temperature characteristic has been written succesfully.
 
- 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

 CalibrationService (QLowEnergyController *const pokitDevice, QObject *parent=nullptr)
 Constructs a new Pokit service with parent.
 
bool readCharacteristics () override
 Read all characteristics.
 
bool calibrateTemperature (const float ambientTemperature)
 Calibrates the Pokit device's temperature to ambientTemperature.
 
- 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< PokitProductpokitProduct () const
 Returns the Pokit product this service is attached to.
 
void setPokitProduct (const PokitProduct product)
 Sets the current Pokit product.
 
QLowEnergyServiceservice ()
 Returns a non-const pointer to the internal service object, if any.
 
const QLowEnergyServiceservice () const
 Returns a const pointer to the internal service object, if any.
 
- 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 Attributes

static const QBluetoothUuid serviceUuid { QStringLiteral("6f53be2f-780b-49b8-a7c3-e8a052b3ae2c") }
 UUID of the Calibration service.
 

Protected Member Functions

 CalibrationService (CalibrationServicePrivate *const d, QObject *const parent)
 Constructs a new Pokit service with parent, and private implementation d.
 
- Protected Member Functions inherited from AbstractPokitService
 AbstractPokitService (AbstractPokitServicePrivate *const d, QObject *const parent)
 Constructs a new Pokit service 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)
 

Friends

class TestCalibrationService
 

Additional Inherited Members

- 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)
 
- Public Attributes inherited from QObject
typedef QObjectList
 
- Protected Attributes inherited from AbstractPokitService
AbstractPokitServicePrivated_ptr
 Internal d-pointer.
 
- Properties inherited from QObject
 objectName
 

Detailed Description

The CalibrationService class accesses the Calibrartion service of Pokit devices.

Definition at line 22 of file calibrationservice.h.

Constructor & Destructor Documentation

◆ CalibrationService() [1/2]

CalibrationService::CalibrationService ( QLowEnergyController *const pokitDevice,
QObject * parent = nullptr )

Constructs a new Pokit service with parent.

Definition at line 24 of file calibrationservice.cpp.

26{
27
28}
The AbstractPokitService class provides a common base for Pokit services classes.
The CalibrationServicePrivate class provides private implementation for CalibrationService.
QObject * parent() const const

◆ CalibrationService() [2/2]

CalibrationService::CalibrationService ( CalibrationServicePrivate *const d,
QObject *const parent )
protected

Constructs a new Pokit service with parent, and private implementation d.

Definition at line 34 of file calibrationservice.cpp.

37{
38
39}

Member Function Documentation

◆ calibrateTemperature()

bool CalibrationService::calibrateTemperature ( const float ambientTemperature)

Calibrates the Pokit device's temperature to ambientTemperature.

Returns true if the write request was successfully queued, false otherwise.

Emits temperatureCalibrated() if/when the name has been set.

Definition at line 62 of file calibrationservice.cpp.

63{
64 static_assert(sizeof(float) == 4, "Pokit devices expect 32-bit floats");
65 Q_D(const CalibrationService);
66 const QLowEnergyCharacteristic characteristic =
67 d->getCharacteristic(CharacteristicUuids::temperature);
68 if (!characteristic.isValid()) {
69 return false;
70 }
71
72 const QByteArray newValue = CalibrationServicePrivate::encodeTemperature(ambientTemperature);
73 qCDebug(d->lc).noquote() << tr("Writing new temperature %1 (0x%2).")
74 .arg(ambientTemperature).arg(QLatin1String(newValue.toHex()));
75 d->service->writeCharacteristic(characteristic, newValue);
76 return (d->service->error() != QLowEnergyService::ServiceError::CharacteristicWriteError);
77}
static QByteArray encodeTemperature(const float value)
Returns value in a format Pokit devices expect.
The CalibrationService class accesses the Calibrartion service of Pokit devices.
QByteArray toHex() const const
bool isValid() const const
QString tr(const char *sourceText, const char *disambiguation, int n)
QString arg(qlonglong a, int fieldWidth, int base, QChar fillChar) const const
static const QBluetoothUuid temperature
UUID of the Calibration service's Temperature characterstic.

References QString::arg(), CalibrationServicePrivate::encodeTemperature(), QLowEnergyCharacteristic::isValid(), CalibrationService::CharacteristicUuids::temperature, QByteArray::toHex(), and QObject::tr().

Referenced by CalibrateCommand::serviceDetailsDiscovered().

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

◆ readCharacteristics()

bool CalibrationService::readCharacteristics ( )
overridevirtual

Read all characteristics.

This implementation always returns true, since the Calibration service provides no readable characteristics (they're all write-only).

Implements AbstractPokitService.

Definition at line 48 of file calibrationservice.cpp.

49{
51 qCDebug(d->lc).noquote() << tr("Ignoring read request; the Calibration service is write-only.");
52 return true;
53}

References QObject::tr().

Here is the call graph for this function:

◆ temperatureCalibrated

void CalibrationService::temperatureCalibrated ( )
signal

This signal is emitted when the Temperature characteristic has been written succesfully.

See also
calibrateTemperature

Referenced by CalibrateCommand::getService().

Here is the caller graph for this function:

Friends And Related Symbol Documentation

◆ TestCalibrationService

friend class TestCalibrationService
friend

Definition at line 61 of file calibrationservice.h.

Member Data Documentation

◆ serviceUuid

const QBluetoothUuid CalibrationService::serviceUuid { QStringLiteral("6f53be2f-780b-49b8-a7c3-e8a052b3ae2c") }
inlinestatic

UUID of the Calibration service.

Definition at line 28 of file calibrationservice.h.

28{ QStringLiteral("6f53be2f-780b-49b8-a7c3-e8a052b3ae2c") };

Referenced by PokitDevice::serviceToString().


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