收藏官网首页
查看: 5288|回复: 0

[经验分享] 理解机智云生成的soc代码

106

主题

107

帖子

7264

积分

论坛元老

Rank: 8Rank: 8

积分
7264
跳转到指定楼层
楼主
 楼主| 发表于 2023-7-12 17:00:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
汉枫LPB120模块
这里以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,蓝牙的配置,我们只需要关心如何响应数据更新,获取数据上报,大大缩短了我们产品的开发时间,也降低了后期异常的风险,毕竟机智云的代码已经经过大量设备验证了,在多次迭代后,代码已经有了一个非常稳定的状态,能让设备上线即保持一个高可用的状态,也大大提高了用户的体验。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表