- hub task
watch应用通过hub task来管理各个外设,用户可参考其做法,也可自行实现相关功能。Hub task中处理各外设的上层消息,将外设与gui task或app task串联起来。例如按键事件可通过hub task处理后,发送对应的消息给到gui task,由gui task根据当前界面情况响应对应的行为。
hub task也将底层driver部分与上层进行分离,方便替换不同外设。上层消息处理主要放在hub_xxx.cd的文件中,driver层code主要放在module_xxx.c的文件之中,替换外设时,用户只需要对应替换初始化,读写数据一类的接口部分即可。

图4 hub task架构
- gui task
gui的刷新由触摸,按键,定时器及其他app行为触发。界面刷新前,用户会根据当前行为更新所在界面的各个控件的信息。gui core部分根据各控件的类型位置等信息,在framebuffer中进行绘制。Framebuffer可以为内部ram,也可为psram。为节省ram资源,一整帧framebuffer会被拆分为多个section,分段绘制并同步通过8080或qspi接口送至屏幕。使用psram时,则会先分段更新到psram,再经psram直接整帧送至屏幕。

图5 hub task架构
- communicate task
communicate task负责BLE的数据发送管理,根据当前发送数据命令格式进行数据打包并通过蓝牙协议栈发送出去。客户一般使用自有的蓝牙数据交互格式,该task可作为发送方式的参考,也可自行实现。
391

被折叠的 条评论
为什么被折叠?



