707N蓝牙互传图传demo
📎 原始文档:https://www.kdocs.cn/l/csExKfJBkf1m 707N蓝牙互传图传demo
下载链接
!!!更新补丁
~~LVGL版本下载:(用云盘版本做git管理)~~
AC707N-standard-lv8-e_badge20260615release
~~https://www.kdocs.cn/l/ceVY2K3BbFJ3 ~~
v1.0.1版本下载:e_badge_707_sdk_200(1).zip
解决设备互传慢、手机下载慢的问题解决切换壁纸慢的问题解决若干个死机的问题
v1.0.0 版本下载:707蓝牙图传_200patch02.zip
支持707设备之间互传静态图片和gif图片- ~~支持手机下载静态图片和gif图片到设备(需要更新app sdk)~~
支持手机下载图片与设备互传图片统一管理支持左右划切换图片支持上拉下拉菜单
使用demo时,首先要修改lcd驱动到对应版本!
需求分析
- 手机传图给设备
- 包括静态图片和gif图片
- 设备端能够管理和显示图片壁纸,并且做增删功能
- 壁纸轮播功能,包括顺序轮播和随机轮播
- 下拉菜单功能(客户使用公版sdk的耳机舱代码,没有下拉菜单)
- 设备之间互传
- 基于sdk 200 patch02,兼容公版可升级
使用说明
默认壁纸加载
默认壁纸指的是软件烧录进去的壁纸,需要到sdk截图所示的路径下,将图片资源放置到images,点击run生成壁纸文件,gif跟正常壁纸的打包是一样的,生成的文件下载到设备上,可以被扫描显示
打包资源时,将vie文件打包进去即可,背景图管理会扫描并加入到壁纸管理链表
app下载壁纸
使用杰理测试工具或者宜动健康下载壁纸即可,固件端已做好壁纸的资源统一管理,要注意下载的壁纸不能是重名文件,否则现在的规则会删除旧的重名壁纸,不过这个是可以配置的,用户也可修改为对重名文件进行重命名而非删除

壁纸互传

单击上图按键,可以开启设备扫描,用户也可以自定义其他方式进行扫描开启,只需要调用下图接口即可
扫描后会自动连接另一个设备,默认使用名字去连接,要连接的名字在这里配置
主机双击按键开始传图,会将壁纸传给从机
互传成功后会同步壁纸,效果如图
开发说明
壁纸资源管理
使用功能宏TCFG_JL_WALLPAPER_ENABLE控制代码使能,使用链表管理壁纸配置资源,主要是壁纸文件的路径管理,实现壁纸的增删和设置
开机扫描壁纸
开机时会扫描烧录进去的壁纸(按文件名扫描,所以要做到文件名的统一)
壁纸配置加载
当有壁纸增删时,会对壁纸配置进行保存,下次开机时会加载配置,这块通过一个配置文件来实现
壁纸增删
提供了壁纸的增删接口,杰理测试工具暂时不支持该功能,需要客户app开发使用rcsp自定义指令或者自定义蓝牙协议实现调用
// 增加壁纸
int jl_wallpaper_add(const char* path, int path_length);
// 设置壁纸
void jl_wallpaper_set_by_name(char* name);
// 删除当前壁纸
int jl_wallpaper_remove_using();
app壁纸下载
下载数据走的是rcsp的文件下载,下载后进行壁纸文件的添加和使能
轮播机制
包括无轮播、顺序轮播、随机轮播,使用定时器进行轮播,通过WALLPAPER_CAROUSEL_TIME_INTERVAL控制轮播时两个壁纸之间切换的间隔,无轮播时,定时器会被删除
管理数据持久化
管理数据持久化,就是配置变化时存储到flash,开机时能读取配置,目前增删壁纸、配置使用壁纸时会触发持久化操作,主要流程为删除旧的配置,保存新的配置,用户左右划动切换壁纸时,对flash的操作比较频繁,可以考虑优化为在关机时、断电时存储
// 壁纸配置保存到flash
static int jl_wallpaper_save(linked_list_t* list);
// 壁纸配置从flash加载
static int jl_wallpaper_load(linked_list_t* list);
gif壁纸
默认壁纸使用gif
跟正常壁纸一样,使用这个工具打包即可
在线壁纸使用gif
gif壁纸的支持需要app配合,app要压缩gif到杰理支持的格式,相关工具和app sdk可以咨询杰理,其他流程跟静态壁纸一样
后续优化
壁纸配置持久化时频繁擦写flash的问题(已优化)
- 考虑去掉路径配置存储,全部改成开机扫描,将下载的壁纸文件全部放入统一的目录
- 将当前壁纸配置改为关机时和断电时存储
壁纸传输速度慢或断言(已解决)
- 没做缓存导致,客户可以先进行功能验证,正在开发自定义协议下的缓存进制