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.