Класс QModbusClient
Класс QModbusClient — это интерфейс для отправки запросов Modbus. Подробнее...
| Заголовок: | #include <QModbusClient> |
| qmake: | QT += serialbus |
| С тех пор: | Qt 5.6 |
| Наследует: | QModbusDevice |
| Наследуется от: |
Свойства
- timeout : int
- 1 свойство унаследовано от QObject
Открытые функции
| QModbusClient(QObject *parent = nullptr) | |
| int | numberOfRetries() const |
| QModbusReply * | sendRawRequest(const QModbusRequest &request, int serverAddress) |
| QModbusReply * | sendReadRequest(const QModbusDataUnit &read, int serverAddress) |
| QModbusReply * | sendReadWriteRequest(const QModbusDataUnit &read, const QModbusDataUnit &write, int serverAddress) |
| QModbusReply * | sendWriteRequest(const QModbusDataUnit &write, int serverAddress) |
| void | setNumberOfRetries(int number) |
| void | setTimeout(int newTimeout) |
| int | timeout() const |
- 7 открытых функций унаследовано от QModbusDevice
- 31 открытых функций унаследовано от QObject
Сигналы
| void | timeoutChanged(int newTimeout) |
- 2 сигнала унаследовано от QModbusDevice
- 2 сигнала унаследовано от QObject
Защищенные функции
| virtual bool | processPrivateResponse(const QModbusResponse &response, QModbusDataUnit *data) |
| virtual bool | processResponse(const QModbusResponse &response, QModbusDataUnit *data) |
- 4 защищенных функций унаследовано от QModbusDevice
- 9 защищенных функций унаследовано от QObject
Дополнительные унаследованные члены
Подробное описание
Класс QModbusClient — это интерфейс для отправки запросов Modbus.
API QModbusClient построен вокруг одного объекта QModbusClient, который содержит общую конфигурацию и настройки для отправляемых им запросов. Одному объекту QModbusClient должно быть достаточно для всего приложения Qt.
После создания объекта QModbusClient приложение может использовать его для отправки запросов. Возвращаемый объект используется для получения любых данных, возвращенных в ответ на соответствующий запрос.
QModbusClient имеет асинхронный API. Когда вызывается слот finished, параметром является объект QModbusReply, содержащий PDU, а также метаданные (адресация и т. д.).
Примечание: QModbusClient очередирует получаемые запросы. Количество запросов, выполняемых параллельно, зависит от протокола. Например, протокол HTTP на настольных платформах выполняет 6 запросов параллельно для одной комбинации хост/порт.
Документация свойств
timeout : int
Это свойство содержит значение таймаута, используемое этим клиентом
Возвращает значение таймаута, используемое этим экземпляром QModbusClient в мс. Таймаут обозначается ошибкой TimeoutError. Значение по умолчанию составляет 1000 мс.
Функции доступа:
| int | timeout() const |
| void | setTimeout(int newTimeout) |
Сигнал оповещения:
| void | timeoutChanged(int newTimeout) |
См. также setTimeout.
Документация функций-членов
QModbusClient::QModbusClient(QObject *parent = nullptr)
Конструирует устройство Modbus-клиента со указанным parent.
int QModbusClient::numberOfRetries() const
Возвращает количество попыток повторной отправки запроса клиентом перед ошибкой запроса. Значение по умолчанию установлено на 3.
См. также setNumberOfRetries().
[virtual protected] bool QModbusClient::processPrivateResponse(const QModbusResponse &response, QModbusDataUnit *data)
Для реализации пользовательской реализации Modbus-клиента. По умолчанию реализация игнорирует response и data. Она всегда возвращает false, чтобы указать ошибку.
[virtual protected] bool QModbusClient::processResponse(const QModbusResponse &response, QModbusDataUnit *data)
Обрабатывает ответ Modbus-сервера response и сохраняет декодированную информацию в data. Возвращает true при успехе, иначе false.
QModbusReply *QModbusClient::sendRawRequest(const QModbusRequest &request, int serverAddress)
Отправляет сырой запрос Modbus request. Сырой запрос может содержать все, что помещается в данные секции PDU Modbus, и имеет допустимый код функции. Единственная проверка, выполняемая перед отправкой, — это проверка правильности, см. QModbusPdu::isValid. Если ошибок не произошло, функция возвращает новый допустимый QModbusReply; в противном случае nullptr. В сетях Modbus может быть несколько серверов, каждый сервер имеет уникальный serverAddress.
См. также QModbusReply::rawResult().
QModbusReply *QModbusClient::sendReadRequest(const QModbusDataUnit &read, int serverAddress)
Отправляет запрос на чтение содержимого данных, указанных в read. Возвращает новый допустимый объект QModbusReply, если ошибок не произошло, в противном случае nullptr. Сеть Modbus может содержать несколько серверов, каждый сервер имеет уникальный serverAddress.
QModbusReply *QModbusClient::sendReadWriteRequest(const QModbusDataUnit &read, const QModbusDataUnit &write, int serverAddress)
Отправляет запрос на чтение содержимого данных, указанных в read, и на изменение содержимого данных, указанных в write, используя код функции Modbus QModbusPdu::ReadWriteMultipleRegisters. Возвращает новый допустимый объект QModbusReply, если ошибок не произошло, в противном случае nullptr. Сеть Modbus может содержать несколько серверов, каждый сервер имеет уникальный serverAddress.
Примечание: Отправка такого запроса допустима только если и read и write являются типа QModbusDataUnit::HoldingRegisters.
QModbusReply *QModbusClient::sendWriteRequest(const QModbusDataUnit &write, int serverAddress)
Отправляет запрос на изменение содержимого данных, указанных в write. Возвращает новый объект QModbusReply, если ошибка не произошла, в противном случае nullptr. Модуль Modbus может иметь несколько серверов, каждый сервер имеет уникальный serverAddress.
void QModbusClient::setNumberOfRetries(int number)
Устанавливает количество попыток повторной отправки запроса клиентом до сработки ошибки. Значение по умолчанию установлено в 3.
Примечание: Новое значение должно быть больше или равно 0. Изменение этого свойства повлияет только на новые запросы, а не на уже запланированные.
См. также numberOfRetries().
void QModbusClient::setTimeout(int newTimeout)
Устанавливает newTimeout для этого экземпляра QModbusClient. Минимальное время ожидания составляет 50 мс.
Время ожидания используется клиентом для определения того, как долго он ожидает ответа от сервера. Если ответ не получен в течение требуемого времени ожидания, устанавливается TimeoutError.
Уже активные/работающие таймауты не затрагиваются изменениями времени ожидания.
Примечание: Функция-сеттер для свойства timeout.
См. также timeout.
[signal] void QModbusClient::timeoutChanged(int newTimeout)
Этот сигнал испускается, если ответ не получен в течение требуемого времени ожидания. Новое время ожидания ответа для устройства передается как newTimeout.
Примечание: Сигнал-уведомление для свойства timeout.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qmodbusclient.html