QModbusReply 类

QModbusReply 类包含了使用衍生自 QModbusClient 类发送请求的数据。 更多信息...

头文件 #include <QModbusReply>
CMakefind_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmakeQT += serialbus
继承 QObject

公共类型

枚举ReplyType { Raw, Common, Broadcast }

公共函数

QModbusReply(QModbusReply::ReplyType type, int serverAddress, QObject *parent = nullptr)
QModbusDevice::Errorerror() const
QStringerrorString() const
(since 6.0) QList<QModbusDevice::IntermediateError>intermediateErrors() const
boolisFinished() const
QModbusResponserawResult() const
QModbusDataUnitresult() const
intserverAddress() const
QModbusReply::ReplyTypetype() const

信号

voiderrorOccurred(QModbusDevice::Error error)
voidfinished()

详细描述

成员类型文档

枚举 QModbusReply::ReplyType

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

常量描述
QModbusReply::Raw0回复来自原始 Modbus 请求。见 QModbusClient::sendRawRequest
QModbusReply::Common1回复来自通用读取、写入或读写请求。见 QModbusClient::sendReadRequestQModbusClient::sendWriteRequestQModbusClient::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()。

[信号] void QModbusReply::errorOccurred(QModbusDevice::Error error)

当检测到此回复处理中的错误时,将发出此信号。可能随后会发出finished()信号。

错误将用错误代码error描述。如果errorString不为空,则它将包含错误文本描述。在QModbusDevice::ProtocolError的情况下,可以使用rawResult()函数获取原始的Modbus异常响应以获取异常代码。

注意:不要在该信号的槽中删除此回复对象。请使用deleteLater()。

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

QString QModbusReply::errorString() const

返回此回复错误状态的文本表示。

如果没有发生错误,将返回空字符串。可能发生了没有相关文本表示的错误,在这种情况下,也将返回空字符串。

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

[信号] void QModbusReply::finished()

当回复完成处理时发出此信号。回复可能仍然返回了错误。

在此信号发出后,将不会有更多对回复数据的更新。

注意:不要在该信号的槽中删除对象。请使用deleteLater()。

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

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

[自6.0版起] QList<QModbusDevice::IntermediateError> QModbusReply::intermediateErrors() const

返回在发送-接收周期中可能发生的中间错误列表,直到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

© 2024 The Qt Company Ltd. 本文档中的贡献是各自所有者的版权。本文档是根据自由软件基金会发布的 GNU 自由文档许可证第 1.3 版 许可的。Qt 和相应的商标是 The Qt Company Ltd. 在芬兰和/或全球其他国家的商标。所有其他商标均为其各自所有者的财产。