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::Raw | 0 | 回复来自原始 Modbus 请求。查看QModbusClient::sendRawRequest |
QModbusReply::Common | 1 | 应答来自普通读、写或读/写请求。参见QModbusClient::sendReadRequest,QModbusClient::sendWriteRequest 和QModbusClient::sendReadWriteRequest |
QModbusReply::Broadcast | 2 | 应答来自 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
。
QModbusResponse QModbusReply::rawResult() const
返回 Modbus 请求的原始响应。
如果请求尚未结束,则返回的QModbusResponse 实例无效。
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() 的返回值总是无效的。
© 2025 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.