QModbusDevice Class
La classe QModbusDevice est la classe de base des classes Modbus, QModbusServer et QModbusClient. 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 : | QObject |
| Héritée 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 des types de membres
enum QModbusDevice::ConnectionParameter
Cette énumération décrit les valeurs possibles qui peuvent être définies pour la connexion d'un dispositif Modbus.
Les valeurs générales (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 l'appareil, par exemple COM1. QString |
QModbusDevice::SerialParityParameter | 1 | Ce paramètre indique le mode de vérification de la parité. QSerialPort::Parity |
QModbusDevice::SerialBaudRateParameter | 2 | Ce paramètre indique la vitesse de transmission des données pour la communication. QSerialPort::BaudRate |
QModbusDevice::SerialDataBitsParameter | 3 | Ce paramètre indique 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 indique le port réseau. int |
QModbusDevice::NetworkAddressParameter | 6 | Ce paramètre indique l'adresse de l'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 de l'erreur |
|---|---|---|
QModbusDevice::NoError | 0 | Aucune erreur n'est survenue. |
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 définition d'un paramètre de configuration. |
QModbusDevice::TimeoutError | 5 | Un dépassement de délai s'est produit lors d'une opération d'E/S. Une opération d'E/S ne s'est pas terminée dans un délai donné. |
QModbusDevice::ProtocolError | 6 | Une erreur de protocole spécifique au 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 le site FunctionCode n'est pas pris en charge par l'implémentation actuelle. Dans ce dernier cas, l'implémentation personnalisée du client Modbus peut surcharger les méthodes processResponse() et processPrivateResponse() pour fournir le support des fonctions nécessaires. |
[since 6.0] enum QModbusDevice::IntermediateError
Cette énumération décrit les erreurs possibles qui peuvent se produire pendant un cycle complet d'envoi et de réception d'une réponse Modbus.
| Constante | Valeur | Description de l'erreur |
|---|---|---|
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 ne correspond pas à la demande ouverte, probablement parce que le code de fonction du PDU ne correspond pas. |
Si l'une des erreurs intermédiaires ci-dessus s'est produite, la trame est probablement présente jusqu'à ce que le nombre maximal de tentatives soit atteint.
La liste des erreurs intermédiaires peut être consultée à l'aide de la fonction QModbusReply intermediate errors.
Cette liste a été introduite dans Qt 6.0.
Voir aussi QModbusClient::numberOfRetries() et QModbusReply::intermediateErrors().
enum QModbusDevice::State
Cette énumération décrit tous les états possibles de l'appareil.
| Constante | Valeur | Description de l'état de l'appareil |
|---|---|---|
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. |
Fonction membre Documentation
[explicit] QModbusDevice::QModbusDevice(QObject *parent = nullptr)
Construit un dispositif Modbus avec l'adresse parent spécifiée.
[virtual noexcept] QModbusDevice::~QModbusDevice()
Détruit l'instance QModbusDevice
[pure virtual protected] void QModbusDevice::close()
Cette fonction est responsable de la fermeture de la connexion Modbus. L'implémentation doit s'assurer que l'instance state() est réglée 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 finale de la réussite de la connexion exige que 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 donnée parameter. La valeur retournée peut être vide.
Par défaut, QModbusDevice est initialisé avec quelques valeurs courantes. Les paramètres du port série sont la parité paire, une vitesse de transmission de 19200 bits par seconde, huit bits de données et un bit d'arrêt. Les paramètres réseau pour l'adresse de l'hôte sont définis sur l'hôte local et le port sur 502.
Remarque : pour qu'une connexion série réussisse, le site SerialPortNameParameter doit être réglé sur un port de communication valide. Les informations sur les ports série valides peuvent être obtenues sur le site QSerialPortInfo.
Remarque : si l'appareil est déjà connecté, les paramètres sont pris en compte après la reconnexion de l'appareil.
Voir également setConnectionParameter() et ConnectionParameter.
QIODevice *QModbusDevice::device() const
Renvoie l'adresse QIODevice utilisée pour la communication ModBus ou nullptr si le dispositif n'a pas encore été entièrement initialisé.
Note : Ne pas stocker de pointeur sur le périphérique sous-jacent, car il 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 de l'appareil.
Voir aussi setError() et QModbusDevice::Error.
[signal] void QModbusDevice::errorOccurred(QModbusDevice::Error error)
Ce signal est émis lorsqu'une erreur du type error se produit.
QString QModbusDevice::errorString() const
Renvoie un texte d'erreur descriptif pour l'erreur de l'appareil.
Voir aussi 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 la connexion ; sinon, elle renvoie false.
L'implémentation doit garantir que l'instance state() est définie sur QModbusDevice::ConnectingState ou QModbusDevice::ConnectedState en cas de succès, sinon QModbusDevice::UnconnectedState. En règle générale, QModbusDevice::ConnectingState est utilisé lorsque le processus de connexion renvoie des informations de manière asynchrone et QModbusDevice::ConnectedState dans le cas d'un comportement de connexion synchrone.
Voir également connectDevice().
void QModbusDevice::setConnectionParameter(QModbusDevice::ConnectionParameter parameter, const QVariant &value)
Définit la valeur de parameter à value. Si 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 changements de paramètres.
Voir aussi ConnectionParameter et connectionParameter().
[protected] void QModbusDevice::setError(const QString &errorText, QModbusDevice::Error error)
Définit l'état d'erreur du dispositif. Les implémentations de dispositifs ModBus doivent utiliser cette fonction en cas d'erreur pour définir le type error et une description errorText.
Voir également error() et QModbusDevice::Error.
[protected] void QModbusDevice::setState(QModbusDevice::State newState)
Définit l'état de l'appareil à newState. Les implémentations de dispositifs Modbus doivent utiliser cette fonction pour mettre à jour l'état du dispositif.
Voir aussi state().
QModbusDevice::State QModbusDevice::state() const
Renvoie l'état actuel de l'appareil.
Voir aussi 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.