Класс QModbusDevice
Класс QModbusDevice — базовый класс для классов Modbus, QModbusServer и QModbusClient. Подробнее...
| Заголовок: | #include <QModbusDevice> |
| qmake: | QT += serialbus |
| С момента: | Qt 5.8 |
| Наследует: | QObject |
| Наследуется в: |
Типы Public
| перечисление | ConnectionParameter { SerialPortNameParameter, SerialParityParameter, SerialBaudRateParameter, SerialDataBitsParameter, SerialStopBitsParameter, …, NetworkAddressParameter } |
| перечисление | Error { NoError, ReadError, WriteError, ConnectionError, ConfigurationError, …, UnknownError } |
| перечисление | IntermediateError { ResponseCrcError, ResponseRequestMismatch } |
| перечисление | State { UnconnectedState, ConnectingState, ConnectedState, ClosingState } |
Функции Public
| 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 |
Сигналы
| 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) |
Подробное описание
Документация по типу члена
перечисление QModbusDevice::ConnectionParameter
Это перечисление описывает возможные значения, которые могут быть установлены для подключения устройства Modbus.
Общее значение (и соответствующие типы) —
| Постоянная | Значение | Описание |
|---|---|---|
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
|
перечисление QModbusDevice::Error
Это перечисление описывает все возможные условия возникновения ошибок.
| Постоянная | Значение | Описание |
|---|---|---|
QModbusDevice::NoError |
0 |
Ошибок не произошло. |
QModbusDevice::ReadError |
1 |
Во время операции чтения произошла ошибка. |
QModbusDevice::WriteError |
2 |
Во время операции записи произошла ошибка. |
QModbusDevice::ConnectionError |
3 |
Произошла ошибка при попытке открыть бэкенд. |
QModbusDevice::ConfigurationError |
4 |
Произошла ошибка при попытке установить параметр конфигурации. |
QModbusDevice::TimeoutError |
5 |
Произошло истечение времени ожидания во время операций ввода-вывода. Операция ввода-вывода не завершилась в заданный промежуток времени. |
QModbusDevice::ProtocolError |
6 |
Произошла ошибка протокола Modbus. |
QModbusDevice::ReplyAbortedError |
7 |
Ответ был прерван из-за отключения устройства. |
QModbusDevice::UnknownError |
8 |
Произошла неизвестная ошибка. |
[since 6.0] перечисление QModbusDevice::IntermediateError
Это перечисление описывает возможные ошибки, которые могут возникнуть во время полного цикла отправки и получения ответа Modbus.
| Постоянная | Значение | Описание |
|---|---|---|
QModbusDevice::ResponseCrcError |
0 |
Получен ответ Modbus с неправильной контрольной суммой CRC. |
QModbusDevice::ResponseRequestMismatch |
1 |
Получен ответ Modbus, но он не соответствует открытому запросу, вероятно, из-за того, что код функции PDU не совпадает. |
Если любая из указанных промежуточных ошибок произошла, кадр, вероятно, будет переслан до достижения максимального числа попыток.
Список промежуточных ошибок можно проверить с помощью функции QModbusReply промежуточных ошибок.
Это перечисление было введено или изменено в Qt 6.0.
См. также QModbusClient::numberOfRetries() и QModbusReply::intermediateErrors().
перечисление QModbusDevice::State
Это перечисление описывает все возможные состояния устройства.
| Константа | Значение | Описание |
|---|---|---|
QModbusDevice::UnconnectedState |
0 |
Устройство отключено. |
QModbusDevice::ConnectingState |
1 |
Устройство подключается. |
QModbusDevice::ConnectedState |
2 |
Устройство подключено к сети Modbus. |
QModbusDevice::ClosingState |
3 |
Устройство закрывается. |
Документация по членам-функциям
QModbusDevice::QModbusDevice(QObject *parent = nullptr)
Конструирует устройство Modbus со указанным parent.
[signal] void QModbusDevice::errorOccurred(QModbusDevice::Error error)
Этот сигнал испускается, когда возникает ошибка типа error.
[signal] void QModbusDevice::stateChanged(QModbusDevice::State state)
Этот сигнал испускается каждый раз, когда состояние устройства меняется. Новое состояние представлено параметром state.
См. также setState() и state().
[virtual] QModbusDevice::~QModbusDevice()
Удаляет экземпляр QModbusDevice.
[pure virtual protected] void QModbusDevice::close()
Эта функция отвечает за закрытие подключения Modbus. Реализация должна гарантировать, что состояние экземпляра state() установлено в QModbusDevice::UnconnectedState.
См. также disconnectDevice().
bool QModbusDevice::connectDevice()
Подключает устройство к сети Modbus. Возвращает true если процесс подключения успешно инициирован; в противном случае false. Окончательное подтверждение успешного подключения требует, чтобы state() изменилось на QModbusDevice::ConnectedState.
Эта функция вызывает open() как часть своей реализации.
См. также open().
QVariant QModbusDevice::connectionParameter(QModbusDevice::ConnectionParameter parameter) const
Возвращает значение, связанное с заданным параметром подключения parameter. Возвращаемое значение может быть пустым.
По умолчанию QModbusDevice инициализируется некоторыми общими значениями. Параметры последовательного порта: чётность, скорость 19200 бит в секунду, 8 битов данных и 1 стоп-бит. Параметры сетевого подключения: адрес хоста - локальный хост, порт - 502.
Примечание: Для успешного подключения по последовательному каналу, параметр SerialPortNameParameter должен быть установлен на корректный коммуникационный порт. Информация о корректных последовательных портах может быть получена из QSerialPortInfo.
Примечание: Если устройство уже подключено, настройки учитываются после повторного подключения устройства.
См. также setConnectionParameter() и ConnectionParameter.
[since 5.14] QIODevice *QModbusDevice::device() const
Возвращает базовое QIODevice, используемое для связи ModBus, или nullptr если устройство еще не полностью инициализировано.
Примечание: Не сохраняйте указатель на базовое устройство, так как он может стать недействительным в любой момент.
Эта функция была добавлена в Qt 5.14.
void QModbusDevice::disconnectDevice()
Отключает устройство.
Эта функция вызывает close() как часть своей реализации.
QModbusDevice::Error QModbusDevice::error() const
Возвращает состояние ошибки устройства.
См. также setError() и QModbusDevice::Error.
QString QModbusDevice::errorString() const
Возвращает описательный текст ошибки для ошибки устройства.
См. также QModbusDevice::Error.
[pure virtual protected] bool QModbusDevice::open()
Эта функция вызывается connectDevice(). Подклассы должны предоставить реализацию, возвращающую true при успешном подключении Modbus или инициализации подключения; в противном случае возвращает 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)
Устанавливает состояние ошибки устройства. Реализации устройств ModBus должны использовать эту функцию в случае ошибки, чтобы установить тип error и описательный текст errorText.
См. также error() и QModbusDevice::Error.
[protected] void QModbusDevice::setState(QModbusDevice::State newState)
Устанавливает состояние устройства в newState. Реализации устройств Modbus должны использовать эту функцию для обновления состояния устройства.
См. также state().
QModbusDevice::State QModbusDevice::state() const
Возвращает текущее состояние устройства.
См. также setState() и stateChanged().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qmodbusdevice.html