QModbusDataUnit 类

QModbusDataUnit 是一个容器类,用于表示 Modbus 寄存器中的单个位和 16 位字条目。 更多信息...

头文件 #include <QModbusDataUnit>
CMakefind_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmakeQT += serialbus

公共类型

枚举RegisterType { Invalid, DiscreteInputs, Coils, InputRegisters, HoldingRegisters }

公共函数

QModbusDataUnit()
QModbusDataUnit(QModbusDataUnit::RegisterType type)
QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, quint16 size)
QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, const QList<quint16> &data)
boolisValid() const
QModbusDataUnit::RegisterTyperegisterType() const
voidsetRegisterType(QModbusDataUnit::RegisterType type)
voidsetStartAddress(int address)
voidsetValue(qsizetype index, quint16 value)
voidsetValueCount(qsizetype newCount)
voidsetValues(const QList<quint16> &values)
intstartAddress() const
quint16value(qsizetype index) const
qsizetypevalueCount() const
QList<quint16>values() const

详细说明

QModbusDataUnit 适用于读 写操作。条目通过 startAddress() 和 valueCount() 数量的连续条目进行寻址。 registerType() 确定用于操作的是哪个寄存器。注意,有些寄存器是只读寄存器。

实际的values() either

是单比特或者基于16比特的。只有单比特的QModbusDataUnit::DiscreteInputsQModbusDataUnit::Coils会被接受。因此,0被解释为0,任何其他值都解释为1

成员类型文档

enum QModbusDataUnit::RegisterType

此枚举描述了所有支持的寄存器类型。

常量描述
QModbusDataUnit::Invalid0由默认构造函数设置,请勿使用。
QModbusDataUnit::DiscreteInputs1此类数据可以由一个输入输出系统提供。
QModbusDataUnit::Coils2此类数据可以被应用程序程序更改。
QModbusDataUnit::InputRegisters3此类数据可以由一个输入输出系统提供。
QModbusDataUnit::HoldingRegisters4此类数据可以被应用程序程序更改。

成员函数文档

[constexpr noexcept] QModbusDataUnit::QModbusDataUnit()

构建一个空的、无效的QModbusDataUnit。起始地址设置为-1,并设置registerTypeQModbusDataUnit::Invalid

[explicit constexpr noexcept] QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type)

构建一个用于寄存器类型type的数据单元。起始地址设置为0,数据范围和数据值都是空的。

QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, quint16 size)

构建一个用于寄存器类型type的数据单元。数据起始地址设置为address,数据单元大小设置为sizevalues()条目使用0初始化。

QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, const QList<quint16> &data)

构建一个用于寄存器类型type的数据单元。数据起始地址设置为address,数据单元的值设置为data。值计数由data大小隐含。

bool QModbusDataUnit::isValid() const

如果QModbusDataUnit有效,则返回true;否则返回false。如果一个QModbusDataUnit被认为是有效的,如果registerType()不是QModbusDataUnit::Invalid并且startAddress()大于或等于0

QModbusDataUnit::RegisterType QModbusDataUnit::registerType() const

返回寄存器的类型。

另请参阅setRegisterType()和QModbusDataUnit::RegisterType

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

设置寄存器类型。

另请参阅registerType() 和 QModbusDataUnit::RegisterType.

void QModbusDataUnit::setStartAddress(int address)

设置数据单元的起始地址。

另请参阅startAddress().

void QModbusDataUnit::setValue(qsizetype index, quint16 value)

将位置 index 的寄存器设置为 value

另请参阅value().

void QModbusDataUnit::setValueCount(qsizetype newCount)

将请求的寄存器的数据块大小设置为 newCount

这可能与 values() 的大小不同,因为这个函数用于指示数据请求的大小。只有在数据请求被处理完毕后,valueCount() 才等于 values() 的大小。

另请参阅valueCount().

void QModbusDataUnit::setValues(const QList<quint16> &values)

设置数据单元的 values。仅 QModbusDataUnit::DiscreteInputsQModbusDataUnit::Coils 表可接受单个位值,所以 0 被解释为 0,其他任何内容都被解释为 1

另请参阅values().

int QModbusDataUnit::startAddress() const

返回在寄存器中数据单元的起始地址。

另请参阅setStartAddress().

quint16 QModbusDataUnit::value(qsizetype index) const

返回 index 位置上的值。

另请参阅setValue().

qsizetype QModbusDataUnit::valueCount() const

返回请求的寄存器的数据块大小或从设备读取的数据大小。

此函数可能不会总是返回与 values() 大小相等的计数。由于此类用于从远程数据寄存器请求数据,valueCount() 可用于指示请求的寄存器的数据块大小。请求被处理后,valueCount() 等于 values() 的大小。

另请参阅setValueCount().

QList<quint16> QModbusDataUnit::values() const

返回数据单元中的数据。QModbusDataUnit::DiscreteInputs和QModbusDataUnit::Coils表格仅接受单比特值,因此0被解释为0,其他任何值被解释为1。

参见setValues

相关非成员

QModbusDataUnitMap

QMap的别称,其中类型为QModbusDataUnit::RegisterType和QModbusDataUnit。

© 2024 Qt公司有限公司。本文件内包含的文档贡献者是各自版权的所有者。本文件所提供的文档是根据自由软件基金会发布的GNU自由文档许可证(http://www.gnu.org/licenses/fdl.html)第1.3版许可使用的。Qt及其相关标志是芬兰及/或其他国家Qt公司有限公司的商标。所有其他商标均为各自所有者的财产。