QModbusDataUnit Class
QModbusDataUnit は、Modbus レジスタ内の 1 ビットおよび16 ビットワードのエントリを表すコンテナクラスです。詳細...
| ヘッダー: | #include <QModbusDataUnit> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS SerialBus) target_link_libraries(mytarget PRIVATE Qt6::SerialBus) |
| qmake: | QT += serialbus |
パブリック型
| enum | RegisterType { Invalid, DiscreteInputs, Coils, InputRegisters, HoldingRegisters } |
パブリック関数
| 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 |
関連する非メンバー
詳細な説明
QModbusDataUnit は、読み取りおよび書き込み操作に使用できます。エントリへのアドレス指定は、startAddress() およびvalueCount() を使用して、連続したエントリ数を指定します。registerType() は、操作に使用するレジスタを指定します。一部のレジスタは読み取り専用であることに注意してください。
実際のvalues()は、1ビット単位または16 ビット単位のいずれかです。QModbusDataUnit::DiscreteInputs およびQModbusDataUnit::Coils は1ビットのみを受け付けます。したがって、0 は0 として解釈され、それ以外はすべて1 として扱われます。
メンバ型のドキュメント
enum QModbusDataUnit::RegisterType
この列挙型は、サポートされているすべてのレジスタ型を表します。
| 定数 | 値 | 説明 |
|---|---|---|
QModbusDataUnit::Invalid | 0 | デフォルトのコンストラクタによって設定されるため、使用しないでください。 |
QModbusDataUnit::DiscreteInputs | 1 | このタイプのデータは、I/O システムによって提供される場合があります。 |
QModbusDataUnit::Coils | 2 | このタイプのデータは、アプリケーションプログラムによって変更される可能性があります。 |
QModbusDataUnit::InputRegisters | 3 | このタイプのデータは、I/O システムによって提供される可能性があります。 |
QModbusDataUnit::HoldingRegisters | 4 | このタイプのデータは、アプリケーションプログラムによって変更可能です。メンバー関数のドキュメント |
メンバ関数のドキュメント
[constexpr noexcept default] QModbusDataUnit::QModbusDataUnit()
空の、無効な QModbusDataUnit を生成します。開始アドレスは-1 に設定され、registerType はQModbusDataUnit::Invalid に設定されます。
[explicit constexpr noexcept] QModbusDataUnit::QModbusDataUnit(QModbusDataUnit::RegisterType type)
レジスタtype 用のデータ単位を構築します。開始アドレスは0 に設定され、データ範囲およびデータ値は空です。
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 で初期化されます。
bool QModbusDataUnit::isValid() const
QModbusDataUnit が有効な場合はtrue を返し、そうでない場合は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)
データユニットの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()も参照してください 。
© 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.