这里以esp32平台为例 在我们解压完成压缩包后,在main文件夹内就是存放平台的代码 Socmain包含了mian文件和配置esp32的头文件 在mian文件内,主要帮我们完成了底层初始化和参数配置,假如我们有其他外设例如按键或者其他传感器需要联动,也可以在init内进行初始化 Mian函数内,则负责完成整个项目的启动,从代码内我们可以很清楚看见使用了事件机制和freertos的多任务,这样的好处是在实现多任务和事件机制的同时,无需考虑如何取实现多任务和事件回调,freertos的任务调度算法是很高效的,也很稳定,这样整个设备会有一个高可用的状态。而且在freertos的帮助下,我们也无需去考虑复杂的内存管理,内存溢出,frteertos提供了完整的工具用于检查堆栈,好处多多啊。 总之,在这个文件内,我们基本只需要关心初始化和启动函数内的内容,假如还需要按键就是再配置一下按键的宏定义。 接下来我们可以看gizwits_product.c文件 这个文件主要包含了产品相关处理函数,如 gizwitsEventProcess(),数据采集 userHandle()函数和数据点初始化 userInit()函数。 我们主要关心的有事件响应函数和完成数据采集的函数。在gizwitsEventProcess内,数据的改变会调用此函数,我们可以在此函数内分离数据点的内容,完成数据点的响应,例如开关灯,改变亮度等 而userhandle函数则是主要服务于数据的采集和上报 在此函数内,我们只要对外部传感器采集数据,保存到datapoint变量内即可,在完成采集后使用system_os_post通知数据上报函数,对数据进行更新和上报 基本我们要关注的就是这些文件,在 机智云的帮助下,我们无需去编写复杂的对串口,定时器,wifi,蓝牙的配置,我们只需要关心如何响应数据更新,获取数据上报,大大缩短了我们产品的开发时间,也降低了后期异常的风险,毕竟机智云的代码已经经过大量设备验证了,在多次迭代后,代码已经有了一个非常稳定的状态,能让设备上线即保持一个高可用的状态,也大大提高了用户的体验。
|