Dokit
Internal development documentation
|
The AbstractCommand class extends AbstractCommand to add a PokitDevice instance. More...
Public Slots | |
bool | start () override |
Begins scanning for the Pokit device. | |
Public Slots inherited from AbstractCommand | |
virtual QStringList | processOptions (const QCommandLineParser &parser) |
Processes the relevant options from the command line parser. | |
virtual bool | start ()=0 |
Begins the functionality of this command, and returns true if begun successfully, false otherwise. | |
Public Member Functions | |
DeviceCommand (QObject *const parent=nullptr) | |
Construct a new DeviceCommand object with parent. | |
Public Member Functions inherited from AbstractCommand | |
AbstractCommand (QObject *const parent=nullptr) | |
Constructs a new command with parent. | |
virtual QStringList | requiredOptions (const QCommandLineParser &parser) const |
Returns a list of CLI option names required by this command. | |
virtual QStringList | supportedOptions (const QCommandLineParser &parser) const |
Returns a list of CLI option names supported by this command. | |
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 | |
Protected Slots | |
virtual void | controllerError (const QLowEnergyController::Error error) |
Handles controller error events. | |
virtual void | deviceDisconnected () |
Handles devics disconnection events. | |
virtual void | serviceError (const QLowEnergyService::ServiceError error) |
Handles service error events. | |
virtual void | serviceDetailsDiscovered () |
Handles service detail discovery events. | |
Protected Slots inherited from AbstractCommand | |
virtual void | deviceDiscovered (const QBluetoothDeviceInfo &info)=0 |
Handles PokitDiscoveryAgent::pokitDeviceDiscovered signal. | |
virtual void | deviceDiscoveryFinished ()=0 |
Handles PokitDiscoveryAgent::deviceDiscoveryFinished signal. | |
Protected Member Functions | |
void | disconnect (int exitCode=EXIT_SUCCESS) |
Disconnects the underlying Pokit device, and sets exitCode to be return to the OS once the disconnection has taken place. | |
virtual AbstractPokitService * | getService ()=0 |
Returns a Pokit service object for the derived command class. | |
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) |
Static Protected Member Functions | |
template<typename T > | |
static T | minRange (const quint32 maxValue) |
static quint8 | minCapacitanceRange (const PokitProduct product, const quint32 maxValue) |
Returns the product's lowest capacitance range that can measure at least up to maxValue (nF), or AutoRange if no such range is available. | |
static quint8 | minCurrentRange (const PokitProduct product, const quint32 maxValue) |
Returns the product's lowest current range that can measure at least up to maxValue (µA), or AutoRange if no such range is available. | |
static quint8 | minResistanceRange (const PokitProduct product, const quint32 maxValue) |
Returns the product's lowest resistance range that can measure at least up to maxValue (Ω), or AutoRange if no such range is available. | |
static quint8 | minVoltageRange (const PokitProduct product, const quint32 maxValue) |
t Returns the product's lowest voltage range that can measure at least up to maxValue (mV), or AutoRange if no such range is available. | |
Static Protected Member Functions inherited from AbstractCommand | |
static | Q_LOGGING_CATEGORY (lc, "dokit.cli.command", QtInfoMsg) |
Logging category for UI commands. | |
Protected Attributes | |
PokitDevice * | device { nullptr } |
Pokit Bluetooth device (if any) this command interracts with. | |
int | exitCodeOnDisconnect { EXIT_FAILURE } |
Exit code to return on device disconnection. | |
Protected Attributes inherited from AbstractCommand | |
QString | deviceToScanFor |
Device (if any) that were passed to processOptions(). | |
PokitDiscoveryAgent * | discoveryAgent |
Agent for Pokit device descovery. | |
OutputFormat | format { OutputFormat::Text } |
Selected output format. | |
Private Slots | |
void | deviceDiscovered (const QBluetoothDeviceInfo &info) override |
Checks if info is the device (if any) we're looking for, and if so, create a contoller and service, and begins connecting to the device. | |
void | deviceDiscoveryFinished () override |
Checks that the requested device was discovered, and if not, reports and error and exits. | |
Friends | |
class | TestDeviceCommand |
Additional Inherited Members | |
Public Types inherited from AbstractCommand | |
enum class | OutputFormat { Csv , Json , Text } |
Supported output formats. More... | |
Static Public Member Functions inherited from AbstractCommand | |
static QString | escapeCsvField (const QString &field) |
Returns an RFC 4180 compliant version of field. | |
template<typename R > | |
static quint32 | parseNumber (const QString &value, const QString &unit, const quint32 sensibleMinimum=0) |
Returns value as an integer multiple of the ratio R. | |
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 |
Properties inherited from QObject | |
objectName | |
The AbstractCommand class extends AbstractCommand to add a PokitDevice instance.
Definition at line 15 of file devicecommand.h.
|
explicit |
Construct a new DeviceCommand object with parent.
Definition at line 21 of file devicecommand.cpp.
|
protectedvirtualslot |
Handles controller error events.
This base implementation simply logs error and then exits with EXIT_FAILURE
. Derived classes may override this slot to implement their own error handing if desired.
Definition at line 292 of file devicecommand.cpp.
References QCoreApplication::exit(), and QObject::tr().
Referenced by deviceDiscovered().
|
protectedvirtualslot |
Handles devics disconnection events.
This base implementation simply logs and exits the application (via QCoreApplication::exit) with the current exitCodeOnDisconnect value, which is initialise to EXIT_FAILURE
in the constructor, but should be set to EXIT_SUCESS
if/when the derived command class has completed its actions and requested the disconnection (as opposed to a spontaneous disconnection on error).
Definition at line 305 of file devicecommand.cpp.
References QString::arg(), QCoreApplication::exit(), exitCodeOnDisconnect, and QObject::tr().
Referenced by deviceDiscovered().
|
overrideprivateslot |
Checks if info is the device (if any) we're looking for, and if so, create a contoller and service, and begins connecting to the device.
Definition at line 340 of file devicecommand.cpp.
References QBluetoothDeviceInfo::address(), QString::arg(), QObject::connect(), QLowEnergyController::connectToDevice(), PokitDevice::controller(), controllerError(), device, deviceDisconnected(), AbstractCommand::deviceToScanFor, QBluetoothDeviceInfo::deviceUuid(), QLowEnergyController::disconnected(), AbstractCommand::discoveryAgent, QLowEnergyController::error(), getService(), QString::isEmpty(), QBluetoothAddress::isNull(), QUuid::isNull(), isPokitProduct(), QBluetoothDeviceInfo::name(), AbstractPokitService::pokitProduct(), pokitProduct(), Qt::QueuedConnection, AbstractPokitService::serviceDetailsDiscovered(), serviceDetailsDiscovered(), serviceError(), AbstractPokitService::serviceErrorOccurred(), AbstractPokitService::setPokitProduct(), QBluetoothDeviceDiscoveryAgent::stop(), QBluetoothAddress::toString(), QUuid::toString(), toString(), and QObject::tr().
|
overrideprivateslot |
Checks that the requested device was discovered, and if not, reports and error and exits.
Definition at line 392 of file devicecommand.cpp.
References QString::arg(), device, AbstractCommand::deviceToScanFor, QCoreApplication::exit(), QString::isNull(), and QObject::tr().
|
protected |
Disconnects the underlying Pokit device, and sets exitCode to be return to the OS once the disconnection has taken place.
Definition at line 42 of file devicecommand.cpp.
References PokitDevice::controller(), device, QLowEnergyController::disconnectFromDevice(), exitCodeOnDisconnect, and QObject::tr().
Referenced by FlashLedCommand::deviceLedFlashed(), SetNameCommand::deviceNameWritten(), StatusCommand::outputDeviceStatus(), MeterCommand::outputReading(), DsoCommand::outputSamples(), LoggerFetchCommand::outputSamples(), InfoCommand::serviceDetailsDiscovered(), LoggerStartCommand::settingsWritten(), LoggerStopCommand::settingsWritten(), CalibrateCommand::temperatureCalibrated(), and SetTorchCommand::torchStatusWritten().
|
protectedpure virtual |
Returns a Pokit service object for the derived command class.
This will be called by deviceDiscovered() when the requested Pokit device has been found, after which deviceDiscovered() will connect the returned service's common signals, and kick off the device's connection process.
Implemented in CalibrateCommand, DsoCommand, FlashLedCommand, InfoCommand, LoggerFetchCommand, LoggerStartCommand, LoggerStopCommand, MeterCommand, SetNameCommand, SetTorchCommand, and StatusCommand.
Referenced by deviceDiscovered().
|
staticprotected |
Returns the product's lowest capacitance range that can measure at least up to maxValue (nF), or AutoRange if no such range is available.
Definition at line 213 of file devicecommand.cpp.
References minRange(), PokitMeter, and PokitPro.
Referenced by MeterCommand::processOptions().
|
staticprotected |
Returns the product's lowest current range that can measure at least up to maxValue (µA), or AutoRange if no such range is available.
Definition at line 233 of file devicecommand.cpp.
References minRange(), PokitMeter, and PokitPro.
Referenced by DsoCommand::processOptions(), LoggerStartCommand::processOptions(), and MeterCommand::processOptions().
|
staticprotected |
Returns the lowest T range that can measure at least up to maxValue, or AutoRange if no such range is available.
T | Range enumerator to evaluate ranges for. Must be one of: |
Referenced by minCapacitanceRange(), minCurrentRange(), minResistanceRange(), and minVoltageRange().
|
staticprotected |
Returns the product's lowest resistance range that can measure at least up to maxValue (Ω), or AutoRange if no such range is available.
Definition at line 252 of file devicecommand.cpp.
References minRange(), PokitMeter, and PokitPro.
Referenced by MeterCommand::processOptions().
|
staticprotected |
t Returns the product's lowest voltage range that can measure at least up to maxValue (mV), or AutoRange if no such range is available.
Definition at line 272 of file devicecommand.cpp.
References minRange(), PokitMeter, and PokitPro.
Referenced by DsoCommand::processOptions(), LoggerStartCommand::processOptions(), and MeterCommand::processOptions().
|
protectedvirtualslot |
Handles service detail discovery events.
This base implementation simply logs the event, and nothing more. Derived classes may (usually do) override this slot to provide their own processing when a services details have been discovered.
Definition at line 331 of file devicecommand.cpp.
References QObject::tr().
Referenced by deviceDiscovered(), CalibrateCommand::serviceDetailsDiscovered(), DsoCommand::serviceDetailsDiscovered(), FlashLedCommand::serviceDetailsDiscovered(), InfoCommand::serviceDetailsDiscovered(), LoggerFetchCommand::serviceDetailsDiscovered(), LoggerStartCommand::serviceDetailsDiscovered(), LoggerStopCommand::serviceDetailsDiscovered(), MeterCommand::serviceDetailsDiscovered(), and StatusCommand::serviceDetailsDiscovered().
|
protectedvirtualslot |
Handles service error events.
This base implementation simply logs error and then exits with EXIT_FAILURE
. Derived classes may override this slot to implement their own error handing if desired.
Definition at line 320 of file devicecommand.cpp.
References QCoreApplication::exit(), and QObject::tr().
Referenced by deviceDiscovered().
|
overrideslot |
Begins scanning for the Pokit device.
Definition at line 29 of file devicecommand.cpp.
References QString::arg(), AbstractCommand::deviceToScanFor, AbstractCommand::discoveryAgent, QString::isNull(), PokitDiscoveryAgent::start(), and QObject::tr().
|
friend |
Definition at line 49 of file devicecommand.h.
|
protected |
Pokit Bluetooth device (if any) this command interracts with.
Definition at line 26 of file devicecommand.h.
Referenced by deviceDiscovered(), deviceDiscoveryFinished(), FlashLedCommand::deviceLedFlashed(), SetNameCommand::deviceNameWritten(), disconnect(), CalibrateCommand::getService(), DsoCommand::getService(), FlashLedCommand::getService(), InfoCommand::getService(), LoggerFetchCommand::getService(), LoggerStartCommand::getService(), LoggerStopCommand::getService(), MeterCommand::getService(), SetNameCommand::getService(), SetTorchCommand::getService(), StatusCommand::getService(), StatusCommand::outputDeviceStatus(), MeterCommand::outputReading(), DsoCommand::outputSamples(), LoggerFetchCommand::outputSamples(), InfoCommand::serviceDetailsDiscovered(), LoggerStartCommand::settingsWritten(), LoggerStopCommand::settingsWritten(), CalibrateCommand::temperatureCalibrated(), and SetTorchCommand::torchStatusWritten().
|
protected |
Exit code to return on device disconnection.
Definition at line 27 of file devicecommand.h.
Referenced by deviceDisconnected(), and disconnect().