QOpcUaBinaryDataEncoding 类

QOpcUaBinaryDataEncoding 是 OPC UA 第 6 部分中描述的二进制数据编码的部分实现。 更多...

头文件 #include <QOpcUaBinaryDataEncoding>
CMakefind_package(Qt6 REQUIRED COMPONENTS OpcUa)
target_link_libraries(mytarget PRIVATE Qt6::OpcUa)
qmakeQT += opcua

公共函数

QOpcUaBinaryDataEncoding(QByteArray *buffer)
QOpcUaBinaryDataEncoding(QOpcUaExtensionObject &object)
Tdecode(bool &success)
QList<T>decodeArray(bool &success)
boolencode(const T &src)
boolencodeArray(const QList<T> &src)
intoffset() const
voidsetOffset(int offset)
voidtruncateBufferToOffset()

详细描述

它提供模板函数,用于编码和解码扩展对象的读写数据。

支持以下类型

Qt 类型OPC UA 类型
quint8uint8
qint8int8
quint16uint16
qint16int16
quint32uint32
qint32int32
quint64uint64
qint64int64
floatfloat
doubledouble
QStringString
QOpcUaQualifiedNameQualifiedName
QOpcUaLocalizedTextLocalizedText
QOpcUaEUInformationEUInformation
QOpcUaRangeRange
QOpcUaComplexNumberComplexNumber
QOpcUaDoubleComplexNumberDoubleComplexNumber
QOpcUaAxisInformationAxisInformation
QOpcUaXValueXV
QUuidGUID
QString 节点 IDNodeId
QByteArrayByteString
QDateTimeDateTime
QOpcUa::UaStatusCodeStatusCode
QOpcUaExpandedNodeIdExpandedNodeId
QOpcUaExtensionObjectExtensionObject
QOpcUaArgumentArgument
QOpcUaDiagnosticInfo(自 Qt 6.7)DiagnosticInfo
QOpcUaApplicationRecordDataTypeApplicationRecordDataType
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公司有限公司的商标。所有其他商标均为其各自所有者的财产。