Класс QModbusDataUnit
Класс QModbusDataUnit — это контейнерный класс, представляющий записи однобитовых и 16-битовых слов в регистре Modbus. Подробнее...
| Заголовок: | #include <QModbusDataUnit> |
| qmake: | QT += serialbus |
| С момента: | Qt 5.8 |
Типы публичного интерфейса
| Перечисление | RegisterType { Invalid, DiscreteInputs, Coils, InputRegisters, HoldingRegisters } |
Функции публичного интерфейса
| QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, const QList<quint16> &data) | |
| QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, quint16 size) | |
| QModbusDataUnit(QModbusDataUnit::RegisterType type) | |
| QModbusDataUnit() | |
| 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 |
Связанные нечлены
| QModbusDataUnitMap |
Подробное описание
QModbusDataUnit может использоваться для операций чтения и записи. Записи адресуются через startAddress() и количество непрерывных записей valueCount(). registerType() определяет, какой регистр используется для операций. Обратите внимание, что некоторые регистры являются только для чтения.
Фактические значения values() — это либо однобитовые, либо 16-битовые. QModbusDataUnit::DiscreteInputs и QModbusDataUnit::Coils принимают только однобитовые значения. Поэтому 0 интерпретируется как 0, а всё остальное 1.
Документация по типам членов
Перечисление QModbusDataUnit::RegisterType
Это перечисление описывает все поддерживаемые типы регистров.
| Константа | Значение | Описание |
|---|---|---|
QModbusDataUnit::Invalid |
0 |
Устанавливается конструктором по умолчанию, не использовать. |
QModbusDataUnit::DiscreteInputs |
1 |
Этот тип данных может быть предоставлен системой ввода/вывода. |
QModbusDataUnit::Coils |
2 |
Этот тип данных может быть изменён программой приложения. |
QModbusDataUnit::InputRegisters |
3 |
Этот тип данных может быть предоставлен системой ввода/вывода. |
QModbusDataUnit::HoldingRegisters |
4 |
Этот тип данных может быть изменён программой приложения. |
Документация по функциям-членам
QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, const QList<quint16> &data)
Конструирует блок данных для регистра type. Начальный адрес данных установлен в address, а значения блока — в data. Количество значений подразумевается размером data.
QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type, int address, quint16 size)
Конструирует блок данных для регистра type. Начальный адрес данных установлен в address, а размер блока — в size. Элементы values() инициализируются 0.
QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type)
Конструирует блок данных для регистра type. Начальный адрес установлен в 0, диапазон данных и значения данных пусты.
QModbusDataUnit::QModbusDataUnit()
Конструирует пустой, невалидный QModbusDataUnit. Начальный адрес установлен в -1, и registerType установлен в QModbusDataUnit::Invalid.
bool QModbusDataUnit::isValid() const
Возвращает true, если QModbusDataUnit является валидным; в противном случае false. QModbusDataUnit считается валидным, если registerType() не равно QModbusDataUnit::Invalid и startAddress() больше или равно 0.
QModbusDataUnit::RegisterType QModbusDataUnit::registerType() const
Возвращает тип регистра.
См. также setRegisterType() и QModbusDataUnit::RegisterType.
void QModbusDataUnit::setRegisterType(QModbusDataUnit::RegisterType type)
Устанавливает тип регистра type.
См. также registerType() и QModbusDataUnit::RegisterType.
void QModbusDataUnit::setStartAddress(int address)
Устанавливает начальный address блока данных.
См. также startAddress().
void QModbusDataUnit::setValue(qsizetype index, quint16 value)
Устанавливает регистр в позиции index на значение value.
См. также value().
void QModbusDataUnit::setValueCount(qsizetype newCount)
Устанавливает размер блока данных запрошенного регистра в newCount.
Это может отличаться от размера values(), так как эта функция используется для указания размера запроса данных. Только после обработки запроса данных valueCount() будет равен размеру values().
См. также valueCount().
void QModbusDataUnit::setValues(const QList<quint16> &values)
Устанавливает значения единицы данных. Таблицы QModbusDataUnit::DiscreteInputs и QModbusDataUnit::Coils принимают только значения одного бита, поэтому 0 интерпретируется как 0, а всё остальное как 1.
См. также values().
int QModbusDataUnit::startAddress() const
Возвращает начальный адрес единицы данных в регистре.
См. также setStartAddress().
quint16 QModbusDataUnit::value(qsizetype index) const
Возвращает значение в позиции index.
См. также setValue().
qsizetype QModbusDataUnit::valueCount() const
Возвращает размер блока данных запрошенного регистра или размер данных, прочитанных с устройства.
Эта функция может не всегда возвращать количество, равное размеру values(). Поскольку этот класс используется для запроса данных из удаленного регистра, valueCount() может использоваться для указания размера блока данных запрошенного регистра. После обработки запроса valueCount() равно размеру values().
См. также setValueCount().
QList<quint16> QModbusDataUnit::values() const
Возвращает данные в единице данных. Таблицы QModbusDataUnit::DiscreteInputs и QModbusDataUnit::Coils принимают только значения одного бита, поэтому 0 интерпретируется как 0, а всё остальное как 1.
См. также setValues().
Связанные нечленные функции
[since 5.8] QModbusDataUnitMap
Синоним для QMap<QModbusDataUnit::RegisterType, QModbusDataUnit>.
Этот typedef был введен в Qt 5.8.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qmodbusdataunit.html