QModbusReply 类
QModbusReply 类包含了使用衍生自 QModbusClient 类发送请求的数据。 更多信息...
头文件 | #include <QModbusReply> |
CMake | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
qmake | QT += serialbus |
继承 | QObject |
公共类型
枚举 | 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() |
成员类型文档
枚举 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()。
[信号]
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
。
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() 的返回值始终无效。
© 2024 The Qt Company Ltd. 本文档中的贡献是各自所有者的版权。本文档是根据自由软件基金会发布的 GNU 自由文档许可证第 1.3 版 许可的。Qt 和相应的商标是 The Qt Company Ltd. 在芬兰和/或全球其他国家的商标。所有其他商标均为其各自所有者的财产。