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公司有限公司的商标。所有其他商标均为其各自所有者的财产。