QOpcUaBinaryDataEncoding Class
QOpcUaBinaryDataEncoding は、OPC UA 第 6 部で規定されている OPC UA バイナリデータエンコーディングの部分実装です。詳細...
| ヘッダー: | #include <QOpcUaBinaryDataEncoding> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS OpcUa) target_link_libraries(mytarget PRIVATE Qt6::OpcUa) |
| qmake: | QT += opcua |
パブリック関数
| QOpcUaBinaryDataEncoding(QByteArray *buffer) | |
| QOpcUaBinaryDataEncoding(QOpcUaExtensionObject &object) | |
| T | decode(bool &success) |
| QList<T> | decodeArray(bool &success) |
| bool | encode(const T &src) |
| bool | encodeArray(const QList<T> &src) |
| int | offset() const |
| void | setOffset(int offset) |
| void | truncateBufferToOffset() |
詳細な説明
拡張オブジェクトの読み取りおよび書き込みのためのデータエンコードおよびデコードを行うテンプレート関数を提供します。
以下の型がサポートされています:
| Qt タイプ | OPC UA タイプ |
|---|---|
| quint8 | uint8 |
| qint8 | int8 |
| quint16 | uint16 |
| qint16 | int16 |
| quint32 | uint32 |
| qint32 | int32 |
| quint64 | uint64 |
| qint64 | int64 |
| float | float |
| double | double |
| QString | 文字列 |
| QOpcUaQualifiedName | 修飾名 |
| QOpcUaLocalizedText | ローカライズされたテキスト |
| QOpcUaEUInformation | EU情報 |
| QOpcUaRange | 範囲 |
| QOpcUaComplexNumber | 複素数 |
| QOpcUaDoubleComplexNumber | 複素数 |
| QOpcUaAxisInformation | 軸情報 |
| QOpcUaXValue | XV |
| QUuid | GUID |
| QString ノードID | NodeId |
| QByteArray | ByteString |
| QDateTime | DateTime |
| QOpcUa::UaStatusCode | ステータスコード |
| QOpcUaExpandedNodeId | 展開済みノードID |
| QOpcUaExtensionObject | ExtensionObject |
| QOpcUaArgument | 引数 |
| QOpcUaDiagnosticInfo (Qt 6.7 以降) | 診断情報 |
| QOpcUaApplicationRecordDataType | ApplicationRecordDataType |
| QOpcUaStructureDefinition (Qt 6.7 以降) | 構造体定義 |
| QOpcUaStructureField (Qt 6.7 以降) | 構造体フィールド |
| QOpcUaEnumDefinition (Qt 6.7 以降) | EnumDefinition |
| QOpcUaEnumField (Qt 6.7 以降) | EnumField |
| QOpcUaVariant (Qt 6.7 以降) | Variant |
| QOpcUaDataValue (Qt 6.7 以降) | DataValue |
メンバ関数のドキュメント
QOpcUaBinaryDataEncoding::QOpcUaBinaryDataEncoding(QByteArray *buffer)
データバッファ `buffer` に対するバイナリデータエンコーディングオブジェクトを構築します。このバイナリデータエンコーディングオブジェクトが使用されている間は、`buffer ` を削除してはなりません。
QOpcUaBinaryDataEncoding::QOpcUaBinaryDataEncoding(QOpcUaExtensionObject &object)
object のエンコード済み本体をデータバッファとして使用して、バイナリデータエンコーディングオブジェクトを構築します。
object このバイナリデータエンコーディングオブジェクトが使用されている間は、削除してはなりません。
template <typename T, QOpcUa::Types OVERLAY = QOpcUa::Types::Undefined> T QOpcUaBinaryDataEncoding::decode(bool &success)
OVERLAY で指定されたOPC UA組み込み型を使用して、データバッファから型Tのスカラー値をデコードします。デコードが成功した場合はsuccess がtrue に、失敗した場合はfalse に設定されます。
デコードされた値が返されます。success がfalseの場合、返される値は無効となります。
デコードの最大再帰深さは500 に制限されます。制限に達した場合、success は false に設定され、無効な値が返されます。
decodeArray()も参照してください 。
template <typename T, QOpcUa::Types OVERLAY = QOpcUa::Types::Undefined> QList<T> QOpcUaBinaryDataEncoding::decodeArray(bool &success)
OVERLAY で指定されたOPC UA組み込み型を使用して、データバッファから型Tの配列をデコードします。デコードが成功した場合はsuccess にtrue が設定され、失敗した場合はfalse が設定されます。
デコードされた値が返されます。success がfalseの場合、返される値は無効となります。
デコードの最大再帰深さは500 に制限されます。制限に達した場合、success は false に設定され、無効な値が返されます。
decode()も参照してください 。
template <typename T, QOpcUa::Types OVERLAY = QOpcUa::Types::Undefined> bool QOpcUaBinaryDataEncoding::encode(const T &src)
OVERLAY で指定された OPC UA 組み込み型を使用して、型 T のsrc をエンコードし、エンコードされた値をデータバッファに追加します。値のエンコードに成功した場合は、true を返します。
encodeArray()も参照してください 。
template <typename T, QOpcUa::Types OVERLAY = QOpcUa::Types::Undefined> bool QOpcUaBinaryDataEncoding::encodeArray(const QList<T> &src)
OVERLAY で指定される OPC UA 組み込み型を使用して、src 内の型 T のすべての要素をエンコードし、エンコードされた値をデータバッファに追加します。
値のエンコードが正常に完了した場合、true を返します。
encode()も参照してください 。
int QOpcUaBinaryDataEncoding::offset() const
データバッファ内の現在のオフセットを返します。
setOffset()も参照してください 。
void QOpcUaBinaryDataEncoding::setOffset(int offset)
データバッファ内の現在のオフセットを `offset` に設定します。バッファの最初のバイトのオフセットは 0 です。
offset()も参照してください 。
void QOpcUaBinaryDataEncoding::truncateBufferToOffset()
データバッファを現在のoffset()の位置まで切り詰めます。オフセットが現在のバッファサイズより後ろにある場合、このメソッドは何も行いません。
このメソッドは、エンコードに失敗した後、以前のオフセットを設定して truncateBufferToOffset() を呼び出すことで、ロールバックを行うために使用できます。
© 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.