En esta página

QModbusDataUnit Class

QModbusDataUnit es una clase contenedora que representa entradas de un solo bit y 16 palabra de bits en el registro Modbus. Más...

Cabecera: #include <QModbusDataUnit>
CMake: find_package(Qt6 REQUIRED COMPONENTS SerialBus)
target_link_libraries(mytarget PRIVATE Qt6::SerialBus)
qmake: QT += serialbus

Tipos Públicos

enum RegisterType { Invalid, DiscreteInputs, Coils, InputRegisters, HoldingRegisters }

Funciones públicas

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

Descripción detallada

QModbusDataUnit puede utilizarse para operaciones de lectura y escritura. Las entradas se direccionan mediante startAddress() y el valueCount() número de entradas contiguas. registerType() determina qué registro se utiliza para las operaciones. Tenga en cuenta que algunos registros son de sólo lectura.

Los values() reales son de un solo bit o de 16 bits. QModbusDataUnit::DiscreteInputs y QModbusDataUnit::Coils sólo aceptan bits simples. Por lo tanto 0 se interpreta como 0 y cualquier otra cosa 1.

Documentación de tipos de miembros

enum QModbusDataUnit::RegisterType

Este enum describe todos los tipos de registro soportados.

ConstanteValorDescripción
QModbusDataUnit::Invalid0Establecido por el constructor por defecto, no utilizar.
QModbusDataUnit::DiscreteInputs1Este tipo de datos puede ser proporcionado por un sistema de E/S.
QModbusDataUnit::Coils2Este tipo de datos puede ser alterado por un programa de aplicación.
QModbusDataUnit::InputRegisters3Este tipo de datos puede ser proporcionado por un sistema de E/S.
QModbusDataUnit::HoldingRegisters4Este tipo de datos puede ser alterado por un programa de aplicación.

Documentación de las funciones miembro

[constexpr noexcept] QModbusDataUnit::QModbusDataUnit()

Construye una QModbusDataUnit vacía e inválida. La dirección de inicio se establece en -1 y la registerType se establece en QModbusDataUnit::Invalid.

[explicit constexpr noexcept] QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type)

Construye una unidad de datos para el registro type. La dirección de inicio se establece en 0, el rango de datos y los valores de datos están vacíos.

QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, const QList<quint16> &data)

Construye una unidad de datos para el registrotype. La dirección de inicio de los datos se establece en address y los valores de la unidad en data. El recuento de valores está implícito en el tamaño de data.

QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, quint16 size)

Construye una unidad de datos para el registrotype. La dirección de inicio de los datos se establece en address y el tamaño de la unidad en size. Las entradas de values() se inicializan con 0.

bool QModbusDataUnit::isValid() const

Devuelve true si el QModbusDataUnit es válido; en caso contrario false. Un QModbusDataUnit se considera válido si el registerType() no es QModbusDataUnit::Invalid y el startAddress() es mayor o igual que 0.

QModbusDataUnit::RegisterType QModbusDataUnit::registerType() const

Devuelve el tipo del registro.

Véase también setRegisterType() y QModbusDataUnit::RegisterType.

void QModbusDataUnit::setRegisterType(QModbusDataUnit::RegisterType type)

Establece el registro type.

Véase también registerType() y QModbusDataUnit::RegisterType.

void QModbusDataUnit::setStartAddress(int address)

Establece el inicio address de la unidad de datos.

Véase también startAddress().

void QModbusDataUnit::setValue(qsizetype index, quint16 value)

Establece el registro en la posición index a value.

Véase también value().

void QModbusDataUnit::setValueCount(qsizetype newCount)

Establece el tamaño del bloque de datos del registro solicitado en newCount.

Esto puede ser diferente del tamaño de values() ya que esta función se utiliza para indicar el tamaño de una solicitud de datos. Sólo una vez procesada la petición de datos valueCount() es igual al tamaño de values().

Véase también valueCount().

void QModbusDataUnit::setValues(const QList<quint16> &values)

Establece el values de la unidad de datos. Las tablas QModbusDataUnit::DiscreteInputs y QModbusDataUnit::Coils sólo aceptan valores de un bit, por lo que 0 se interpreta como 0 y cualquier otra cosa como 1.

Véase también values().

int QModbusDataUnit::startAddress() const

Devuelve la dirección de inicio de la unidad de datos en el registro.

Véase también setStartAddress().

quint16 QModbusDataUnit::value(qsizetype index) const

Devuelve el valor en la posición index.

Véase también setValue().

qsizetype QModbusDataUnit::valueCount() const

Devuelve el tamaño del bloque de datos del registro solicitado o el tamaño de los datos leídos del dispositivo.

Es posible que esta función no siempre devuelva un recuento igual al tamaño de values(). Dado que esta clase se utiliza para solicitar datos del registro de datos remoto, valueCount() puede utilizarse para indicar el tamaño del bloque de datos del registro solicitado. Una vez procesada la solicitud, valueCount() es igual al tamaño de values().

Véase también setValueCount().

QList<quint16> QModbusDataUnit::values() const

Devuelve los datos en la unidad de datos. Las tablas QModbusDataUnit::DiscreteInputs y QModbusDataUnit::Coils sólo aceptan valores de un bit, por lo que 0 se interpreta como 0 y cualquier otra cosa como 1.

Véase también setValues().

No miembros relacionados

QModbusDataUnitMap

Sinónimo 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.