Genius 发表于 2017-11-28 16:09:45

水墨画定时控制系统:gokit时间获取及其分析1


gokit时间获取及其分析2:http://club.gizwits.com/thread-8037-1-1.htmlgokit时间获取及其分析3:http://club.gizwits.com/thread-8038-1-1.html

(一)机智云代码结构
查看源码详解手册:
http://b04.ickimg.com/201711/fb75bcc5ab236cff2c69a0c2940bfebd.png

代码结构:
http://b04.ickimg.com/201711/76f840c3b2bf0dd2005aebcef8aaa11c.png

关键文件:
http://b04.ickimg.com/201711/35ea54e77da73205214512789c1318ed.png

(二)关键api函数:
void gizwitsInit(void)
gizwits 协议初始化接口。用户调用该接口可以完成Gizwits 协议相关初始化(包括协议相关定时器、串口的初始化)。
void gizwitsSetMode(uint8_t mode)
参数mode:仅支持0,1 和2,其他数据无效。参数为0,恢复模组出厂配置接口,调用会清空所有配置参数,恢复到出厂默认配置。参数为1 时配置模组进入SoftAp 模式;参数为2 配置模组进入AirLink 模式。
void gizwitsHandle(dataPoint_t *dataPoint)
参数dataPoint:用户设备数据点。该函数中完成了数据上报等相关操作。
int8_t gizwitsEventProcess(eventInfo_t *info, uint8_t *data, uint32_t len)参数info:事件队列
参数data:数据
参数len :数据长度 用户数据处理函数,包括wifi 状态更新事 件和控制事件。


a) Wifi 状态更新事件:
WIFI_开头的事件为wifi 状态更新 事件,data 参数仅在WIFI_RSSI 有效, data 值为RSSI 值,数据类型为uint8_t, 取值范围0~7。
b) 控制事件:
与数据点相关,本版本代码会打印相 关事件信息,相关数值也一并打印输出, 用户只需要做命令的具体执行即可。


(三)重点变量
个人认为有几个变量需要重点留意学习:

1、currentDataPoint
保存设备目前的状态:
定义:dataPoint_t currentDataPoint;
位置:gizwits_product.c
http://b04.ickimg.com/201711/3272911d6f8d606d0eefd9bb6d8d0bc8.png
可以看到,这是保存我在云端定义的数据。因为此时我在云端只有一个数据节点,所以里面只有一个量。


2、gizwitsProtocol:
Protocol main and very important struct,即描述一些“重要的结构体”。
定义:gizwitsProtocol_t gizwitsProtocol;
位置:gizwits_protocol.c
http://b04.ickimg.com/201711/dd835192be4af95b878ab849ac3fd69b.png
大概就是用于保存当前获取的这个网络数据包的各方面内容。


3、timerMsCount
timerMsCount就是一个计算从开机到目前的毫秒数
定义: static uint32_t timerMsCount;


(四)重点函数

[*]1、userHandle() 用户区上报数据
[*]2、userInit() 初始化函数
[*]3、userHandle() 只读型传感器数据点处理,位置main.c
[*]4、gizwitsEventProcess() 可写型传感器数据点处理,位置gizwits_product.c
[*]5、gizProtocolGetOnePacket()接收一个网络数据包的函数
[*]6、gizGetTimerCount()获得从开机到当前的毫秒数。
[*]7、TIMER_IRQ_FUN()定时器3中断服务程序,整个系统的时基生成器。


(五)protocol结构体:
http://b04.ickimg.com/201711/6ccd623f8173038636ebeeaab7d348a7.png

protocolHead_t是标准的机智云数据包前半部分的格式:
http://b04.ickimg.com/201711/cf68497f78bc5fdab6025d8a8770d1e5.png

protocol其他的结构体是以protocolHead_t为基础的完整、各类数据包:
http://b04.ickimg.com/201711/014eef543ec15798192c3dcc207f4c6d.png

IoT软件平台

页: [1]
查看完整版本: 水墨画定时控制系统:gokit时间获取及其分析1