GoKit3(V)学习笔记02_自定义产品数据点
跟着Gokit3使用说明书的教程顺利地让设备跑了起来,家里一下子热闹了起来,玛丽玛丽的声音此起披伏,多多儿还不会讲话,也跟着maaa地叫着。这是GoKit3给生活带来的快乐。
言归正传,这篇开始讲述GoKit开发的第二件事–自定义产品数据点。
1 创建产品
在机智云平台创建自己的产品,如下图中我的仓鼠管家:
2 编辑产品数据点
创建完产品后立即就要编辑数据点了,如下图:
我选择基于宠物屋模版去做修改:
由于我的项目初期只用到了灯和电机,所以去掉了几个无关的数据点,数据点规划如下图:
因此根据规划的数据点,需要对原有的数据做部分调整,如下图是删除不需要的数据点:
调整完毕后,点击下一步变生成了对应的串口协议,可以据此来编写GoKit3端的程序了,如下图:
3 GoKit3代码修改
3.1 ProductKey修改
需要将目前创建的产品的PRODUCT_KEY添加到代码中。
#define PRODUCT_KEY "b18743d658f0456499efdc20463b6a13" // "your_product_key"
3.2 控制设备的数据点调整
参考《机智云接入串口通信协议文档》中4.10 WiFi模组控制设备。
eventProcess中逐个处理issuedData->attrVals,在这里头处理各种外设控制。由于仓鼠管家定义的产品数据点中控制设备的部分与宠物屋一致,因此这部分源码就没有改动:
__packed typedef struct {uint8_t LED_OnOff:1;uint8_t LED_Color:1;uint8_t LED_R:1;uint8_t LED_G:1;uint8_t LED_B:1;uint8_t Motor_Speed:1;
}attrFlags_t;__packed typedef struct {uint8_t LED_OnOff:1;uint8_t LED_Color:2;uint8_t reserve:5;uint8_t LED_R;uint8_t LED_G;uint8_t LED_B;uint16_t Motor_Speed;
}attrVals_t;//custom
__packed typedef struct {attrFlags_t attrFlags;attrVals_t attrVals;
}gizwitsIssued_t;
3.3 设备上报的数据点调整
参考《机智云接入串口通信协议文档》中4.9 设备MCU向WiFi模组主动上报当前状态。
由于我们的数据点做了修改,因此需要做部分调整,如下图,对红外、温湿度都进行了注释。
__packed typedef struct {uint8_t LED_OnOff:1;uint8_t LED_Color:2;uint8_t reserve_0:5;uint8_t LED_R;uint8_t LED_G; uint8_t LED_B;uint16_t Motor_Speed;//uint8_t Infrared:1;//uint8_t reserve_1:7;//uint8_t Temperature;//uint8_t Humidity;uint8_t Alert_1:1;uint8_t Alert_2:1;uint8_t reserve_2:6;uint8_t Fault_LED:1;uint8_t Fault_Motor:1;//uint8_t Fault_TemHum:1;//uint8_t Fault_IR:1;uint8_t reserve_3:6;//uint8_t reserve_3:4;
}devStatus_t;__packed typedef struct {devStatus_t devStatus;
}gizwitsReport_t;
4 总结
这样就基本上调整好了代码,接着就可以按照笔记1_搭建开发环境http://blog.csdn.net/iotisan/article/details/52245224的编译烧写流程进行程序烧录测试了。
更详细的代码,可以直接到https://github.com/twowinter/OpenHamtaro查看commit记录。
好了,上电之:
APP连接显示如图:
数据点展示如图:
GoKit3(V)学习笔记02_自定义产品数据点相关推荐
- Vue.js 学习笔记 十一 自定义指令
之前看到过v-bind,v-on等指令,Vue还可以自定义指<div id="divApp" <div v-focus></div> & ...
- Vue.js 学习笔记 十 自定义按键事件
<div id="divApp"><!--任何键盘动作都会触发--><input type="text" v-on:keyup=& ...
- 【学习笔记】使用魔数快速求平方根
[学习笔记]使用魔数快速求平方根 简介 介绍使用魔数0x1fbd1df5快速求平方根x{\sqrt{x}}x的C语言实现和公式的推导. 代码 float MagicSqrt(float x) {fl ...
- 【学习笔记】使用魔数快速求立方根
[学习笔记]使用魔数快速求立方根 简介 介绍使用魔数0x2a517d47快速求立方根 x 3 {\sqrt[3]{x}} 3x 的C语言实现和公式的推导. 代码 float MagicCubeRoo ...
- Pytorch学习笔记7——自定义数据集
Pytorch学习笔记7--自定义数据集 1.读取数据 首先继承自torch.utils.data.Dataset 重写len与getitem train就用train数据集,test就用test数据 ...
- 算法【二叉树】学习笔记 - 已知结点数计算可构建出多少种二叉树
算法[二叉树]学习笔记 - 已知结点数计算可构建出多少种二叉树 卡特兰数 相关知识点 排列组合公式 排列 Arrangement 组合 Combination 分步计算 简化 参考资料 题目:已知3个 ...
- Flutter学习笔记 —— CustomPainter自定义画布绘制爱心
Flutter学习笔记 -- CustomPainter自定义画布绘制爱心 前言 效果图 代码示例 温馨提示 结束语 前言 最近在学习Flutter中 Canvas相关内容,今天尝试写了一个爱心Dem ...
- 数据挖掘作业学习学习笔记-电商产品评论数据情感分析
使用的教材:<电商产品评论数据情感分析> 作业&学习笔记:数据挖掘第14周 说明:书本内容详实.此篇用于自己期末回顾知识的重点内容,故做出的学习笔记缺省了书本原本的其他精粹. 随着 ...
- Git 学习笔记:自定义Git(完)
前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...
最新文章
- 【SSRS】入门篇(二) -- 建立数据源
- 3月9日起陆续开学!快来看看有没有你所在的省份
- PostgreSQL 10.1 手册_部分 II. SQL 语言_第 12 章 全文搜索_12.9. GIN 和 GiST 索引类型
- docker java镜像_Docker JDK镜像
- NeurIPS 2018 | 如何用循环关系网络机智地解决数独类关系推理任务?
- java token生成和验证_SpringBoot集成JWT生成token及校验方法过程解析
- ROS 命令以及相关内容学习(二)
- 【树形DP】没有上司的晚会 (ssl 1607)
- Java文件读写操作指定编码方式防乱码
- 计算机英语bane,英语单词bane是什么意思,英文单词查询bane,在线单词bane翻译...
- ReactNative从零到完整项目-Flexbox使用
- [转载] html转word table样式_[Python02] Python-docx包的使用,快速处理 Word 文件!
- loadrunner 一个诡异问题
- linux 用命令安装软件,Linux安装软件的三种常用命令
- thing JS笔记
- jquery name选择器
- 【联盛德W806上手笔记】六、7816/UART 控制器
- 《精进》(采铜)——读书笔记
- 崩坏3服务器修改水晶数量,崩坏3一个月能攒多少水晶_单月水晶数量分析
- 如何在Kubernetes中部署nginx
热门文章
- 西安科技大学计算机院,计算中心-西安科技大学计算机科学与技术学院
- 笔记本电脑,电池/电源适配器建议使用方式及疑难解答
- python opencv如何读取透明png图片以及如何编辑透明度
- Witt向量简介 §4.2:环的完备化的若干问题说明
- java中文乱码 例子_JSP中文乱码常见3个例子及其解决方法
- Java基础(2)面向对象的理解
- TMail电子邮件,TMail放入服务器只需4分钟
- SpiderFlow平台v0.3.0初次使用并爬取薄荷网的热量和减法功效
- 开源商城系统php哪个好,开源电商系统选择哪个好?
- 全球与中国吸油烟机行业市场规模调研及未来前瞻报告2022-2028年