00. 目录
01. 概述
QModbusDeviceIdentification是一个容器类,表示Modbus服务器的物理和功能描述。
设备标识接口被建模为由一组可寻址数据元素组成的地址空间。数据元素称为对象,而ObjectId标识它们。
Header: #include
qmake: QT += serialbusSince: 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
暂无评论内容