QModbusDevice Class
La classe `QModbusDevice` est la classe de base des classes Modbus : QModbusServer et QModbusClient. En savoir plus...
| En-tête : | #include <QModbusDevice> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
| qmake : | QT += serialbus |
| Hérite de : | QObject |
| Hérité par : |
Types publics
| enum | ConnectionParameter { SerialPortNameParameter, SerialParityParameter, SerialBaudRateParameter, SerialDataBitsParameter, SerialStopBitsParameter, …, NetworkAddressParameter } |
| enum | Error { NoError, ReadError, WriteError, ConnectionError, ConfigurationError, …, InvalidResponseError } |
(since 6.0) enum | IntermediateError { ResponseCrcError, ResponseRequestMismatch } |
| enum | State { UnconnectedState, ConnectingState, ConnectedState, ClosingState } |
Fonctions publiques
| QModbusDevice(QObject *parent = nullptr) | |
| virtual | ~QModbusDevice() |
| bool | connectDevice() |
| QVariant | connectionParameter(QModbusDevice::ConnectionParameter parameter) const |
| QIODevice * | device() const |
| void | disconnectDevice() |
| QModbusDevice::Error | error() const |
| QString | errorString() const |
| void | setConnectionParameter(QModbusDevice::ConnectionParameter parameter, const QVariant &value) |
| QModbusDevice::State | state() const |
Signaux
| void | errorOccurred(QModbusDevice::Error error) |
| void | stateChanged(QModbusDevice::State state) |
Fonctions protégées
| virtual void | close() = 0 |
| virtual bool | open() = 0 |
| void | setError(const QString &errorText, QModbusDevice::Error error) |
| void | setState(QModbusDevice::State newState) |
Documentation sur les types membres
enum QModbusDevice::ConnectionParameter
Cette énumération décrit les valeurs possibles pouvant être définies pour la connexion d'un périphérique Modbus.
Les valeurs d'usage général (et les types associés) sont les suivantes :
| Constante | Valeur | Description |
|---|---|---|
QModbusDevice::SerialPortNameParameter | 0 | Ce paramètre indique le port série utilisé pour la communication avec le périphérique, par exemple COM1. QString |
QModbusDevice::SerialParityParameter | 1 | Ce paramètre définit le mode de contrôle de parité. QSerialPort::Parity |
QModbusDevice::SerialBaudRateParameter | 2 | Ce paramètre définit le débit en bauds des données pour la communication. QSerialPort::BaudRate |
QModbusDevice::SerialDataBitsParameter | 3 | Ce paramètre définit le nombre de bits de données dans une trame. QSerialPort::DataBits |
QModbusDevice::SerialStopBitsParameter | 4 | Ce paramètre indique le nombre de bits d'arrêt dans une trame. QSerialPort::StopBits |
QModbusDevice::NetworkPortParameter | 5 | Ce paramètre définit le port réseau. int |
QModbusDevice::NetworkAddressParameter | 6 | Ce paramètre définit l'adresse hôte pour la communication réseau. QString |
enum QModbusDevice::Error
Cette énumération décrit toutes les conditions d'erreur possibles.
| Constante | Valeur | Description |
|---|---|---|
QModbusDevice::NoError | 0 | Aucune erreur ne s'est produite. |
QModbusDevice::ReadError | 1 | Une erreur s'est produite lors d'une opération de lecture. |
QModbusDevice::WriteError | 2 | Une erreur s'est produite lors d'une opération d'écriture. |
QModbusDevice::ConnectionError | 3 | Une erreur s'est produite lors de la tentative d'ouverture du backend. |
QModbusDevice::ConfigurationError | 4 | Une erreur s'est produite lors de la tentative de définition d'un paramètre de configuration. |
QModbusDevice::TimeoutError | 5 | Un délai d'attente s'est produit pendant l'E/S. Une opération d'E/S ne s'est pas terminée dans le délai imparti. |
QModbusDevice::ProtocolError | 6 | Une erreur de protocole spécifique à Modbus s'est produite. |
QModbusDevice::ReplyAbortedError | 7 | La réponse a été interrompue en raison d'une déconnexion de l'appareil. |
QModbusDevice::UnknownError | 8 | Une erreur inconnue s'est produite. |
QModbusDevice::InvalidResponseError (since Qt 6.4) | 9 | Une erreur s'est produite lors de l'analyse de la réponse, ou l'FunctionCode n'est pas prise en charge par l'implémentation actuelle. Dans ce dernier cas, une implémentation personnalisée du client Modbus peut redéfinir les méthodes processResponse() et processPrivateResponse() afin de prendre en charge les fonctions requises. |
[since 6.0] enum QModbusDevice::IntermediateError
Cette énumération décrit les erreurs pouvant survenir au cours d'un cycle complet d'envoi et de réception d'une réponse Modbus.
| Constante | Valeur | Description |
|---|---|---|
QModbusDevice::ResponseCrcError | 0 | Une réponse Modbus avec un CRC erroné a été reçue. |
QModbusDevice::ResponseRequestMismatch | 1 | Une réponse Modbus a été reçue, mais elle ne correspondait pas à la requête ouverte, probablement en raison d’une incompatibilité du code de fonction de la PDU. |
Si l'une des erreurs intermédiaires ci-dessus s'est produite, la trame est susceptible de rester présente jusqu’à ce que le nombre maximal de tentatives soit atteint.
La liste des erreurs intermédiaires peut être consultée via la fonction « erreurs intermédiaires » de l'QModbusReply.
Cette énumération a été introduite dans Qt 6.0.
Voir également ` QModbusClient::numberOfRetries()` et ` QModbusReply::intermediateErrors()`.
enum QModbusDevice::State
Cette énumération décrit tous les états possibles d'un périphérique.
| Constante | Valeur | Description |
|---|---|---|
QModbusDevice::UnconnectedState | 0 | L'appareil est déconnecté. |
QModbusDevice::ConnectingState | 1 | L'appareil est en cours de connexion. |
QModbusDevice::ConnectedState | 2 | L'appareil est connecté au réseau Modbus. |
QModbusDevice::ClosingState | 3 | L'appareil est en cours de fermeture. |
Documentation des fonctions membres
[explicit] QModbusDevice::QModbusDevice(QObject *parent = nullptr)
Crée un périphérique Modbus avec l'parent spécifiée.
[virtual noexcept] QModbusDevice::~QModbusDevice()
Supprime l'instance de « QModbusDevice »
[pure virtual protected] void QModbusDevice::close()
Cette fonction est chargée de fermer la connexion Modbus. L'implémentation doit s'assurer que la méthode state() de l'instance est définie sur QModbusDevice::UnconnectedState.
Voir également disconnectDevice().
bool QModbusDevice::connectDevice()
Connecte l'appareil au réseau Modbus. Renvoie ` true ` si le processus de connexion a été lancé avec succès ; sinon, ` false`. La confirmation définitive de la réussite de la connexion nécessite que la valeur de ` state()` passe à ` QModbusDevice::ConnectedState`.
Cette fonction appelle open() dans le cadre de sa mise en œuvre.
Voir également open().
QVariant QModbusDevice::connectionParameter(QModbusDevice::ConnectionParameter parameter) const
Renvoie la valeur associée à la connexion indiquée parameter. La valeur renvoyée peut être vide.
Par défaut, l'QModbusDevice est initialisé avec des valeurs courantes. Les paramètres du port série sont les suivants : parité paire, débit de 19 200 bits par seconde, huit bits de données et un bit d'arrêt. Les paramètres réseau sont définis sur l'hôte local pour l'adresse hôte et le port 502.
Remarque : pour qu’ une connexion série aboutisse, l’ SerialPortNameParameter doit être configuré sur un port de communication valide. Les informations concernant les ports série valides sont disponibles à l’adresse QSerialPortInfo.
Remarque : si le périphérique est déjà connecté, les paramètres ne seront pris en compte qu’après sa reconnexion.
Voir également setConnectionParameter() et ConnectionParameter.
QIODevice *QModbusDevice::device() const
Renvoie l'QIODevice sous-jacente utilisée pour la communication Modbus ou nullptr si le périphérique n'a pas encore été entièrement initialisé.
Remarque : ne stockez pas de pointeur vers le périphérique sous-jacent, car celui-ci peut être invalidé à tout moment.
void QModbusDevice::disconnectDevice()
Déconnecte l'appareil.
Cette fonction appelle close() dans le cadre de sa mise en œuvre.
QModbusDevice::Error QModbusDevice::error() const
Renvoie l'état d'erreur du périphérique.
Voir également setError() et QModbusDevice::Error.
[signal] void QModbusDevice::errorOccurred(QModbusDevice::Error error)
Ce signal est émis lorsqu'une erreur de type « error » se produit.
QString QModbusDevice::errorString() const
Renvoie un texte descriptif indiquant la nature de l'erreur du périphérique.
Voir également QModbusDevice::Error.
[pure virtual protected] bool QModbusDevice::open()
Cette fonction est appelée par ` connectDevice()`. Les sous-classes doivent fournir une implémentation qui renvoie ` true ` en cas de connexion Modbus réussie ou d'initiation de connexion ; sinon, elle renvoie ` false`.
L'implémentation doit garantir que la méthode state() de l'instance soit définie sur QModbusDevice::ConnectingState ou QModbusDevice::ConnectedState en cas de réussite ; sinon, elle doit être définie sur QModbusDevice::UnconnectedState. En général, QModbusDevice::ConnectingState est utilisé lorsque le processus de connexion renvoie des informations de manière asynchrone, et QModbusDevice::ConnectedState en cas de comportement de connexion synchrone.
Voir également connectDevice().
void QModbusDevice::setConnectionParameter(QModbusDevice::ConnectionParameter parameter, const QVariant &value)
Définit la valeur de parameter sur value. Si le fichier parameter existe déjà, la valeur précédente est écrasée. Une connexion active ou en cours n'est pas affectée par ces modifications de paramètres.
Voir également ConnectionParameter et connectionParameter().
[protected] void QModbusDevice::setError(const QString &errorText, QModbusDevice::Error error)
Définit l'état d'erreur du périphérique. Les implémentations de périphériques ModBus doivent utiliser cette fonction en cas d'erreur pour définir le type d'error s et un message descriptif errorText.
Voir également error() et QModbusDevice::Error.
[protected] void QModbusDevice::setState(QModbusDevice::State newState)
Définit l'état du périphérique sur « newState ». Les implémentations de périphériques Modbus doivent utiliser cette fonction pour mettre à jour l'état du périphérique.
Voir également state().
QModbusDevice::State QModbusDevice::state() const
Renvoie l'état actuel du périphérique.
Voir également setState() et stateChanged().
[signal] void QModbusDevice::stateChanged(QModbusDevice::State state)
Ce signal est émis à chaque fois que l'état de l'appareil change. Le nouvel état est représenté par state.
© 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.