【Qt】QModbusDataUnit类

00. 目录

01. 概述

QModbusDataUnit是一个容器类,在Modbus寄存器中的单个位和16位条目。

QModbusDataUnit可用于读取和写入操作。这些条目通过startAddress()和valueCount()数量的连续条目来寻址。registerType()确定哪个寄存器用于操作。请注意,某些寄存器是只读寄存器。

实际的value()()可以是单个位或16位。QModbusDataUnit :: DiscreteInputsQModbusDataUnit :: 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被解释为01int 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
喜欢就支持一下吧
点赞872 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容