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连接显示如图:

数据点展示如图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值