【Qt】QModbusDeviceIdentification类

00. 目录

01. 概述

QModbusDeviceIdentification是一个容器类,表示Modbus服务器的物理和功能描述。

设备标识接口被建模为由一组可寻址数据元素组成的地址空间。数据元素称为对象,而ObjectId标识它们。

Header: #include
qmake: QT += serialbus

Since: Qt 5.8

02. 开发环境

Windows系统:Windows10

Qt版本:Qt5.15或者Qt6

03. 公有类型

enum ConformityLevel { BasicConformityLevel, RegularConformityLevel, ExtendedConformityLevel, 
BasicIndividualConformityLevel, RegularIndividualConformityLevel, 
ExtendedIndividualConformityLevel }

enum ObjectId { VendorNameObjectId, ProductCodeObjectId, MajorMinorRevisionObjectId, 
VendorUrlObjectId, ProductNameObjectId,, UndefinedObjectId }

enum ReadDeviceIdCode { BasicReadDeviceIdCode, RegularReadDeviceIdCode, 
ExtendedReadDeviceIdCode, IndividualReadDeviceIdCode }

enum QModbusDeviceIdentification::ConformityLevel

定义设备的标识一致性级别和支持的访问类型。

常量 描述
QModbusDeviceIdentification::BasicConformityLevel 0x01 基本标识(流访问)。
QModbusDeviceIdentification::RegularConformityLevel 0x02 定期识别(流访问)。
QModbusDeviceIdentification::ExtendedConformityLevel 0x03 扩展标识(流访问)。
QModbusDeviceIdentification::BasicIndividualConformityLevel 0x81 基本标识(流访问和个人访问)。
QModbusDeviceIdentification::RegularIndividualConformityLevel 0x82 定期标识(流访问和个人访问)。
QModbusDeviceIdentification::ExtendedIndividualConformityLevel 0x83 扩展标识(流访问和个人访问)。

enum QModbusDeviceIdentification::ObjectId

该枚举描述了可能的服务器对象。该接口包含三类对象:

基本设备标识。此类别的所有对象都是强制性的。

常量 描述
QModbusDeviceIdentification::VendorNameObjectId 0x00 设备的供应商名称。
QModbusDeviceIdentification::ProductCodeObjectId 0x01 设备的产品代码。
QModbusDeviceIdentification::MajorMinorRevisionObjectId 0x02 产品版本号。

常规设备识别。此类别的所有对象都是标准定义的并且是可选的。

常量 描述
QModbusDeviceIdentification::VendorUrlObjectId 0x03 设备的供应商URL。
QModbusDeviceIdentification::ProductNameObjectId 0x04 设备的产品名称。
QModbusDeviceIdentification::ModelNameObjectId 0x05 设备的型号名称。
QModbusDeviceIdentification::UserApplicationNameObjectId 0x06 设备的用户应用程序名称。

扩展设备标识。所有这些数据均取决于设备且是可选的。

常量 描述
QModbusDeviceIdentification::ProductDependentObjectId 0x80 产品相关标识符的第一个可能值。
QModbusDeviceIdentification::UndefinedObjectId 0x100 不使用。

enum QModbusDeviceIdentification::ReadDeviceIdCode

定义读取的标识请求的访问类型。

流访问:

常量 描述
QModbusDeviceIdentification::BasicReadDeviceIdCode 0x01 要求获取基本设备标识。
QModbusDeviceIdentification::RegularReadDeviceIdCode 0x02 要求获取常规设备标识。
QModbusDeviceIdentification::ExtendedReadDeviceIdCode 0x03 请求获取扩展的设备标识。

个人访问:

常量 描述
QModbusDeviceIdentification::IndividualReadDeviceIdCode 0x04 请求获取一个特定的标识对象。

04. 成员方法

QModbusDeviceIdentification::QModbusDeviceIdentification()
构造一个无效的QModbusDeviceIdentification对象。
    
QModbusDeviceIdentification::ConformityLevel QModbusDeviceIdentification::conformityLevel() const
返回设备的标识一致性级别和支持的访问类型。    
    
bool QModbusDeviceIdentification::contains(uint objectId) const    
返回true是否存在给定objectId的项目;否则返回false。   
    
[static] QModbusDeviceIdentification QModbusDeviceIdentification::fromByteArray(const QByteArray &ba)    
将字节数组ba转换为QModbusDeviceIdentification对象。

注意:如果在处理字节数组时发生某些错误,则返回的对象可能为空,甚至无效。
    
    
bool QModbusDeviceIdentification::insert(uint objectId, const QByteArray &value)    
插入与新项目OBJECTID和值值。如果已经有一个带有objectId的项目,则该项目的值将替换为value。

返回true如果大小值小于245个字节,OBJECTID是小于QModbusDeviceIdentification :: UndefinedObjectId。
    
    
bool QModbusDeviceIdentification::isValid() const    
返回true设备标识对象是否有效;否则false。

如果将ProductNameObjectId,ProductCodeObjectId和MajorMinorRevisionObjectId设置为非空值,则设备标识对象被视为有效。
对象仍然可以包含有效的对象ID和关联的数据。

注意:默认构造的设备标识对象无效。
    
QList<int> QModbusDeviceIdentification::objectIds() const
返回一个列表,其中包含对象中所有对象ID的QModbusDeviceIdentification升序排列。    
    
void QModbusDeviceIdentification::remove(uint objectId)
删除给定objectId的项目。
    
    
void QModbusDeviceIdentification::setConformityLevel(QModbusDeviceIdentification::ConformityLevel level)
设置设备的标识一致性级别,并将支持的访问类型设置为level。
    
    
QByteArray QModbusDeviceIdentification::value(uint objectId) const    
返回与objectId关联的值。如果没有带有objectId的项目,则该函数返回默认构造的值。

05. 预留

06. 附录

6.1 Qt教程汇总
网址:https://dengjin.blog.csdn.net/article/details/115174639

© 版权声明
THE END
喜欢就支持一下吧
点赞525 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容