|
int | pollingInterval () const |
|
void | setPollingInterval (int interval) |
|
int | pollingTaskInterval () const |
|
void | setPollingTaskInterval (int interval) |
|
int | requestInterval () const |
|
void | setRequestInterval (int interval) |
|
virtual int | timeout () const =0 |
|
virtual void | setTimeout (int timeout)=0 |
|
void | configureStarting (QState *starting, AssignStatusFunction assignStatus) override |
|
void | configureStarted (QState *active, const QState *idling, const QState *yielding, AssignStatusFunction assignStatus) override |
|
void | configureStopping (QState *stopping, AssignStatusFunction assignStatus) override |
|
void | configureBroken (QState *broken, AssignStatusFunction assignStatus) override |
|
void | configureRepairing (QState *repairing, AssignStatusFunction assignStatus) override |
|
void | configureEvacuating (QState *evacuating, AssignStatusFunction assignStatus) override |
|
std::unique_ptr< QAbstractTransition > | transitionToStarted () const override |
|
std::unique_ptr< QAbstractTransition > | transitionToStopped () const override |
|
std::unique_ptr< QAbstractTransition > | transitionToBroken () const override |
|
std::unique_ptr< QAbstractTransition > | transitionToYielding () const override |
|
std::unique_ptr< QAbstractTransition > | transitionToIdling () const override |
|
State | state () const |
|
bool | ready () const |
| Get readiness status. More...
|
|
int | maxReadCoils () const |
|
void | setMaxReadCoils (int maxReadCoils) |
|
int | maxWriteCoils () const |
|
void | setMaxWriteCoils (int maxWriteCoils) |
|
int | maxReadDiscreteInputs () const |
|
void | setMaxReadDiscreteInputs (int maxReadDiscreteInputs) |
|
int | maxWriteDiscreteInputs () const |
|
void | setMaxWriteDiscreteInputs (int maxWriteDiscreteInputs) |
|
int | maxReadHoldingRegisters () const |
|
void | setMaxReadHoldingRegisters (int maxReadHoldingRegisters) |
|
int | maxWriteHoldingRegisters () const |
|
void | setMaxWriteHoldingRegisters (int maxWriteHoldingRegisters) |
|
int | maxReadInputRegisters () const |
|
void | setMaxReadInputRegisters (int maxReadInputRegisters) |
|
int | maxWriteInputRegisters () const |
|
void | setMaxWriteInputRegisters (int maxWriteInputRegisters) |
|
int | maxRequests () const |
|
void | setMaxRequests (int maxRequests) |
|
Coil * | coilAt (quint16 address) |
|
DiscreteInput * | discreteInputAt (quint16 address) |
|
HoldingRegister * | holdingRegisterAt (quint16 address) |
|
InputRegister * | inputRegisterAt (quint16 address) |
|
Q_INVOKABLE void | requestReadCoils (quint16 address, quint16 amount=1, QUuid *requestId=nullptr) |
| Read coils request. More...
|
|
Q_INVOKABLE void | requestWriteCoil (quint16 address, bool value, QUuid *requestId=nullptr) |
| Write coils request. More...
|
|
Q_INVOKABLE void | requestWriteMultipleCoils (quint16 address, QJsonArray values, QUuid *requestId=nullptr) |
| Write multiple coils request. More...
|
|
Q_INVOKABLE void | requestReadDiscreteInputs (quint16 address, quint16 amount=1, QUuid *requestId=nullptr) |
| Read discrete inputs request. More...
|
|
Q_INVOKABLE void | requestWriteDiscreteInput (quint16 address, bool value, QUuid *requestId=nullptr) |
| Write discrete input request. More...
|
|
Q_INVOKABLE void | requestWriteMultipleDiscreteInputs (quint16 address, QJsonArray values, QUuid *requestId=nullptr) |
| Write multiple discrete inputs request. More...
|
|
Q_INVOKABLE void | requestReadHoldingRegisters (quint16 address, quint16 amount=1, QUuid *requestId=nullptr) |
| Read holding registers request. More...
|
|
Q_INVOKABLE void | requestWriteHoldingRegister (quint16 address, quint16 value, QUuid *requestId=nullptr) |
| Write holding register request. More...
|
|
Q_INVOKABLE void | requestWriteMultipleHoldingRegisters (quint16 address, QJsonArray values, QUuid *requestId=nullptr) |
| Write multiple holding registers request. More...
|
|
Q_INVOKABLE void | requestReadInputRegisters (quint16 address, quint16 amount=1, QUuid *requestId=nullptr) |
| Read input registers request. More...
|
|
Q_INVOKABLE void | requestWriteInputRegister (quint16 address, quint16 value, QUuid *requestId=nullptr) |
| Write input register request. More...
|
|
Q_INVOKABLE void | requestWriteMultipleInputRegisters (quint16 address, QJsonArray values, QUuid *requestId=nullptr) |
| Write multiple input registers request. More...
|
|
Q_INVOKABLE void | requestDiagnostics (cutehmi::modbus::AbstractDevice::DiagnosticsSubfunction subfunction, quint16 data, QUuid *requestId=nullptr) |
| Diagonistics request. More...
|
|
Q_INVOKABLE void | requestReadExceptionStatus (QUuid *requestId=nullptr) |
| Report slave id request. More...
|
|
Q_INVOKABLE void | requestFetchCommEventCounter (QUuid *requestId=nullptr) |
| Report slave id request. More...
|
|
Q_INVOKABLE void | requestFetchCommEventLog (QUuid *requestId=nullptr) |
| Report slave id request. More...
|
|
Q_INVOKABLE void | requestReportSlaveId (QUuid *requestId=nullptr) |
| Report slave id request. More...
|
|
Q_INVOKABLE void | requestMaskWriteHoldingRegister (quint16 address, quint16 andMask, quint16 orMask, QUuid *requestId=nullptr) |
| Mask write holding register request. More...
|
|
Q_INVOKABLE void | requestReadWriteMultipleHoldingRegisters (quint16 readAddress, quint16 amount, quint16 writeAddress, QJsonArray values, QUuid *requestId=nullptr) |
| Read/write multiple holding registers request. More...
|
|
Q_INVOKABLE void | requestReadFIFOQueue (quint16 address, QUuid *requestId=nullptr) |
| Read FIFO queue request. More...
|
|
Q_INVOKABLE QJsonObject | readFileRecordSubrequest (quint16 file, quint16 address, quint16 amount) |
| Generate read file record subrequest. More...
|
|
Q_INVOKABLE void | requestReadFileRecord (QJsonArray subrequests, QUuid *requestId=nullptr) |
| Read file record request. More...
|
|
Q_INVOKABLE QJsonObject | writeFileRecordSubrequest (quint16 file, quint16 address, QJsonArray values) |
| Generate write file record subrequest. More...
|
|
Q_INVOKABLE void | requestWriteFileRecord (QJsonArray subrequests, QUuid *requestId=nullptr) |
| Write file record request. More...
|
|
Q_INVOKABLE void | request (cutehmi::modbus::AbstractDevice::Function function, QJsonObject payload, QUuid *requestId=nullptr) |
| Modbus function request. More...
|
|
virtual const QMetaObject * | metaObject () const const |
|
| QObject (QObject *parent) |
|
virtual | ~QObject () |
|
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 |
|
virtual void | configureStarting (QState *starting, AssignStatusFunction assignStatus)=0 |
|
virtual void | configureStarted (QState *active, const QState *idling, const QState *yielding, AssignStatusFunction assignStatus)=0 |
|
virtual void | configureStopping (QState *stopping, AssignStatusFunction assignStatus)=0 |
|
virtual void | configureBroken (QState *broken, AssignStatusFunction assignStatus)=0 |
|
virtual void | configureRepairing (QState *repairing, AssignStatusFunction assignStatus)=0 |
|
virtual void | configureEvacuating (QState *evacuating, AssignStatusFunction assignStatus)=0 |
|
virtual std::unique_ptr< QAbstractTransition > | transitionToStarted () const=0 |
|
virtual std::unique_ptr< QAbstractTransition > | transitionToStopped () const=0 |
|
virtual std::unique_ptr< QAbstractTransition > | transitionToBroken () const=0 |
|
virtual std::unique_ptr< QAbstractTransition > | transitionToYielding () const=0 |
|
virtual std::unique_ptr< QAbstractTransition > | transitionToIdling () const=0 |
|
|
enum | State { OPENING
, OPENED
, CLOSING
, CLOSED
} |
|
enum | Function {
FUNCTION_INVALID = QModbusPdu::Invalid
, FUNCTION_READ_COILS = QModbusPdu::ReadCoils
, FUNCTION_READ_DISCRETE_INPUTS = QModbusPdu::ReadDiscreteInputs
, FUNCTION_READ_HOLDING_REGISTERS = QModbusPdu::ReadHoldingRegisters
,
FUNCTION_READ_INPUT_REGISTERS = QModbusPdu::ReadInputRegisters
, FUNCTION_WRITE_COIL = QModbusPdu::WriteSingleCoil
, FUNCTION_WRITE_HOLDING_REGISTER = QModbusPdu::WriteSingleRegister
, FUNCTION_READ_EXCEPTION_STATUS = QModbusPdu::ReadExceptionStatus
,
FUNCTION_DIAGNOSTICS = QModbusPdu::Diagnostics
, FUNCTION_FETCH_COMM_EVENT_COUNTER = QModbusPdu::GetCommEventCounter
, FUNCTION_FETCH_COMM_EVENT_LOG = QModbusPdu::GetCommEventLog
, FUNCTION_WRITE_MULTIPLE_COILS = QModbusPdu::WriteMultipleCoils
,
FUNCTION_WRITE_MULTIPLE_HOLDING_REGISTERS = QModbusPdu::WriteMultipleRegisters
, FUNCTION_REPORT_SLAVE_ID = QModbusPdu::ReportServerId
, FUNCTION_READ_FILE_RECORD = QModbusPdu::ReadFileRecord
, FUNCTION_WRITE_FILE_RECORD = QModbusPdu::WriteFileRecord
,
FUNCTION_MASK_WRITE_HOLDING_REGISTER = QModbusPdu::MaskWriteRegister
, FUNCTION_READ_WRITE_MULTIPLE_HOLDING_REGISTERS = QModbusPdu::ReadWriteMultipleRegisters
, FUNCTION_READ_FIFO_QUEUE = QModbusPdu::ReadFifoQueue
, FUNCTION_UNDEFINED = QModbusPdu::UndefinedFunctionCode
,
FUNCTION_WRITE_DISCRETE_INPUT
, FUNCTION_WRITE_MULTIPLE_DISCRETE_INPUTS
, FUNCTION_WRITE_INPUT_REGISTER
, FUNCTION_WRITE_MULTIPLE_INPUT_REGISTERS
,
FUNCTION_RAW
} |
|
enum | DiagnosticsSubfunction : quint16 {
DIAGNOSTICS_RETURN_QUERY_DATA = 0x00
, DIAGNOSTICS_RESTART_COMM_OPTION = 0x01
, DIAGNOSTICS_RETURN_DIAGNOSTICS_REGISTER = 0x02
, DIAGNOSTICS_CHANGE_ASCII_INPUT_DELIMITER = 0x03
,
DIAGNOSTICS_FORCE_LISTEN_ONLY_MODE = 0x04
, DIAGNOSTICS_CLEAR_COUNTERS_AND_DIAGNOSTICS_REGISTER = 0x0A
, DIAGNOSTICS_RETURN_BUS_MESSAGE_COUNT = 0x0B
, DIAGNOSTICS_RETURN_BUS_COMM_ERROR_COUNT = 0x0C
,
DIAGNOSTICS_RETURN_BUS_EXCEPTION_ERROR_COUNT = 0x0D
, DIAGNOSTICS_RETURN_SLAVE_MESSAGE_COUNT = 0x0E
, DIAGNOSTICS_RETURN_SLAVE_NO_RESPONSE_COUNT = 0x0F
, DIAGNOSTICS_RETURN_SLAVE_NAK_COUNT = 0x10
,
DIAGNOSTICS_RETURN_SLAVE_BUSY_COUNT = 0x11
, DIAGNOSTICS_RETURN_BUS_CHARACTER_OVERRUN_COUNT = 0x12
, DIAGNOSTICS_RETURN_IOP_OVERRUN_COUNT = 0x13
, DIAGNOSTICS_CLEAR_OVERRUN_COUNTER_AND_FLAG = 0x14
,
DIAGNOSTICS_GET_CLEAR_MODBUS_PLUS_STATISTICS = 0x15
} |
|
typedef std::function< void(QState &state, const QString &status)> | AssignStatusFunction |
|
virtual void | open ()=0 |
|
virtual void | close ()=0 |
|
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) |
|
typedef | QObjectList |
|
typedef internal::RegisterTraits< internal::Coil >::Container | CoilDataContainer |
|
typedef internal::RegisterTraits< internal::DiscreteInput >::Container | DiscreteInputDataContainer |
|
typedef internal::RegisterTraits< internal::HoldingRegister >::Container | HoldingRegisterDataContainer |
|
typedef internal::RegisterTraits< internal::InputRegister >::Container | InputRegisterDataContainer |
|
Abstract client.
Abstract client can perform polling to update register values. This is handled by cutehmi::services::Service - the client just needs to be set as its serviceable object.
During polling a sequence of tasks is being processed. A task is usually a single request-response exchange performed to update register value. During polling all awaken registers are updated. Intervals between complete polling sequences and individual tasks can be with pollingInterval and pollingTaskInterval properties respectively.
To protect Modbus device from flooding it with too many requests requestInterval property can be used. If requests are comming too fast they will be queued and sent to the device one by one in constant intervals.