Sur cette page

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

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.

ConstanteValeurDescription
QModbusDataUnit::Invalid0Définie par le constructeur par défaut, ne pas utiliser.
QModbusDataUnit::DiscreteInputs1Ce type de données peut être fourni par un système d'E/S.
QModbusDataUnit::Coils2Ce type de données peut être modifié par un programme d'application.
QModbusDataUnit::InputRegisters3Ce type de données peut être fourni par un système d'E/S.
QModbusDataUnit::HoldingRegisters4Ce 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.