摘要
这个桌面小盒子是之前的东西,一直放着没有整理好。最近有空了就把他整理整理。 小盒子主要用来显示时间和天气预报,功能比较简单,其实还有很多可以玩的,懒得弄,所以就把最简单的整理出来。 软件是基于rt-thread, UI采用lvgl。
功能主要分为两个部分
第一部分--功能
功能部分主要分为两个部分,一个是NTP获取实时时间,一个是天气等信息。 NTP比较简单,RTT提供了相关API。代码如下:
第二部分--UI
UI方面我使用了LVGL,这个开始比较方便的UI框架,可移植性搞。网上的教程也比较多。 由于rt-thread的LVGL软件包比较旧,而且有些东西没有移植好,所以我自己根据我的平台重新移植一份。 根据LVGL移植流程,需要对接porting下源文件的API回调。主要包含,disp(显示)、indev(输入设备,如触摸,按键)、fs(文件系统)。而本项目只对接disp(显示)、fs(文件系统, 读取SD卡的图片资源)
其中fs的代码,文件系统我对接的dfs_posix的接口,因为我只使用读文件操作,所以直接对接部分接口,代码如下:
这个盒子的UI设计比较简单,主要实现在main_tab_hander中实现,会先调用同步一下时间和天气信息。然后创建了一个task,来更新页面信息。
效果: 一个简单的桌面小工具: 放在桌面,和PM2.5来实时监测工作环境。
|