QModbusDevice Class
QModbusDevice 클래스는 모드버스 클래스( QModbusServer 및 QModbusClient)의 기본 클래스입니다. 더 보기...
헤더: | #include <QModbusDevice> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
qmake: | QT += serialbus |
상속합니다: | QObject |
상속 대상 |
공용 유형
enum | ConnectionParameter { SerialPortNameParameter, SerialParityParameter, SerialBaudRateParameter, SerialDataBitsParameter, SerialStopBitsParameter, …, NetworkAddressParameter } |
enum | Error { NoError, ReadError, WriteError, ConnectionError, ConfigurationError, …, InvalidResponseError } |
(since 6.0) enum | IntermediateError { ResponseCrcError, ResponseRequestMismatch } |
enum | State { UnconnectedState, ConnectingState, ConnectedState, ClosingState } |
공용 함수
QModbusDevice(QObject *parent = nullptr) | |
virtual | ~QModbusDevice() |
bool | connectDevice() |
QVariant | connectionParameter(QModbusDevice::ConnectionParameter parameter) const |
QIODevice * | device() const |
void | disconnectDevice() |
QModbusDevice::Error | error() const |
QString | errorString() const |
void | setConnectionParameter(QModbusDevice::ConnectionParameter parameter, const QVariant &value) |
QModbusDevice::State | state() const |
Signals
void | errorOccurred(QModbusDevice::Error error) |
void | stateChanged(QModbusDevice::State state) |
보호된 함수
virtual void | close() = 0 |
virtual bool | open() = 0 |
void | setError(const QString &errorText, QModbusDevice::Error error) |
void | setState(QModbusDevice::State newState) |
멤버 유형 문서
enum QModbusDevice::ConnectionParameter
이 열거형은 모드버스 장치 연결에 설정할 수 있는 가능한 값을 설명합니다.
일반적인 목적 값(및 관련 유형)은 다음과 같습니다:
상수 | 값 | 설명 |
---|---|---|
QModbusDevice::SerialPortNameParameter | 0 | 이 매개변수는 장치 통신에 사용되는 직렬 포트(예: COM1)를 보유합니다. QString |
QModbusDevice::SerialParityParameter | 1 | 이 매개변수는 패리티 검사 모드를 보유합니다. QSerialPort::Parity |
QModbusDevice::SerialBaudRateParameter | 2 | 이 파라미터는 통신의 데이터 전송 속도를 보유합니다. QSerialPort::BaudRate |
QModbusDevice::SerialDataBitsParameter | 3 | 이 매개변수는 프레임의 데이터 비트를 보유합니다. QSerialPort::DataBits |
QModbusDevice::SerialStopBitsParameter | 4 | 이 매개변수는 프레임의 정지 비트 수를 나타냅니다. QSerialPort::StopBits |
QModbusDevice::NetworkPortParameter | 5 | 이 매개변수는 네트워크 포트를 보유합니다. int |
QModbusDevice::NetworkAddressParameter | 6 | 이 매개변수는 네트워크 통신을 위한 호스트 주소를 보유합니다. QString |
enum QModbusDevice::Error
이 열거형은 가능한 모든 오류 조건을 설명합니다.
Constant | 값 | 설명 |
---|---|---|
QModbusDevice::NoError | 0 | 오류가 발생하지 않았습니다. |
QModbusDevice::ReadError | 1 | 읽기 작업 중에 오류가 발생했습니다. |
QModbusDevice::WriteError | 2 | 쓰기 작업 중에 오류가 발생했습니다. |
QModbusDevice::ConnectionError | 3 | 백엔드를 열려고 하는 동안 오류가 발생했습니다. |
QModbusDevice::ConfigurationError | 4 | 구성 매개변수를 설정하는 동안 오류가 발생했습니다. |
QModbusDevice::TimeoutError | 5 | I/O 중에 시간 초과가 발생했습니다. I/O 작업이 지정된 시간 내에 완료되지 않았습니다. |
QModbusDevice::ProtocolError | 6 | 모드버스 관련 프로토콜 오류가 발생했습니다. |
QModbusDevice::ReplyAbortedError | 7 | 장치 연결이 끊어져 응답이 중단되었습니다. |
QModbusDevice::UnknownError | 8 | 알 수 없는 오류가 발생했습니다. |
QModbusDevice::InvalidResponseError (since Qt 6.4) | 9 | 응답을 구문 분석하는 동안 오류가 발생했거나 현재 구현에서 FunctionCode 이 지원되지 않습니다. 후자의 경우 사용자 지정 Modbus 클라이언트 구현에서 processResponse() 및 processPrivateResponse() 메서드를 재정의하여 필요한 기능을 지원할 수 있습니다. |
[since 6.0]
enum QModbusDevice::IntermediateError
이 열거형은 모드버스 응답의 전체 송수신 주기 동안 발생할 수 있는 오류를 설명합니다.
Constant | 값 | 설명 |
---|---|---|
QModbusDevice::ResponseCrcError | 0 | 잘못된 CRC가 포함된 모드버스 응답이 수신되었습니다. |
QModbusDevice::ResponseRequestMismatch | 1 | 모드버스 응답이 수신되었지만 PDU의 기능 코드가 일치하지 않아서 열린 요청과 일치하지 않습니다. |
위의 중간 오류가 발생한 경우 최대 재시도 횟수에 도달할 때까지 프레임이 재전송될 수 있습니다.
중간 오류 목록은 QModbusReply 중간 오류 함수에서 확인할 수 있습니다.
이 열거형은 Qt 6.0에 도입되었습니다.
QModbusClient::numberOfRetries() 및 QModbusReply::intermediateErrors()도 참조하세요 .
enum QModbusDevice::State
이 열거형은 가능한 모든 장치 상태를 설명합니다.
상수 | 값 | 설명 |
---|---|---|
QModbusDevice::UnconnectedState | 0 | 장치가 연결이 끊어졌습니다. |
QModbusDevice::ConnectingState | 1 | 장치가 연결 중입니다. |
QModbusDevice::ConnectedState | 2 | 장치가 Modbus 네트워크에 연결되어 있습니다. |
QModbusDevice::ClosingState | 3 | 장치가 닫히는 중입니다. |
멤버 기능 문서
[explicit]
QModbusDevice::QModbusDevice(QObject *parent = nullptr)
지정된 parent 으로 모드버스 장치를 구축합니다.
[virtual noexcept]
QModbusDevice::~QModbusDevice()
QModbusDevice 인스턴스를 삭제합니다.
[pure virtual protected]
void QModbusDevice::close()
이 함수는 모드버스 연결을 닫는 역할을 합니다. 구현 시 인스턴스의 state()가 QModbusDevice::UnconnectedState 으로 설정되어 있는지 확인해야 합니다.
disconnectDevice()도 참조하세요 .
bool QModbusDevice::connectDevice()
장치를 모드버스 네트워크에 연결합니다. 연결 프로세스가 성공적으로 시작되면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다. 최종 연결 성공 확인을 위해서는 state()를 QModbusDevice::ConnectedState 으로 변경해야 합니다.
이 함수는 구현의 일부로 open()를 호출합니다.
open()도 참조하세요 .
QVariant QModbusDevice::connectionParameter(QModbusDevice::ConnectionParameter parameter) const
주어진 연결과 관련된 값을 반환합니다 parameter. 반환된 값은 비어 있을 수 있습니다.
기본적으로 QModbusDevice
은 몇 가지 일반적인 값으로 초기화됩니다. 직렬 포트 설정은 짝수 패리티, 초당 19200 비트의 전송 속도, 8개의 데이터 비트 및 1개의 스톱 비트입니다. 호스트 주소의 네트워크 설정은 로컬 호스트로, 포트는 502로 설정됩니다.
참고: 직렬 연결이 성공하려면 SerialPortNameParameter 을 유효한 통신 포트로 설정해야 합니다. 유효한 직렬 포트에 대한 정보는 QSerialPortInfo 에서 확인할 수 있습니다.
참고: 장치가 이미 연결되어 있는 경우 장치를 다시 연결한 후 설정이 적용됩니다.
setConnectionParameter() 및 ConnectionParameter 을참조하세요 .
QIODevice *QModbusDevice::device() const
ModBus 통신에 사용되는 기본 QIODevice 또는 디바이스가 아직 완전히 초기화되지 않은 경우 nullptr
을 반환합니다.
참고: 기본 장치에 대한 포인터는 언제든지 무효화될 수 있으므로 저장하지 마세요.
void QModbusDevice::disconnectDevice()
장치 연결을 끊습니다.
이 함수는 구현의 일부로 close()를 호출합니다.
QModbusDevice::Error QModbusDevice::error() const
디바이스의 오류 상태를 반환합니다.
setError() 및 QModbusDevice::Error도 참조하세요 .
[signal]
void QModbusDevice::errorOccurred(QModbusDevice::Error error)
이 신호는 error 유형의 오류가 발생할 때 전송됩니다.
QString QModbusDevice::errorString() const
장치 오류에 대한 설명적인 오류 텍스트를 반환합니다.
QModbusDevice::Error도 참조하세요 .
[pure virtual protected]
bool QModbusDevice::open()
이 함수는 connectDevice()에 의해 호출됩니다. 서브클래스는 모드버스 연결 또는 연결 시작에 성공하면 true
을 반환하고, 그렇지 않으면 false
을 반환하는 구현을 제공해야 합니다.
구현은 인스턴스의 state()가 성공 시 QModbusDevice::ConnectingState 또는 QModbusDevice::ConnectedState 로 설정되어 있는지, 그렇지 않으면 QModbusDevice::UnconnectedState 로 설정되어 있는지 확인해야 합니다. 일반적으로 연결 프로세스가 비동기적으로 보고할 때는 QModbusDevice::ConnectingState, 동기 연결 동작의 경우에는 QModbusDevice::ConnectedState 이 사용됩니다.
connectDevice()도 참조하세요 .
void QModbusDevice::setConnectionParameter(QModbusDevice::ConnectionParameter parameter, const QVariant &value)
parameter 값을 value 으로 설정합니다. parameter 이 이미 존재하는 경우 이전 값을 덮어씁니다. 활성 또는 실행 중인 연결은 이러한 매개변수 변경의 영향을 받지 않습니다.
ConnectionParameter 및 connectionParameter()도 참조하세요 .
[protected]
void QModbusDevice::setError(const QString &errorText, QModbusDevice::Error error)
디바이스의 오류 상태를 설정합니다. 오류 발생 시 이 함수를 사용하여 error 유형과 설명이 포함된 errorText 을 설정해야 하는 ModBus 장치 구현이 필요합니다.
error() 및 QModbusDevice::Error도 참조하세요 .
[protected]
void QModbusDevice::setState(QModbusDevice::State newState)
장치 상태를 newState 로 설정합니다. 모드버스 장치 구현은 이 함수를 사용하여 장치 상태를 업데이트해야 합니다.
state()도 참조하세요 .
QModbusDevice::State QModbusDevice::state() const
디바이스의 현재 상태를 반환합니다.
setState() 및 stateChanged()도 참조하세요 .
[signal]
void QModbusDevice::stateChanged(QModbusDevice::State state)
이 신호는 디바이스의 상태가 변경될 때마다 발신됩니다. 새 상태는 state 로 표시됩니다.
© 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.