(一)机智云代码结构查看源码详解手册:
参考手册可以从我上一篇帖子分享的资源里面找。
代码结构:
关键文件:
(二)关键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
可以看到,这是保存我在云端定义的数据。因为此时我在云端只有一个数据节点,所以里面只有一个量。
2、gizwitsProtocol:
Protocol main and very important struct,即描述一些“重要的结构体”。
定义:gizwitsProtocol_t gizwitsProtocol;
位置:gizwits_protocol.c
大概就是用于保存当前获取的这个网络数据包的各方面内容。
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结构体:
protocolHead_t是标准的机智云数据包前半部分的格式:
protocol其他的结构体是以protocolHead_t为基础的完整、各类数据包:
(一)机智云代码结构查看源码详解手册:
参考手册可以从我上一篇帖子分享的资源里面找。
代码结构:
关键文件:
(二)关键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
可以看到,这是保存我在云端定义的数据。因为此时我在云端只有一个数据节点,所以里面只有一个量。
2、gizwitsProtocol:
Protocol main and very important struct,即描述一些“重要的结构体”。
定义:gizwitsProtocol_t gizwitsProtocol;
位置:gizwits_protocol.c
大概就是用于保存当前获取的这个网络数据包的各方面内容。
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结构体:
protocolHead_t是标准的机智云数据包前半部分的格式:
protocol其他的结构体是以protocolHead_t为基础的完整、各类数据包: