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 |
| 상속받는 클래스: |
공개 유형
공개 함수
| 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 와 시그니처가 동일한 사용자 정의 계산기 함수를 가리키는 포인터에 대한 typedef입니다.
멤버 함수 설명서
[constexpr noexcept default] 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 를 읽어들이고, 해당 스트림에 대한 참조를 반환합니다.
참고: PDU 내에 크기 표시기가 누락된 경우,이 함수는 함수 코드 QModbusPdu::Diagnostics 또는 QModbusPdu::EncapsulatedInterfaceTransport 을 사용하여 PDU를 제대로 스트리밍하지 못할 수 있습니다. 특히, PDU가 진단/캡슐화된 요청 자체로 끝나지 않는 스트림에 포함된 경우 이러한 현상이 발생할 수 있습니다.
© 2026 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.