QModbusDataUnit Class

QModbusDataUnit is a container class representing single bit and 16 bit word entries in the Modbus register. More...

Header: #include <QModbusDataUnit>
qmake: QT += serialbus
Since: Qt 5.8

Public Types

enum RegisterType { Invalid, DiscreteInputs, Coils, InputRegisters, HoldingRegisters }

Public Functions

QModbusDataUnit()
QModbusDataUnit(QModbusDataUnit::RegisterType type)
QModbusDataUnit(QModbusDataUnit::RegisterType type, int newStartAddress, quint16 newValueCount)
QModbusDataUnit(QModbusDataUnit::RegisterType type, int newStartAddress, const QVector<quint16> &newValues)
bool isValid() const
QModbusDataUnit::RegisterType registerType() const
void setRegisterType(QModbusDataUnit::RegisterType type)
void setStartAddress(int newAddress)
void setValue(int index, quint16 newValue)
void setValueCount(uint newCount)
void setValues(const QVector<quint16> &newValues)
int startAddress() const
quint16 value(int index) const
uint valueCount() const
QVector<quint16> values() const

Detailed Description

QModbusDataUnit is a container class representing single bit and 16 bit word entries in the Modbus register.

QModbusDataUnit can be used for read and write operations. The entries are addressed via startAddress() and the valueCount() number of contiguous entries. registerType() determines which register is used for the operations. Note that some registers are read-only registers.

The actual values() are either single bit or 16 bit based. QModbusDataUnit::DiscreteInputs and QModbusDataUnit::Coils only accept single bits. Therefore 0 is interpreted as 0 and anything else 1.

Member Type Documentation

enum QModbusDataUnit::RegisterType

This enum describes all supported register types.

ConstantValueDescription
QModbusDataUnit::Invalid0Set by the default constructor, do not use.
QModbusDataUnit::DiscreteInputs1This type of data can be provided by an I/O system.
QModbusDataUnit::Coils2This type of data can be alterable by an application program.
QModbusDataUnit::InputRegisters3This type of data can be provided by an I/O system.
QModbusDataUnit::HoldingRegisters4This type of data can be alterable by an application program.

Member Function Documentation

QModbusDataUnit::QModbusDataUnit()

Default constructs an instance of QModbusDataUnit.

QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type)

Default constructs an instance of QModbusDataUnit.

QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int newStartAddress, quint16 newValueCount)

Default constructs an instance of QModbusDataUnit.

QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int newStartAddress, const QVector<quint16> &newValues)

Default constructs an instance of QModbusDataUnit.

bool QModbusDataUnit::isValid() const

QModbusDataUnit::RegisterType QModbusDataUnit::registerType() const

See also setRegisterType().

void QModbusDataUnit::setRegisterType(QModbusDataUnit::RegisterType type)

See also registerType().

void QModbusDataUnit::setStartAddress(int newAddress)

See also startAddress().

void QModbusDataUnit::setValue(int index, quint16 newValue)

See also value().

void QModbusDataUnit::setValueCount(uint newCount)

See also valueCount().

void QModbusDataUnit::setValues(const QVector<quint16> &newValues)

See also values().

int QModbusDataUnit::startAddress() const

See also setStartAddress().

quint16 QModbusDataUnit::value(int index) const

See also setValue().

uint QModbusDataUnit::valueCount() const

See also setValueCount().

QVector<quint16> QModbusDataUnit::values() const

See also setValues().

Related Non-Members

typedef QModbusDataUnitMap

Synonym for QMap<QModbusDataUnit::RegisterType, QModbusDataUnit>.

This typedef was introduced in Qt 5.8.