QModbusDataUnit 类
QModbusDataUnit 是一个容器类,用于表示 Modbus 寄存器中的单个位和 16
位字条目。 更多信息...
头文件 | #include <QModbusDataUnit> |
CMake | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
qmake | QT += 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) | |
bool | isValid() const |
QModbusDataUnit::RegisterType | registerType() const |
void | setRegisterType(QModbusDataUnit::RegisterType type) |
void | setStartAddress(int address) |
void | setValue(qsizetype index, quint16 value) |
void | setValueCount(qsizetype newCount) |
void | setValues(const QList<quint16> &values) |
int | startAddress() const |
quint16 | value(qsizetype index) const |
qsizetype | valueCount() const |
QList<quint16> | values() const |
相关非成员
详细说明
QModbusDataUnit 适用于读 写操作。条目通过 startAddress() 和 valueCount() 数量的连续条目进行寻址。 registerType() 确定用于操作的是哪个寄存器。注意,有些寄存器是只读寄存器。
实际的values() either
是单比特或者基于16
比特的。只有单比特的QModbusDataUnit::DiscreteInputs和QModbusDataUnit::Coils会被接受。因此,0
被解释为0
,任何其他值都解释为1
。
成员类型文档
enum QModbusDataUnit::RegisterType
此枚举描述了所有支持的寄存器类型。
常量 | 值 | 描述 |
---|---|---|
QModbusDataUnit::Invalid | 0 | 由默认构造函数设置,请勿使用。 |
QModbusDataUnit::DiscreteInputs | 1 | 此类数据可以由一个输入输出系统提供。 |
QModbusDataUnit::Coils | 2 | 此类数据可以被应用程序程序更改。 |
QModbusDataUnit::InputRegisters | 3 | 此类数据可以由一个输入输出系统提供。 |
QModbusDataUnit::HoldingRegisters | 4 | 此类数据可以被应用程序程序更改。 |
成员函数文档
[constexpr noexcept]
QModbusDataUnit::QModbusDataUnit()
构建一个空的、无效的QModbusDataUnit。起始地址设置为-1
,并设置registerType为QModbusDataUnit::Invalid。
[explicit constexpr noexcept]
QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type)
构建一个用于寄存器类型type的数据单元。起始地址设置为0
,数据范围和数据值都是空的。
QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, quint16 size)
构建一个用于寄存器类型type的数据单元。数据起始地址设置为address,数据单元大小设置为size。values()条目使用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::DiscreteInputs 和 QModbusDataUnit::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。
© 2024 Qt公司有限公司。本文件内包含的文档贡献者是各自版权的所有者。本文件所提供的文档是根据自由软件基金会发布的GNU自由文档许可证(http://www.gnu.org/licenses/fdl.html)第1.3版许可使用的。Qt及其相关标志是芬兰及/或其他国家Qt公司有限公司的商标。所有其他商标均为各自所有者的财产。