Spec-Zone.ru › Qt 5.6

Класс QModbusClient

Класс QModbusClient — это интерфейс для отправки запросов Modbus. Подробнее...

Заголовок: #include <QModbusClient>
qmake: QT += serialbus
С тех пор: Qt 5.6
Наследует: QModbusDevice
Наследуется от:

QModbusRtuSerialMaster и QModbusTcpClient

  • Список всех членов, включая унаследованные

Свойства

  • 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

Дополнительные унаследованные члены

  • 1 открытый слот унаследован от QObject
  • 11 статических открытых членов унаследовано от 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API