00. 目录
01. 概述
QModbusReply类包含使用QModbusClient派生类发送的请求的数据。
Header: #include <QModbusReply>
qmake: QT += serialbus
Since: Qt 5.8
Inherits: QObject
02. 开发环境
Windows系统:Windows10
Qt版本:Qt5.15或者Qt6
03. 公有类型
enum ReplyType { Raw, Common, Broadcast }
enum QModbusReply::ReplyType
该枚举描述了可能的回复类型。
变量 | 值 | 描述 |
---|---|---|
QModbusReply::Raw |
0 |
回复源自原始的Modbus请求。参见QModbusClient :: sendRawRequest |
QModbusReply::Common |
1 |
答复源自常见的读取,写入或读取/写入请求。请参见QModbusClient :: sendReadRequest,QModbusClient :: sendWriteRequest和QModbusClient :: sendReadWriteRequest |
QModbusReply::Broadcast |
2 |
答复源自Modbus广播请求。所述serverAddress()将返回0 和完成(在)信号将被立即发出。 |
04. 公有成员方法
QModbusReply(QModbusReply::ReplyType type, int serverAddress, QObject *parent = nullptr)
构造一个具有给定类型和指定parent的QModbusReply对象。
答复将发送到以serverAddress表示的Modbus客户端。
QModbusDevice::Error error() const
返回此回复的错误状态。
QString errorString() const
返回此回复的错误状态的文本表示形式。
如果未发生任何错误,则将返回一个空字符串。没有关联的文本表示形式的错误很可能发生,在这种情况下,这还将返回一个空字符串。
bool isFinished() const
当回复完成或中止时返回true。
QModbusResponse rawResult() const
返回Modbus请求的原始响应。
如果请求尚未完成,则返回的QModbusResponse实例无效。
QModbusDataUnit result() const
返回Modbus请求的预处理结果。
对于通过QModbusClient :: sendReadWriteRequest()发送的读取请求以及组合的读取/写入请求,它包含从服务器实例读取的值。
如果请求尚未完成,因错误而失败或是写请求,则返回的QModbusDataUnit实例无效。
注意:如果回复的类型()是QModbusReply :: Broadcast,则返回值将始终无效。如果回复的l类型()为QModbusReply :: Raw,则返回值可能无效,具体取决于QModbusClient :: processPrivateResponse()的实现。
int serverAddress() const
返回此回复对象针对的服务器地址。
QModbusReply::ReplyType type() const
返回回复的类型。
05. 信号
void errorOccurred(QModbusDevice::Error error)
当在此回复的处理中检测到错误时,将发出此信号。信号finish()可能会随之而来。
错误将由错误代码error描述。如果errorString不为空,则将包含错误的文本描述。在QModbusDevice :: ProtocolError的情况下,rawResult()函数可用于获取原始的Modbus异常响应以获取异常代码。
注意:请勿在连接到该信号的插槽中删除该回复对象。使用deleteLater()代替。
void finished()
答复完成处理后,将发出此信号。回复可能仍返回错误。
发出此信号后,将不再对答复的数据进行任何更新。
注意:请勿删除与此信号连接的插槽中的对象。使用deleteLater()。
您也可以使用isFinished()来检查QNetworkReply是否已经完成,甚至在您未收到finish()信号之前。
06. 附录
6.1 Qt教程汇总
网址:https://dengjin.blog.csdn.net/article/details/115174639
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容