【Qt】QModbusResponse类
生活随笔
收集整理的這篇文章主要介紹了
【Qt】QModbusResponse类
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
00. 目錄
文章目錄
- 00. 目錄
- 01. 概述
- 02. 開發(fā)環(huán)境
- 03. 公有類型
- 04. 公有成員方法
- 05. 關聯(lián)非成員
- 06. 附錄
01. 概述
QModbusResponse是一個容器類,其中包含存儲在Modbus ADU中的功能碼和數據。
Header: #include <QModbusResponse>qmake: QT += serialbus Since: Qt 5.8 Inherits: QModbusPdu Inherited By: QModbusExceptionResponse典型的Modbus響應如下所示:
QModbusResponse response(QModbusResponse::ReadCoils, QByteArray::fromHex("02cd01"));**注意:**使用帶有的構造函數時QByteArray,請確保在創(chuàng)建請求之前將包含的數據轉換為big-endian字節(jié)順序。
如果在編譯時知道值,則可以像這樣創(chuàng)建相同的響應:
quint8 payloadInBytes = 2, outputHigh = 0xcd, outputLow = 0x01;QModbusResponse response(QModbusResponse::ReadCoils, payloadInBytes, outputHigh, outputLow);02. 開發(fā)環(huán)境
Windows系統(tǒng):Windows10
Qt版本:Qt5.15或者Qt6
03. 公有類型
[alias] QModbusResponse::CalcFuncPtr
這是decltype的類型別名。
Typedef指向與QModbusResponse :: calculateDataSize相同簽名的自定義計算器函數的指針。
04. 公有成員方法
QModbusResponse(QModbusPdu::FunctionCode code, Args... data)構造一個QModbusResponse,將功能代碼設置為code,將數據設置為data。數據被轉換并以大端字節(jié)順序存儲。注意:用法是有限的,quint8并且quint16僅限使用。這是因為QDataStream流運算符不僅會附加原始數據,還會附加復雜類型的大小,計數等。QModbusResponse(QModbusPdu::FunctionCode code, const QByteArray &data = QByteArray())構造一個QModbusResponse,將功能碼設置為code,將有數據設置為data。數據應該已經按大端字節(jié)順序存儲。QModbusResponse(const QModbusPdu &pdu)構造pdu的副本。QModbusResponse()構造一個無效的QModbusResponse。int calculateDataSize(const QModbusResponse &response)根據響應的功能碼和數據計算響應的預期數據大小。返回響應的數據部分的完整大小;如果無法正確計算則返回-1。int minimumDataSize(const QModbusResponse &response)根據響應的功能碼返回響應的預期最小數據大小;如果功能代碼未知則返回-1。void registerDataSizeCalculator(QModbusPdu::FunctionCode fc, QModbusResponse::CalcFuncPtr calculator)該函數注冊一個用戶定義的實現,以計算功能碼fc的響應數據大小。它可以用來擴展或覆蓋QModbusResponse :: calculateDataSize()中的實現。該CalcFuncPtr是一個指向自定義一個typedef計算器具有以下簽名功能:int myCalculateDataSize(const QModbusResponse &pdu);05. 關聯(lián)非成員
QDataStream &operator>>(QDataStream &stream, QModbusResponse &pdu) 從流中讀取一個pdu并返回對該流的引用。注意:由于PDU內部缺少大小指示符,該功能可能無法正確地流式傳輸帶有功能代碼QModbusPdu :: Diagnostics或QModbusPdu :: EncapsulatedInterfaceTransport的PDU。特別是當PDU嵌入到不以診斷/封裝請求本身結尾的流中時,可能會發(fā)生這種情況。06. 附錄
6.1 Qt教程匯總
網址:https://dengjin.blog.csdn.net/article/details/115174639
總結
以上是生活随笔為你收集整理的【Qt】QModbusResponse类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Qt】QModbusRequest类
- 下一篇: 【Qt】QModbusRtuSerial