Sur cette page

QModbusRtuSerialServer Class

La classe QModbusRtuSerialServer représente un serveur Modbus qui utilise un port série pour sa communication avec le client Modbus. Plus d'informations...

En-tête : #include <QModbusRtuSerialServer>
CMake : find_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmake : QT += serialbus
Depuis : Qt 6.2
Hérite : QModbusServer

Fonctions publiques

QModbusRtuSerialServer(QObject *parent = nullptr)
virtual ~QModbusRtuSerialServer()
(since 6.2) int interFrameDelay() const
(since 6.2) void setInterFrameDelay(int microseconds)

Fonctions publiques réimplémentées

virtual bool processesBroadcast() const override

Fonctions protégées réimplémentées

virtual void close() override
virtual bool open() override
virtual QModbusResponse processRequest(const QModbusPdu &request) override

Description détaillée

La communication via Modbus nécessite l'interaction entre une instance de client Modbus et plusieurs serveurs Modbus. Cette classe fournit l'implémentation du serveur Modbus via un port série.

Étant donné que plusieurs instances de serveurs Modbus peuvent interagir avec un client Modbus en même temps (en utilisant un bus série), les serveurs sont identifiés par leur serverAddress().

Documentation des fonctions membres

[explicit] QModbusRtuSerialServer::QModbusRtuSerialServer(QObject *parent = nullptr)

Construit un QModbusRtuSerialServer avec la valeur spécifiée parent. Le préréglage serverAddress est 1.

[virtual noexcept] QModbusRtuSerialServer::~QModbusRtuSerialServer()

Détruit l'instance QModbusRtuSerialServer.

[override virtual protected] void QModbusRtuSerialServer::close()

Réimplémente : QModbusDevice::close().

[since 6.2] int QModbusRtuSerialServer::interFrameDelay() const

Renvoie la quantité de microsecondes pour l'intervalle silencieux entre deux messages Modbus consécutifs.

Cette fonction a été introduite dans Qt 6.2.

Voir aussi setInterFrameDelay().

[override virtual protected] bool QModbusRtuSerialServer::open()

Réimplémente : QModbusDevice::open().

Note : Lors de l'appel de cette fonction, les données mises en mémoire tampon sont supprimées du port série.

[override virtual protected] QModbusResponse QModbusRtuSerialServer::processRequest(const QModbusPdu &request)

Réimplémente : QModbusServer::processRequest(const QModbusPdu &request).

Traite la demande du client Modbus spécifiée par request et renvoie une réponse Modbus.

La fonction Modbus QModbusRequest::EncapsulatedInterfaceTransport avec MEI Type 13 (0x0D) CANopen General Reference est filtrée car il s'agit généralement de Modbus TCP ou Modbus serial ASCII uniquement.

Une demande adressée au serveur série RTU recevra une réponse d'exception Modbus avec le code d'exception QModbusExceptionResponse::IllegalFunction.

[override virtual] bool QModbusRtuSerialServer::processesBroadcast() const

Réimplémente : QModbusServer::processesBroadcast() const.

[since 6.2] void QModbusRtuSerialServer::setInterFrameDelay(int microseconds)

Définit la quantité de microseconds pour l'intervalle silencieux entre deux messages Modbus consécutifs. Par défaut, l'implémentation de la classe utilise une valeur précalculée conformément à la spécification Modbus. Une connexion active ou en cours n'est pas affectée par ces changements de délai.

Remarque : si microseconds est égal à -1 ou si microseconds est inférieur au délai précalculé, cette valeur précalculée est utilisée comme délai de trame.

Cette fonction a été introduite dans Qt 6.2.

Voir aussi interFrameDelay().

© 2026 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.