QOpcUaBinaryDataEncoding 类
QOpcUaBinaryDataEncoding 是 OPC UA 第 6 部分中描述的二进制数据编码的部分实现。 更多...
| 头文件 | #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 | String |
| QOpcUaQualifiedName | QualifiedName |
| QOpcUaLocalizedText | LocalizedText |
| QOpcUaEUInformation | EUInformation |
| QOpcUaRange | Range |
| QOpcUaComplexNumber | ComplexNumber |
| QOpcUaDoubleComplexNumber | DoubleComplexNumber |
| QOpcUaAxisInformation | AxisInformation |
| QOpcUaXValue | XV |
| QUuid | GUID |
| QString 节点 ID | NodeId |
| QByteArray | ByteString |
| QDateTime | DateTime |
| QOpcUa::UaStatusCode | StatusCode |
| QOpcUaExpandedNodeId | ExpandedNodeId |
| QOpcUaExtensionObject | ExtensionObject |
| QOpcUaArgument | Argument |
| QOpcUaDiagnosticInfo(自 Qt 6.7) | DiagnosticInfo |
| QOpcUaApplicationRecordDataType | ApplicationRecordDataType |
| QOpcUaStructureDefinition(自 Qt 6.7) | StructureDefintion |
| QOpcUaStructureField(自 Qt 6.7) | StructureField |
| QOpcUaEnumDefinition(自 Qt 6.7) | EnumDefintion |
| QOpcUaEnumField(自 Qt 6.7) | EnumField |
| QOpcUaVariant(自 Qt 6.7) | Variant |
| QOpcUaDataValue(自 Qt 6.7) | 数据值 |
成员函数文档
QOpcUaBinaryDataEncoding::QOpcUaBinaryDataEncoding(QByteArray *buffer)
构建用于数据缓冲区 buffer 的二进制数据编码对象。在使用此二进制数据编码对象期间,不得删除 buffer。
QOpcUaBinaryDataEncoding::QOpcUaBinaryDataEncoding(QOpcUaExtensionObject &object)
使用 object 的编码体作为数据缓冲区构建二进制数据编码对象。
在使用此二进制数据编码对象期间,不得删除 object。
模板 <typename T, QOpcUa::Types OVERLAY = QOpcUa::Types::Undefined> T QOpcUaBinaryDataEncoding::decode(bool &success)
从数据缓冲区解码类型为 T 的标量值。如果解码成功,将 success 设置为 true,如果不成功,设置为 false。
返回解码的值。如果 success 为 false,则返回的值无效。
另请参阅decodeArray。
模板 <typename T, QOpcUa::Types OVERLAY = QOpcUa::Types::Undefined> QList<T> QOpcUaBinaryDataEncoding::decodeArray(bool &success)
从数据缓冲区解码类型为 T 的数组。如果解码成功,将 success 设置为 true,如果不成功,设置为 false。
返回解码的值。如果 success 为 false,则返回的值无效。
另请参阅decode。
模板 <typename T, QOpcUa::Types OVERLAY = QOpcUa::Types::Undefined> bool QOpcUaBinaryDataEncoding::encode(const T &src)
将 src 的类型 T 编码并追加到数据缓冲区。如果值已成功编码,返回 true。
另请参阅encodeArray。
模板 <typename T, QOpcUa::Types OVERLAY = QOpcUa::Types::Undefined> bool QOpcUaBinaryDataEncoding::encodeArray(const QList<T> &src)
编码 src 中类型为 T 的所有元素并将其值追加到数据缓冲区。
如果值已成功编码,返回 true。
另请参阅encode。
int QOpcUaBinaryDataEncoding::offset() const
返回数据缓冲区中的当前偏移量。
另请参阅setOffset。
void QOpcUaBinaryDataEncoding::setOffset(int offset)
将数据缓冲区中的当前偏移量设置为 offset。缓冲区中的第一个字节偏移量为 0。
另请参阅offset。
void QOpcUaBinaryDataEncoding::truncateBufferToOffset()
截断数据缓冲区到当前 offset。如果偏移量位于当前缓冲区大小之后,则此方法不执行任何操作。
此方法可以在执行失败的编码后通过设置旧偏移量并调用 truncateBufferToOffset() 来回滚。
© 2024 Qt公司有限公司。本文档中的贡献包含各自的版权。提供的文档根据由自由软件基金会发布的GNU自由文档许可证(版本1.3)许可。Qt及其相关标识是芬兰及其它国家Qt公司有限公司的商标。所有其他商标均为其各自所有者的财产。