Класс QModbusRtuSerialServer
Класс QModbusRtuSerialServer представляет сервер Modbus, использующий последовательный порт для связи с клиентом Modbus. Подробнее...
| Заголовок: | #include <QModbusRtuSerialServer> |
| qmake: | QT += serialbus |
| С версии: | Qt 6.2 |
| Наследуется от: | QModbusServer |
Открытые функции
| QModbusRtuSerialServer(QObject *parent = nullptr) | |
| виртуальный | ~QModbusRtuSerialServer() |
| int | interFrameDelay() const |
| void | setInterFrameDelay(int microseconds) |
Переопределённые открытые функции
| виртуальный bool | processesBroadcast() const override |
Переопределённые защищённые функции
| виртуальный void | close() override |
| виртуальный bool | open() override |
| виртуальный QModbusResponse | processRequest(const QModbusPdu &request) override |
Подробное описание
Для связи через Modbus требуется взаимодействие одного экземпляра клиента Modbus и нескольких серверов Modbus. Этот класс предоставляет реализацию сервера Modbus через последовательный порт.
Так как несколько экземпляров сервера Modbus могут взаимодействовать с клиентом Modbus одновременно (используя последовательную шину), серверы идентифицируются по их serverAddress().
Документация по функциям-членам
QModbusRtuSerialServer::QModbusRtuSerialServer(QObject *parent = nullptr)
Конструирует QModbusRtuSerialServer со заданным parent. Значение serverAddress установлено по умолчанию в 1.
[virtual] QModbusRtuSerialServer::~QModbusRtuSerialServer()
Удаляет экземпляр QModbusRtuSerialServer.
[override virtual protected] void QModbusRtuSerialServer::close()
Переопределяет: QModbusDevice::close().
[since 6.2] int QModbusRtuSerialServer::interFrameDelay() const
Возвращает количество микросекунд для бездействия между двумя последовательными сообщениями Modbus.
Эта функция была добавлена в Qt 6.2.
См. также setInterFrameDelay().
[override virtual protected] bool QModbusRtuSerialServer::open()
Переопределяет: QModbusDevice::open().
Примечание: При вызове этой функции данные, находящиеся в буфере последовательного порта, удаляются.
[override virtual protected] QModbusResponse QModbusRtuSerialServer::processRequest(const QModbusPdu &request)
Переопределяет: QModbusServer::processRequest(const QModbusPdu &request).
Обрабатывает запрос клиента Modbus, указанный в request, и возвращает ответ Modbus.
Функция Modbus QModbusRequest::EncapsulatedInterfaceTransport с типом MEI 13 (0x0D) CANopen General Reference отфильтровывается, так как обычно используется только Modbus TCP или Modbus serial ASCII.
Запрос к серверу RTU serial будет отвечать ответом Modbus с кодом ошибки QModbusExceptionResponse::IllegalFunction.
[override virtual] bool QModbusRtuSerialServer::processesBroadcast() const
Переопределяет: QModbusServer::processesBroadcast() const.
[since 6.2] void QModbusRtuSerialServer::setInterFrameDelay(int microseconds)
Устанавливает количество microseconds для бездействия между двумя последовательными сообщениями Modbus. По умолчанию реализация класса использует предварительно рассчитанное значение в соответствии со спецификацией Modbus. Активное или работающее соединение не затронуто такими изменениями задержки.
Примечание: Если microseconds установлено в -1 или microseconds меньше предварительно рассчитанной задержки, то используется это предварительно рассчитанное значение в качестве задержки кадра.
Эта функция была добавлена в Qt 6.2.
См. также interFrameDelay().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qmodbusrtuserialserver.html