Sur cette page

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

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.

ConstanteValeurDescription
QModbusDataUnit::Invalid0Défini 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] 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.