本页内容

QModbusReply Class

QModbusReply 类包含由QModbusClient 派生类发送的请求所对应的数据。更多内容...

头文件: #include <QModbusReply>
CMake: find_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmake: QT += serialbus
继承自: QObject

公共类型

enum ReplyType { Raw, Common, Broadcast }

公共函数

QModbusReply(QModbusReply::ReplyType type, int serverAddress, QObject *parent = nullptr)
QModbusDevice::Error error() const
QString errorString() const
(since 6.0) QList<QModbusDevice::IntermediateError> intermediateErrors() const
bool isFinished() const
QModbusResponse rawResult() const
QModbusDataUnit result() const
int serverAddress() const
QModbusReply::ReplyType type() const

信号

void errorOccurred(QModbusDevice::Error error)
void finished()

详细说明

成员类型文档

enum QModbusReply::ReplyType

此枚举描述了可能的回复类型。

常量值描述
QModbusReply::Raw0该响应源自一个原始 Modbus 请求。参见QModbusClient::sendRawRequest
QModbusReply::Common1该响应源自普通的读取、写入或读写请求。参见QModbusClient::sendReadRequest 、QModbusClient::sendWriteRequest 以及QModbusClient::sendReadWriteRequest
QModbusReply::Broadcast2该响应源自一个 Modbus 广播请求。serverAddress() 将返回0 ,并且会立即触发finished() 信号。

成员函数文档

QModbusReply::QModbusReply(QModbusReply::ReplyType type, int serverAddress, QObject *parent = nullptr)

根据给定的type 和指定的parent ,构建一个QModbusReply对象。

该应答将发送给由serverAddress 表示的Modbus客户端。

QModbusDevice::Error QModbusReply::error() const

返回此响应的错误状态。

另请参阅 errorString() 和errorOccurred()。

[signal] void QModbusReply::errorOccurred(QModbusDevice::Error error)

当在处理此响应时检测到错误时,将发出此信号。随后可能会发出finished()信号。

该错误将由错误代码error 描述。如果errorString 不为空,则其中将包含该错误的文本描述。若出现QModbusDevice::ProtocolError 异常,可使用rawResult() 函数获取原始的 Modbus 异常响应,从而获取异常代码。

注意:请勿在连接此信号的插槽中删除此响应对象。请改用deleteLater()。

另请参阅 error() 和errorString()。

QString QModbusReply::errorString() const

返回此响应的错误状态的文本描述。

如果未发生错误,则返回空字符串。也可能发生了没有关联文本描述的错误,这种情况下也会返回空字符串。

另请参阅 error() 和errorOccurred()。

[signal] void QModbusReply::finished()

当回复处理完成时,会发出此信号。此时,回复仍可能因错误而返回。

该信号发出后,回复的数据将不再进行更新。

注意:请 勿在连接到此信号的槽中删除该对象。请使用deleteLater()。

您还可以使用 `isFinished()` 来检查 `QNetworkReply` 是否已完成,即使在收到 `finished()` 信号之前。

另请参阅 isFinished() 和error()。

[since 6.0] QList<QModbusDevice::IntermediateError> QModbusReply::intermediateErrors() const

返回在Modbus请求的发送-接收循环期间可能发生的中间错误列表,直至QModbusReply 报告操作完成。

该函数在 Qt 6.0 中引入。

bool QModbusReply::isFinished() const

当响应完成或被中止时,返回true 。

另请参阅 finished() 和error()。

QModbusResponse QModbusReply::rawResult() const

返回 Modbus 请求的原始响应。

如果请求尚未完成,则返回的QModbusResponse 实例无效。

另请参阅 type() 和result()。

QModbusDataUnit QModbusReply::result() const

返回 Modbus 请求的预处理结果。

对于通过 `QModbusClient::sendReadWriteRequest()` 发送的读取请求以及组合的读写请求,该结果包含从服务器实例读取的值。

如果请求尚未完成、因错误而失败,或者是一个写请求,则返回的QModbusDataUnit 实例无效。

注意:如果 响应的type() 为QModbusReply::Broadcast ,则返回值始终无效。如果响应的type() 为QModbusReply::Raw ,则返回值是否无效取决于QModbusClient::processPrivateResponse() 的实现。

另请参阅 type()、rawResult() 和QModbusClient::processPrivateResponse()。

int QModbusReply::serverAddress() const

返回此响应对象所指向的服务器地址。

QModbusReply::ReplyType QModbusReply::type() const

返回回复的类型。

注意:如果 响应的类型为QModbusReply::Raw ,则result()的返回值将始终无效。

另请参阅 result() 和rawResult()。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.