QModbusResponse Class

QModbusResponse は Modbus ADU 内に格納されるファンクション・コードとペイロードを含むコンテナ・クラスです。詳細...

ヘッダー #include <QModbusResponse>
CMake: find_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmake: QT += serialbus
を継承する: QModbusPdu
継承元:

QModbusExceptionResponse

パブリックな型

パブリック関数

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 を構築します。 データはビッグエンディアン・バイト順に変換され保存されます。

注意: 使用はquint8quint16 に限定されます。これは、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が診断/カプセル化リクエスト自体で終わらないストリームに埋め込まれている場合に発生する可能性がある。

© 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.