【Qt】QModbusDevice类

00. 目录

01. 概述

QModbusDevice类是Modbus类QModbusServerQModbusClient的基类。

Header: #include
qmake: QT += serialbus

Since: Qt 5.8

Inherits: QObject

Inherited By: QModbusClient and QModbusServer

02. 开发环境

Windows系统:Windows10

Qt版本:Qt5.15或者Qt6

03. 公有类型

enum ConnectionParameter { SerialPortNameParameter, SerialParityParameter, SerialBaudRateParameter, SerialDataBitsParameter, SerialStopBitsParameter,, UserParameter }

enum Error { NoError, ReadError, WriteError, ConnectionError, ConfigurationError,, UnknownError }

enum State { UnconnectedState, ConnectingState, ConnectedState, ClosingState }

枚举QModbusDevice :: ConnectionParameter

该枚举描述了可以为Modbus设备连接设置的可能值。

通用值(和关联的类型)为:

常量 描述
QModbusDevice::SerialPortNameParameter 0 此参数保存用于设备通信的串行端口,例如COM1。 QString
QModbusDevice::SerialParityParameter 1 该参数保持奇偶校验模式。 QSerialPort::Parity
QModbusDevice::SerialBaudRateParameter 2 此参数保存通信的数据波特率。 QSerialPort::BaudRate
QModbusDevice::SerialDataBitsParameter 3 此参数将数据位保存在一个帧中。 QSerialPort::DataBits
QModbusDevice::SerialStopBitsParameter 4 此参数保存一帧中停止位的数量。 QSerialPort::StopBits
QModbusDevice::NetworkPortParameter 5 此参数保存网络端口。 int
QModbusDevice::NetworkAddressParameter 6 此参数保存用于网络通信的主机地址。 QString

enum QModbusDevice::Error类型

该枚举描述了所有可能的错误情况。

常量 描述
QModbusDevice::NoError 0 没有发生错误。
QModbusDevice::ReadError 1 读取操作期间发生错误。
QModbusDevice::WriteError 2 写操作期间发生错误。
QModbusDevice::ConnectionError 3 尝试打开后端时发生错误。
QModbusDevice::ConfigurationError 4 尝试设置配置参数时发生错误。
QModbusDevice::TimeoutError 5 I / O期间发生超时。在给定的时间范围内,I / O操作未完成。
QModbusDevice::ProtocolError 6 发生Modbus特定协议错误。
QModbusDevice::ReplyAbortedError 7 由于设备断开连接,回复被中止。
QModbusDevice::UnknownError 8 出现未知错误。

enum QModbusDevice::State

该枚举描述了所有可能的设备状态。

常量 描述
QModbusDevice::UnconnectedState 0 设备已断开连接。
QModbusDevice::ConnectingState 1 设备正在连接。
QModbusDevice::ConnectedState 2 设备已连接到Modbus网络。
QModbusDevice::ClosingState 3 设备正在关闭。

04. 成员方法

QModbusDevice::QModbusDevice(QObject *parent = nullptr)
用指定的parent构造一个Modbus设备。    
    
[signal] void QModbusDevice::errorOccurred(QModbusDevice::Error error)    
当错误发生,该信号被发送   
    
[signal] void QModbusDevice::stateChanged(QModbusDevice::State state)    
每次设备状态更改时都会发出此信号。新状态由state表示。    
    
[virtual] QModbusDevice::~QModbusDevice()   
析构函数    
    
[pure virtual protected] void QModbusDevice::close()    
该函数负责关闭Modbus连接。实现必须确保实例的状态()设置为QModbusDevice :: UnconnectedState。    
    
bool QModbusDevice::connectDevice()    
将设备连接到Modbus网络。返回true是否成功启动连接过程;否则返回false。否则false。最终连接成功确认要求状态()更改为QModbusDevice :: ConnectedState。      
QVariant QModbusDevice::connectionParameter(int parameter) const    
返回与给定连接参数关联的值。返回的值可以为空。

默认情况下,QModbusDevice使用一些通用值初始化。串行端口设置为偶校验,波特率为每秒19200位,八个数据位和一个停止位。主机地址的网络设置设置为本地主机,端口设置为502。

注意:为了使串行连接成功,需要将SerialPortNameParameter设置为有效的通信端口。可以从QSerialPortInfo获得有关有效串行端口的信息。

注意:如果已经连接了设备,则在重新连接设备后会考虑设置。
    
QIODevice *QModbusDevice::device() const    
返回用于ModBus通信或设备尚未完全初始化时返回nullptr
    
    
void QModbusDevice::disconnectDevice()    
断开设备连接。
    
    
QModbusDevice::Error QModbusDevice::error() const
返回设备的错误状态。
    
QString QModbusDevice::errorString() const    
返回设备错误的描述性错误文本。
    
[pure virtual protected] bool QModbusDevice::open()    
该函数由connectDevice()调用。子类必须提供true在成功进行Modbus连接或连接初始化后返回的实现;否则返回false。

实现必须确保成功时将实例的状态()设置为QModbusDevice :: ConnectingState或QModbusDevice :: ConnectedState;否则QModbusDevice :: UnconnectedState。通常,当连接过程异步向后报告时使用QModbusDevice :: ConnectingState,而在同步连接行为的情况下使用QModbusDevice :: ConnectedState。
    
 void QModbusDevice::setConnectionParameter(int parameter, const QVariant &value)
 将parameter的值设置为value。如果参数已经存在,则先前的值将被覆盖。活动或正在运行的连接不受此类参数更改的影响。
     
 [protected] void QModbusDevice::setError(const QString &errorText, QModbusDevice::Error error)       
 设置设备的错误状态。发生错误时,ModBus设备实现必须使用此功能来设置错误类型和描述性errorText。       
        
 [protected] void QModbusDevice::setState(QModbusDevice::State newState)   
 将设备的状态设置为newState。Modbus设备实现必须使用此功能来更新设备状态。
     
 QModbusDevice::State QModbusDevice::state() const  
 返回设备的当前状态。    

05. 预留

06. 附录

6.1 Qt教程汇总
网址:https://dengjin.blog.csdn.net/article/details/115174639

© 版权声明
THE END
喜欢就支持一下吧
点赞38 分享
It is during our darkest moments that we must focus to see the light.
越是在艰难困苦的时候,我们越是要看到希望
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容