Класс QModbusDataUnit
QModbusDataUnit — это контейнерный класс, представляющий собой записи с одним битом и 16 битовыми словами в регистре Modbus. Подробнее...
| Заголовок: | #include <QModbusDataUnit> |
| qmake: | QT += serialbus |
| С момента: | Qt 5.8 |
Типы публичного доступа
| перечисление | RegisterType { Недействительный, Дискретные входы, Обмотки, Регистры ввода, Регистры хранения } |
Функции публичного доступа
| QModbusDataUnit() = default | |
| QModbusDataUnit(RegisterType type) | |
| QModbusDataUnit(RegisterType type, int address, quint16 size) | |
| QModbusDataUnit(RegisterType type, int address, const QVector<quint16> &data) | |
| bool | isValid() const |
| RegisterType | registerType() const |
| void | setRegisterType(RegisterType type) |
| void | setStartAddress(int address) |
| void | setValue(int index, quint16 value) |
| void | setValueCount(uint newCount) |
| void | setValues(const QVector<quint16> &values) |
| int | startAddress() const |
| quint16 | value(int index) const |
| uint | valueCount() const |
| QVector<quint16> | values() const |
Связанные нечлены
| typedef | QModbusDataUnitMap |
Подробное описание
QModbusDataUnit — это контейнерный класс, представляющий собой записи с одним битом и 16 битовыми словами в регистре Modbus.
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 |
Этот тип данных может быть изменён программой-приложением. |
Документация по функциям-членам
[default] QModbusDataUnit::QModbusDataUnit()
Создаёт пустой, недействительный QModbusDataUnit. Начальный адрес установлен в -1, а registerType установлен в QModbusDataUnit::Недействительный.
QModbusDataUnit::QModbusDataUnit(RegisterType type)
Создаёт блок данных для регистра type. Начальный адрес установлен в 0, диапазон данных и значения данных пустые.
QModbusDataUnit::QModbusDataUnit(RegisterType type, int address, quint16 size)
Создаёт блок данных для регистраtype. Начальный адрес данных установлен в address, а размер блока в size. Записи values() инициализированы 0.
QModbusDataUnit::QModbusDataUnit(RegisterType type, int address, const QVector<quint16> &data)
Создаёт блок данных для регистраtype. Начальный адрес данных установлен в address, а значения блока — в data. Количество значений подразумевается размером data.
bool QModbusDataUnit::isValid() const
Возвращает true, если QModbusDataUnit действителен; в противном случае false. QModbusDataUnit считается действительным, если registerType() не равен QModbusDataUnit::Недействительный, а startAddress() больше или равен 0.
RegisterType QModbusDataUnit::registerType() const
Возвращает тип регистра.
См. также setRegisterType() и QModbusDataUnit::RegisterType.
void QModbusDataUnit::setRegisterType(RegisterType type)
Устанавливает тип регистра type.
См. также registerType() и QModbusDataUnit::RegisterType.
void QModbusDataUnit::setStartAddress(int address)
Устанавливает начальный address блока данных.
См. также startAddress().
void QModbusDataUnit::setValue(int index, quint16 value)
Устанавливает регистр в позиции index на value.
См. также value().
void QModbusDataUnit::setValueCount(uint newCount)
Устанавливает размер блока данных запрошенного регистра на newCount.
Он может отличаться от размера values(), так как эта функция используется для указания размера запроса данных. Только после обработки запроса данных valueCount() равен размеру values().
См. также valueCount().
void QModbusDataUnit::setValues(const QVector<quint16> &values)
Устанавливает values для блока данных. Таблицы QModbusDataUnit::DiscreteInputs и QModbusDataUnit::Coils принимают только значения с одним битом, поэтому 0 интерпретируется как 0, а всё остальное — как 1.
См. также values().
int QModbusDataUnit::startAddress() const
Возвращает начальный адрес блока данных в регистре.
См. также setStartAddress().
quint16 QModbusDataUnit::value(int index) const
Возвращает значение в позиции index.
См. также setValue().
uint QModbusDataUnit::valueCount() const
Возвращает размер блока данных запрошенного регистра или размер данных, прочитанных с устройства.
Эта функция может не всегда возвращать количество, равное размеру values(). Поскольку этот класс используется для запроса данных из удалённого регистра, значение valueCount() может использоваться для указания размера блока данных запрошенного регистра. После обработки запроса valueCount() равно размеру values().
См. также setValueCount().
QVector<quint16> QModbusDataUnit::values() const
Возвращает данные в блоке данных. Таблицы QModbusDataUnit::DiscreteInputs и QModbusDataUnit::Coils принимают только значения с одним битом, поэтому 0 интерпретируется как 0, а всё остальное — как 1.
См. также setValues().
Связанные внешние члены
typedef 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-5.9/qmodbusdataunit.html