收藏官网首页
查看: 21914|回复: 5

[经验] 数据点定义

跳转到指定楼层
楼主
发表于 2016-7-5 11:28:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
免费使用STM32、APP自动代码生成工具
本帖最后由 boboP 于 2017-6-16 17:39 编辑

     有关于数据点的资料信息,请点击:http://docs.gizwits.com/hc/kb/article/144487/
数据点定义
机智云云端,APP对设备上报的数据进行分析、处理,或设备对机智云云端,APP下发数据进行分析、处理,前提是双方明确数据的含义。机智云后台提供了数据点的定义界面,通过数据点定义,设备与云端、APP端数据通信的含义将得到明确。数据点定义的好处:
  • 明确设备与云端、APP端数据通信的含义。
  • 云端根据数据点定义,解析设备数据,用户可使用“设备运行状态”,“统计分析”等功能。
  • 机智云具有大数据统计接口,通过接口,可快速分析设备数据。
  • 方便APP开发者开发,APP SDK可解析下发/上报等设备数据。
  • 方便MCU开发,机智云根据数据点定义,生成MCU与GAgent通信详细串口通讯协议。

数据点定义之数据点定义步骤:
1. 进入硬件接入,选择相应“设备”。如下图:
2. 选择“数据点”,“新增数据点”
3. 填写数据点“标识名”,“读写类型”,“数据类型”,及“备注”。
4. 对已存在“数据点”可进行重新编辑、删除。
5. 数据点定义完成后,点击应用。同时可以选择将该产品数据点定义保存为模板,创建新产品时候,可直接引用该产品数据点。
数据点定义之数据点详解:
数据点定义基本内容可分为显示名称,标识名,读写类型,数据类型及备注。概图如下:
1. 显示名称:请用最清晰的方式描述一个数据点的名称,默认为等于“标识名”,点击编辑可修改“显示名称”。支持所有中英文及符号字符类型(为了正常显示请避免使用特殊字符)。不在硬件端存储传输,用于虚拟设备及IoE Demo App开发调试时的识别。
2. 标识名:用于应用层传输,客户端或业务云开发时需要使用,不在硬件端存储和传输。命名规则遵循标准的开发语言变量名命名规范,支持英文字母、数字和下划线,以英文字母开头。
3. 读写类型:
① 只读:表示该数据点非控制,数据类型可为布尔值/枚举/数值/扩展等。云端/客户端无法对该数据点数据做出下发控制,只能设备端上报该数据点数据。例如“微信宠物屋”,“红外传感器故障”该数据点。
② 可写:表示该数据点可控制,数据类型可为布尔值/枚举/数值/扩展等。设备端可上报该数据点数据;云端/客户端可对该数据点数据做出下发控制。例如“微信宠物屋”,“开启/关闭红色灯”该数据点。
③ 报警:表示该数据点非控制,数据类型需为布尔值。云端/客户端无法对该数据点数据做出下发控制,只能设备端上报该数据点数据。例如“微信宠物屋”,“报警1”该数据点。
④ 故障:表示该数据点非控制,数据类型需为布尔值。云端会对设备上报的该数据点做统计,可在“运行状态”查看。云端/客户端无法对该数据点数据做出下发控制,只能设备端上报该数据点数据。例如“微信宠物屋”,”报警1”该数据点。
4. 数据类型:
① 布尔值:表示两个状态:0,或1。如开关状态等,建议使用布尔数据类型。例如“微信宠物屋”,“开启/关闭红色灯”该数据点。
② 枚举类型:可定义一个有限的取值集合,每2个值占用1bit。当定义的某个功能(元器件)有固定的若干个值。例如“微信宠物屋”,“设定LED组合颜色”该数据点。
③ 数值:填写数值范围,数值可为负数/小数,机智云自动将数值转换为正数。例如“微信宠物屋”,“设定电机转速”该数据点。
④ 扩展:填写数据长度,数据内容由用户自定义。机智云不建议使用此类型数据,因为此类型数据机智云无法识别,也就无法使用机智云其他的各种基于数据分析的服务和增值服务。
5. 备注:选填,用一段文本描述当前数据点的功能及定义方法,对字符格式不做限制。只用于提高数据点的易读性,如果需要团队协作开发,建议规范填写。
数据点定义之编辑数据点:
    针对不同类型数据格式,需要填写的参数均有所不同,以下分别对不同数据类型提供编辑方法:
1. 布尔型数据类型添加/编辑方法:
    布尔型是最简单的格式类型,没有参数,只有两个值:true (1) 、false (0)。如图
2. 枚举型数据类型添加/编辑方法:
    “数据类型”选择[枚举]类型后,在“枚举范围”文本框中直接输入枚举值,每一个值使用英文逗号“,”隔开。点击保存提交后,程序将自动为每一个枚举值添加一个序号,客户端或硬件端开发直接使用枚举序号。如图
3. 数值型数据类型添加/编辑方法:
   “数据类型”选择[数值]类型后,出现数据范围和分辨率文本框,数据范围输入最小值和最大值,分辨率可理解为调节的精度或元器件本身支持的最高精度。数据点编辑如下图。数值类型数据点分辨率的换算方法,可见下文“数据点定义之数值型数据类型换算实现原理”。
4. 扩展型数据类型添加/编辑方法:
    “数据类型”选择[扩展]类型后,出现“数据长度”必填文本框,开发者可输入小于等于900(单位Byte)的正整数。本质上就是约定了一条指令为此数据点保留的空间长度。
数据点定义之数值型数据类型换算实现原理:
    如以上提到,在定义数值型数据点的时候,取值范围可以使用包括小数、负数等非uint类型数值,熟悉嵌入式开发的开发者会知道,这些数值在设备端都是不被支持的。
机智云为了让设备功能定义更加简单直接、所见即所得,研究出来一套算法,用于将用户输入的数值转换成设备能够识别的uint类型,这套算法的核心公式是:y=kx+m。
    y表示“显示值”,就是用户可见的最终数值,也是数据点定义时输入的值。包括 Ymin(最小值) 和 Ymax(最大值)。
    x表示“传输值”,就是实际指令间传输使用的数值,云端/客户端接收到的值。一定是uint格式。也包括 Xmin 和 Xmax。
    k表示“分辨率”,就是用户输入的分辨率一值,确定了每个取值的步进。
    m表示“取值偏移量”或“增量”,算法通过m值将y值偏移到满足x值uint格式的要求,m值默认等于Ymin,确保Xmin=0 。
    以下用一个电子温度计举例说明换算过程 数据点内容: 取值范围:-30(Ymin) ~ 50(Ymax),分辨率:0.1
根据公式:y=kx+m,m默认等于Ymin -30
Xmin = (-30+30) / 0.1 = 0
Xmax = (50+30) / 0.1 = 800



1

主题

220

帖子

1198

积分

金牌会员

Rank: 6Rank: 6

积分
1198
沙发
发表于 2016-7-29 12:26:57 | 只看该作者
好详细呀,感谢分享,收藏了

0

主题

9

帖子

396

积分

中级会员

Rank: 3Rank: 3

积分
396
板凳
发表于 2016-10-21 01:07:27 来自手机 | 只看该作者
这个不错,收藏备用
地板
 楼主| 发表于 2016-10-27 16:12:56 | 只看该作者
GXZhi 发表于 2016-10-21 01:07
这个不错,收藏备用

谢谢支持,后期会更新更多更详细的说明文档给大家。

24

主题

110

帖子

291

积分

版主

Rank: 7Rank: 7Rank: 7

积分
291
5#
发表于 2016-11-24 16:01:17 | 只看该作者
校园创客福利
好详细呀,感谢分享,收藏了

3

主题

253

帖子

432

积分

中级会员

Rank: 3Rank: 3

积分
432
6#
发表于 2017-2-6 11:45:23 | 只看该作者
详细,点个赞
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表