QModbusDataUnit Class
QModbusDataUnit est une classe conteneur représentant les entrées de mots d'un bit et de 16 bits dans le registre Modbus. Plus d'informations...
| 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 |
Non-membres apparenté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 le nombre d'entrées contiguës valueCount(). registerType() détermine le registre utilisé pour les opérations. Notez que certains registres sont des registres en lecture seule.
Les values() réels sont basés sur un seul bit ou sur 16 bit. QModbusDataUnit::DiscreteInputs et QModbusDataUnit::Coils n'acceptent que des bits simples. Par conséquent, 0 est interprété comme 0 et tout ce qui est différent 1.
Documentation sur les types de membres
enum QModbusDataUnit::RegisterType
Cette énumération décrit tous les types de registres pris en charge.
| Constante | Valeur | Description |
|---|---|---|
QModbusDataUnit::Invalid | 0 | Défini 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] QModbusDataUnit::QModbusDataUnit()
Construit un QModbusDataUnit vide et invalide. L'adresse de départ est fixée à -1 et l'adresse registerType est fixée à QModbusDataUnit::Invalid.
[explicit constexpr noexcept] QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type)
Construit une unité de données pour le registre type. L'adresse de départ est fixée à 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)
Construit une unité de données pour le registretype. L'adresse de départ des données est fixée à address et les valeurs de l'unité à data. Le nombre de valeurs est déterminé par la taille de data.
QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, quint16 size)
Construit une unité de données pour le registretype. L'adresse de départ des données est fixée à address et la taille de l'unité à size. Les entrées de values() sont initialisées avec 0.
bool QModbusDataUnit::isValid() const
Renvoie true si QModbusDataUnit est valide, sinon false. Un QModbusDataUnit est considéré comme valide si le registerType() n'est pas QModbusDataUnit::Invalid et si le startAddress() est supérieur ou égal à 0.
QModbusDataUnit::RegisterType QModbusDataUnit::registerType() const
Renvoie le type du registre.
Voir aussi setRegisterType() et QModbusDataUnit::RegisterType.
void QModbusDataUnit::setRegisterType(QModbusDataUnit::RegisterType type)
Définit le registre type.
Voir aussi registerType() et QModbusDataUnit::RegisterType.
void QModbusDataUnit::setStartAddress(int address)
Définit le début address de l'unité de données.
Voir également startAddress().
void QModbusDataUnit::setValue(qsizetype index, quint16 value)
Définit le registre à la position index à value.
Voir aussi value().
void QModbusDataUnit::setValueCount(qsizetype newCount)
Fixe la taille du bloc de données du registre demandé à newCount.
Cette taille peut être différente de celle de values(), car cette fonction est utilisée pour indiquer la taille d'une demande de données. Ce n'est qu'une fois que la demande de données a été traitée que valueCount() est égal à la taille de values().
Voir également valueCount().
void QModbusDataUnit::setValues(const QList<quint16> &values)
Définit l'adresse values de l'unité de données. Les tableaux QModbusDataUnit::DiscreteInputs et QModbusDataUnit::Coils n'acceptent qu'une valeur à un seul bit, de sorte que 0 est interprété comme 0 et toute autre valeur comme 1.
Voir aussi values().
int QModbusDataUnit::startAddress() const
Renvoie l'adresse de début de l'unité de données dans le registre.
Voir également setStartAddress().
quint16 QModbusDataUnit::value(qsizetype index) const
Renvoie la valeur à la position index.
Voir aussi setValue().
qsizetype QModbusDataUnit::valueCount() const
Renvoie la taille du bloc de données du registre demandé ou la taille des données lues sur le périphérique.
Cette fonction ne renvoie pas toujours un nombre égal à la taille values(). Étant donné que cette classe est utilisée pour 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 demande traitée, valueCount() est égal à la taille de values().
Voir également setValueCount().
QList<quint16> QModbusDataUnit::values() const
Renvoie les données dans l'unité de données. Les tables QModbusDataUnit::DiscreteInputs et QModbusDataUnit::Coils n'acceptent que des valeurs à un seul bit, de sorte que 0 est interprété comme 0 et toute autre valeur comme 1.
Voir aussi setValues().
Non-membres apparenté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.