00. 目录
01. 概述
QModbusDataUnit是一个容器类,在Modbus寄存器中的单个位和16位条目。
QModbusDataUnit可用于读取和写入操作。这些条目通过startAddress()和valueCount()数量的连续条目来寻址。registerType()确定哪个寄存器用于操作。请注意,某些寄存器是只读寄存器。
实际的value()()可以是单个位或16
位。QModbusDataUnit :: DiscreteInputs和QModbusDataUnit :: Coils仅接受单个位。因此0
被解释为0
和其他任何东西1
。
Header: #include
qmake: QT += serialbus
Since: Qt 5.8
02. 开发环境
Windows系统:Windows10
Qt版本:Qt5.15或者Qt6
03. 共有类型
QModbusDataUnit :: RegisterType类型
enum RegisterType { Invalid, DiscreteInputs, Coils, InputRegisters, HoldingRegisters }
常量 | 值 | 描述 |
---|---|---|
QModbusDataUnit::Invalid |
0 |
由默认构造函数设置,请勿使用。 |
QModbusDataUnit::DiscreteInputs |
1 |
此类数据可以由I / O系统提供。 |
QModbusDataUnit::Coils |
2 |
此类数据可以由应用程序更改。 |
QModbusDataUnit::InputRegisters |
3 |
此类数据可以由I / O系统提供。 |
QModbusDataUnit::HoldingRegisters |
4 |
此类数据可以由应用程序更改。 |
04. 成员方法
QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, const QVector<quint16> &data)
为寄存器类型构造一个数据单元。数据的起始地址设置为address,本机的值设置为data。数值大小由数据大小隐含。
QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, quint16 size)
为寄存器类型构造一个数据单元。数据的起始地址设置为address,单位的大小设置为size。value()的条目使用初始化0。
QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type)
为寄存器类型构造一个数据单元。起始地址设置为0,数据范围和数据值为空。
QModbusDataUnit::QModbusDataUnit()
构造一个空的无效QModbusDataUnit。起始地址设置为-1,registerType设置为QModbusDataUnit :: Invalid。
bool QModbusDataUnit::isValid() const
返回,true如果QModbusDataUnit有效。否则false。QModbusDataUnit如果registerType()不是QModbusDataUnit :: Invalid并且startAddress()大于或等于,则认为ModbusDataUnit有效0。
QModbusDataUnit::RegisterType QModbusDataUnit::registerType() const
返回寄存器的类型。
void QModbusDataUnit::setRegisterType(QModbusDataUnit::RegisterType type)
设置寄存器类型。
void QModbusDataUnit::setStartAddress(int address)
设置数据单元的起始地址。
void QModbusDataUnit::setValue(int index, quint16 value)
将位置索引处的寄存器设置为value。
void QModbusDataUnit::setValueCount(uint newCount)
将请求的寄存器的数据块的大小设置为newCount。
void QModbusDataUnit::setValues(const QVector<quint16> &values)
设置数据单位的值。QModbusDataUnit :: DiscreteInputs和QModbusDataUnit :: Coils表仅接受单个位值,因此0被解释为0和1。
int QModbusDataUnit::startAddress() const
返回寄存器中数据单元的起始地址。
quint16 QModbusDataUnit::value(int index) const
返回位置index处的值。
uint QModbusDataUnit::valueCount() const
返回请求的寄存器的数据块的大小或从设备读取的数据的大小。
QVector<quint16> QModbusDataUnit::values() const
返回数据单元中的数据。
05. 预留
06. 附录
6.1 Qt教程汇总
网址:https://dengjin.blog.csdn.net/article/details/115174639
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容