QModbusResponse Class
QModbusResponse는 모드버스 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) |
상세 설명
일반적인 모드버스 응답은 다음과 같습니다:
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 을 읽고 스트림에 대한 참조를 반환합니다.
참고: 이 함수는 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.