QModbusDataUnit Class
QModbusDataUnit ist eine Containerklasse, die Einzelbit- und 16
Bit-Worteinträge im Modbus-Register darstellt. Mehr...
Kopfzeile: | #include <QModbusDataUnit> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
qmake: | QT += serialbus |
Öffentliche Typen
enum | RegisterType { Invalid, DiscreteInputs, Coils, InputRegisters, HoldingRegisters } |
Öffentliche Funktionen
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 |
Verwandte Nicht-Mitglieder
Detaillierte Beschreibung
QModbusDataUnit kann für Lese- und Schreiboperationen verwendet werden. Die Einträge werden über startAddress() und die valueCount() Anzahl der zusammenhängenden Einträge adressiert. registerType() bestimmt, welches Register für die Operationen verwendet wird. Beachten Sie, dass einige Register schreibgeschützte Register sind.
Die aktuellen values() sind entweder einbit- oder 16
bitbasiert. QModbusDataUnit::DiscreteInputs und QModbusDataUnit::Coils akzeptieren nur einzelne Bits. Daher wird 0
als 0
und alles andere als 1
interpretiert.
Dokumentation der Mitgliedstypen
enum QModbusDataUnit::RegisterType
Diese Aufzählung beschreibt alle unterstützten Registertypen.
Konstante | Wert | Beschreibung |
---|---|---|
QModbusDataUnit::Invalid | 0 | Vom Standardkonstruktor gesetzt, nicht verwenden. |
QModbusDataUnit::DiscreteInputs | 1 | Diese Art von Daten kann von einem E/A-System bereitgestellt werden. |
QModbusDataUnit::Coils | 2 | Diese Art von Daten kann von einem Anwendungsprogramm geändert werden. |
QModbusDataUnit::InputRegisters | 3 | Diese Art von Daten kann von einem E/A-System bereitgestellt werden. |
QModbusDataUnit::HoldingRegisters | 4 | Diese Art von Daten kann von einem Anwendungsprogramm geändert werden. |
Dokumentation der Mitgliedsfunktionen
[constexpr noexcept]
QModbusDataUnit::QModbusDataUnit()
Konstruiert eine leere, ungültige QModbusDataUnit. Die Startadresse wird auf -1
und die registerType auf QModbusDataUnit::Invalid gesetzt.
[explicit constexpr noexcept]
QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type)
Konstruiert eine Dateneinheit für das Register type. Die Startadresse wird auf 0
gesetzt, der Datenbereich und die Datenwerte sind leer.
QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, const QList<quint16> &data)
Konstruiert eine Dateneinheit für das Registertype. Die Startadresse der Daten wird auf address und die Werte der Einheit auf data gesetzt. Die Anzahl der Werte wird durch die Größe von data impliziert.
QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, quint16 size)
Konstruiert eine Dateneinheit für das Registertype. Die Startadresse der Daten wird auf address und die Größe der Einheit auf size gesetzt. Die Einträge von values() werden mit 0
initialisiert.
bool QModbusDataUnit::isValid() const
Gibt true
zurück, wenn QModbusDataUnit
gültig ist; andernfalls false
. Ein QModbusDataUnit
wird als gültig angesehen, wenn registerType() nicht QModbusDataUnit::Invalid ist und startAddress() größer oder gleich 0
ist.
QModbusDataUnit::RegisterType QModbusDataUnit::registerType() const
Gibt den Typ des Registers zurück.
Siehe auch setRegisterType() und QModbusDataUnit::RegisterType.
void QModbusDataUnit::setRegisterType(QModbusDataUnit::RegisterType type)
Setzt das Register type.
Siehe auch registerType() und QModbusDataUnit::RegisterType.
void QModbusDataUnit::setStartAddress(int address)
Legt den Beginn address der Dateneinheit fest.
Siehe auch startAddress().
void QModbusDataUnit::setValue(qsizetype index, quint16 value)
Setzt das Register an der Position index auf value.
Siehe auch value().
void QModbusDataUnit::setValueCount(qsizetype newCount)
Setzt die Größe des Datenblocks des angeforderten Registers auf newCount.
Dies kann sich von der Größe von values() unterscheiden, da diese Funktion zur Angabe der Größe einer Datenanforderung verwendet wird. Erst wenn die Datenanforderung abgearbeitet ist, ist valueCount() gleich der Größe von values().
Siehe auch valueCount().
void QModbusDataUnit::setValues(const QList<quint16> &values)
Setzt die values der Dateneinheit. QModbusDataUnit::DiscreteInputs und QModbusDataUnit::Coils Tabellen akzeptieren nur Ein-Bit-Werte, daher wird 0
als 0
und alles andere als 1
interpretiert.
Siehe auch values().
int QModbusDataUnit::startAddress() const
Gibt die Startadresse der Dateneinheit im Register zurück.
Siehe auch setStartAddress().
quint16 QModbusDataUnit::value(qsizetype index) const
Gibt den Wert an der Position index zurück.
Siehe auch setValue().
qsizetype QModbusDataUnit::valueCount() const
Gibt die Größe des Datenblocks des angeforderten Registers oder die Größe der vom Gerät gelesenen Daten zurück.
Diese Funktion gibt möglicherweise nicht immer eine Anzahl zurück, die der Größe von values() entspricht. Da diese Klasse verwendet wird, um Daten von einem entfernten Datenregister anzufordern, kann valueCount() verwendet werden, um die Größe des Datenblocks des angeforderten Registers anzugeben. Sobald die Anforderung verarbeitet wurde, ist valueCount() gleich der Größe von values().
Siehe auch setValueCount().
QList<quint16> QModbusDataUnit::values() const
Gibt die Daten in der Dateneinheit zurück. Die Tabellen QModbusDataUnit::DiscreteInputs und QModbusDataUnit::Coils akzeptieren nur Einzelbitwerte, so dass 0
als 0
und alles andere als 1
interpretiert wird.
Siehe auch setValues().
Verwandte Nicht-Mitglieder
QModbusDataUnitMap
Synonym für QMap<QModbusDataUnit::RegisterType, QModbusDataUnit>.
© 2025 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.