【Qt】QModbusDeviceIdentification类
发布日期:2021-06-29 20:52:14
浏览次数:3
分类:技术文章
本文共 3840 字,大约阅读时间需要 12 分钟。
00. 目录
文章目录
01. 概述
QModbusDeviceIdentification是一个容器类,表示Modbus服务器的物理和功能描述。
设备标识接口被建模为由一组可寻址数据元素组成的地址空间。数据元素称为对象,而标识它们。
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 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/116922310 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月19日 18时58分48秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java枚举定义
2019-04-30
[翻译][Java]ExecutorService的正确关闭方法
2019-04-30
QT父子窗口事件传递与事件过滤器
2019-04-30
Qt到Cortex-A8的移植
2019-04-30
Qt4.7.3交叉编译移植
2019-04-30
luvcview摄像头程序到Cortex A8的安装移植
2019-04-30
Android开发书籍书籍介绍:
2021-07-03
QT 的信号与槽机制介绍
2021-07-03
Qt信号槽机制与Q_OBJECT
2021-07-03
Q_OBJECT信号槽与继承关系
2021-07-03
android定时器、消息任务与问题解决
2021-07-03
Qt模拟键盘按键按下
2021-07-03
android、java获得代码执行时长
2021-07-03
Android 定时异步刷新UI
2021-07-03
虚拟机下系统键盘无法使用
2021-07-03
android根据日期计算年龄
2021-07-03
android之单元测试问题汇总
2021-07-03
Qt窗口居中
2021-07-03
Android Bitmap透明背景
2019-04-30