QModbusDataUnit Class
QModbusDataUnit est une classe conteneur qui représente les entrées d'un seul bit et les mots de bits de 16 s dans le registre Modbus. En savoir plus...
| En-tête : | #include <QModbusDataUnit> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
| qmake : | QT += serialbus |
Types publics
| enum | RegisterType { Invalid, DiscreteInputs, Coils, InputRegisters, HoldingRegisters } |
Fonctions publiques
| QModbusDataUnit() | |
| QModbusDataUnit(QModbusDataUnit::RegisterType type) | |
| QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, const QList<quint16> &data) | |
| QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, quint16 size) | |
| bool | isValid() const |
| QModbusDataUnit::RegisterType | registerType() const |
| void | setRegisterType(QModbusDataUnit::RegisterType type) |
| void | setStartAddress(int address) |
| void | setValue(qsizetype index, quint16 value) |
| void | setValueCount(qsizetype newCount) |
| void | setValues(const QList<quint16> &values) |
| int | startAddress() const |
| quint16 | value(qsizetype index) const |
| qsizetype | valueCount() const |
| QList<quint16> | values() const |
Éléments non membres associés
Description détaillée
QModbusDataUnit peut être utilisé pour des opérations de lecture et d’écriture. Les entrées sont adressées via startAddress() et valueCount(), qui indiquent le nombre d’entrées contiguës. registerType() détermine quel registre est utilisé pour les opérations. Notez que certains registres sont en lecture seule.
Les opérations values() sont basées soit sur un seul bit, soit sur 16 bits. Les fonctions QModbusDataUnit::DiscreteInputs et QModbusDataUnit::Coils n’acceptent que des bits individuels. Par conséquent, 0 est interprété comme 0 et toute autre valeur comme 1.
Documentation sur les types de membres
enum QModbusDataUnit::RegisterType
Cette énumération répertorie tous les types de registres pris en charge.
| Constante | Valeur | Description |
|---|---|---|
QModbusDataUnit::Invalid | 0 | Définie par le constructeur par défaut, ne pas utiliser. |
QModbusDataUnit::DiscreteInputs | 1 | Ce type de données peut être fourni par un système d'E/S. |
QModbusDataUnit::Coils | 2 | Ce type de données peut être modifié par un programme d'application. |
QModbusDataUnit::InputRegisters | 3 | Ce type de données peut être fourni par un système d'E/S. |
QModbusDataUnit::HoldingRegisters | 4 | Ce type de données peut être modifié par un programme d’application. |
Documentation des fonctions membres
[constexpr noexcept default] QModbusDataUnit::QModbusDataUnit()
Crée un objet `QModbusDataUnit` vide et non valide. L'adresse de départ est définie sur -1 et l'registerType e sur QModbusDataUnit::Invalid.
[explicit constexpr noexcept] QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type)
Crée une unité de données pour le registre « type ». L'adresse de départ est définie sur « 0 » ; la plage de données et les valeurs de données sont vides.
QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, const QList<quint16> &data)
Crée une unité de données pour le registretype. L'adresse de départ des données est définie sur address et les valeurs de l'unité sur data. Le nombre de valeurs est déterminé par la taille de data.
QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, quint16 size)
Crée une unité de données pour le registretype. L'adresse de départ des données est définie sur address et la taille de l'unité sur size. Les entrées de values() sont initialisées avec 0.
bool QModbusDataUnit::isValid() const
Renvoie « true » si l'QModbusDataUnit est valide ; sinon, « false ». Une QModbusDataUnit est considérée comme valide si la fonction registerType() ne renvoie pas « QModbusDataUnit::Invalid » et si la fonction startAddress() est supérieure ou égale à « 0 ».
QModbusDataUnit::RegisterType QModbusDataUnit::registerType() const
Renvoie le type du registre.
Voir également setRegisterType() et QModbusDataUnit::RegisterType.
void QModbusDataUnit::setRegisterType(QModbusDataUnit::RegisterType type)
Définit le registre « type ».
Voir également registerType() et QModbusDataUnit::RegisterType.
void QModbusDataUnit::setStartAddress(int address)
Définit l'address de début de l'unité de données.
Voir aussi startAddress().
void QModbusDataUnit::setValue(qsizetype index, quint16 value)
Définit le registre situé à l'adresse index sur value.
Voir également value().
void QModbusDataUnit::setValueCount(qsizetype newCount)
Définit la taille du bloc de données du registre demandé à newCount.
Cette valeur peut différer de celle renvoyée par la fonction ` values()` car cette dernière sert à indiquer la taille d’une requête de données. Ce n’est qu’une fois la requête de données traitée que la valeur de ` valueCount()` correspond à la taille renvoyée par ` values()`.
Voir également valueCount().
void QModbusDataUnit::setValues(const QList<quint16> &values)
Définit l'values e de l'unité de données. Les tables « QModbusDataUnit::DiscreteInputs » et « QModbusDataUnit::Coils » n'acceptent que des valeurs d'un seul bit ; ainsi, « 0 » est interprété comme « 0 » et toute autre valeur comme « 1 ».
Voir également values().
int QModbusDataUnit::startAddress() const
Renvoie l'adresse de début de l'unité de données contenue dans le registre.
Voir également setStartAddress().
quint16 QModbusDataUnit::value(qsizetype index) const
Renvoie la valeur située à l'adresse index.
Voir également setValue().
qsizetype QModbusDataUnit::valueCount() const
Renvoie la taille du bloc de données du registre demandé ou la taille des données lues à partir du périphérique.
Cette fonction ne renvoie pas toujours un nombre égal à la taille de ` values()`. Étant donné que cette classe sert à demander des données au registre de données distant, la fonction `valueCount()` peut être utilisée pour indiquer la taille du bloc de données du registre demandé. Une fois la requête traitée, la valeur de `valueCount()` est égale à la taille de ` values()`.
Voir également setValueCount().
QList<quint16> QModbusDataUnit::values() const
Renvoie les données contenues dans l'unité de données. Les tables « QModbusDataUnit::DiscreteInputs » et « QModbusDataUnit::Coils » n'acceptent que des valeurs à un seul bit ; ainsi, « 0 » est interprété comme « 0 » et toute autre valeur comme « 1 ».
Voir également setValues().
Éléments non membres associés
QModbusDataUnitMap
Synonyme de QMap<QModbusDataUnit::RegisterType, QModbusDataUnit>.
© 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.