QModbusResponse Class
QModbusResponse は Modbus ADU 内に格納されるファンクション・コードとペイロードを含むコンテナ・クラスです。詳細...
Header: | #include <QModbusResponse> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
qmake: | QT += serialbus |
Inherits: | QModbusPdu |
Inherited By: |
パブリック・タイプ
パブリック関数
QModbusResponse() | |
QModbusResponse(const QModbusPdu &pdu) | |
QModbusResponse(QModbusPdu::FunctionCode code, Args... data) | |
QModbusResponse(QModbusPdu::FunctionCode code, const QByteArray &data = QByteArray()) |
静的パブリック・メンバー
int | calculateDataSize(const QModbusResponse &response) |
int | minimumDataSize(const QModbusResponse &response) |
void | registerDataSizeCalculator(QModbusPdu::FunctionCode fc, QModbusResponse::CalcFuncPtr calculator) |
関連する非メンバー
QDataStream & | operator>>(QDataStream &stream, QModbusResponse &pdu) |
詳細説明
典型的な Modbus レスポンスは次のようになります:
QModbusResponse response(QModbusResponse::ReadCoils, QByteArray::fromHex("02cd01"));
注: QByteArray
を取るコンストラクタを使用するときは、リクエストを作成する前に、含まれるデータをビッグエンディアン・バイトオーダーに変換してください。
コンパイル時に値がわかっていれば、同じレスポンスがこのように作成できます:
quint8 payloadInBytes = 2, outputHigh = 0xcd, outputLow = 0x01; QModbusResponse response(QModbusResponse::ReadCoils, payloadInBytes, outputHigh, outputLow);
メンバー型ドキュメント
[alias]
QModbusResponse::CalcFuncPtr
QModbusResponse::calculateDataSize と同じシグネチャを持つカスタム電卓関数へのポインタのための型定義。
メンバ関数ドキュメント
[constexpr noexcept]
QModbusResponse::QModbusResponse()
無効な QModbusResponse を構築します。
QModbusResponse::QModbusResponse(const QModbusPdu &pdu)
pdu のコピーを構築します。
template <typename... Args> QModbusResponse::QModbusResponse(QModbusPdu::FunctionCode code, Args... data)
関数コードがcode に設定され、ペイロードがdata に設定された QModbusResponse を構築します。 データはビッグエンディアン・バイト順に変換され、保存されます。
注意: 使用はquint8
とquint16
に限定されます。これは、QDataStream
ストリーム・オペレータが生データだけでなく、複雑なタイプのサイズやカウントなども追加するためです。
[explicit]
QModbusResponse::QModbusResponse(QModbusPdu::FunctionCode code, const QByteArray &data = QByteArray())
ファンクション・コードがcode に設定され、ペイロードがdata に設定された QModbusResponse を構築します。 データは既にビッグエンディアン・バイト順で格納されていることが期待されます。
[static]
int QModbusResponse::calculateDataSize(const QModbusResponse &response)
レスポンスのファンクション・コードとデータに基づいて、response の予想データ・サイズを計算します。サイズが正しく計算できなかった場合は-1
を返します。
minimumDataSize およびregisterDataSizeCalculatorも参照してください 。
[static]
int QModbusResponse::minimumDataSize(const QModbusResponse &response)
レスポンスのファンクションコードに基づき、response 、予想される最小データサイズを返す。ファンクションコードが不明な場合は、-1
。
[static]
void QModbusResponse::registerDataSizeCalculator(QModbusPdu::FunctionCode fc, QModbusResponse::CalcFuncPtr calculator)
この関数は、関数コードfc のレスポンス・データ・サイズを計算するためのユーザー定義実装を登録します。この関数は、QModbusResponse::calculateDataSize() 内の実装を拡張またはオーバーライドするために使用できます。
CalcFuncPtr
は、以下のシグネチャを持つカスタム関数calculator へのポインタの typedef である:
int myCalculateDataSize(const QModbusResponse &pdu);
関連する非メンバー
QDataStream &operator>>(QDataStream &stream, QModbusResponse &pdu)
stream からpdu を読み込み、ストリームへの参照を返す。
注意: この関数は、関数コードQModbusPdu::Diagnostics またはQModbusPdu::EncapsulatedInterfaceTransport を持つ PDU のストリーミングに失敗することがあります。特に、PDUが診断/カプセル化リクエスト自体で終わらないストリームに埋め込まれている場合に発生する可能性があります。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。