平台:AB1565M
SDK版本:V2.11.0
开发环境:windows10
络达的SDK中有默认的参考工程,其中包含默认的按钮的事件定义。这些定义是基于官方的评估板进行设计的。通常用户在开发自己的产品时,都是需要对其进行修改和定制。UI 定义的源码文件的路径如下(以EVB为例):
bta_sdk\mcu\project\ab1565_ab1568_evk\apps\headset_ref_design\src\boards\ab1565_evb\customerized_key_config.c
对于TWS工程,还有左右两侧独立定义的区别。对于headset来说,只有单侧的按钮。笔者在此以Headset类型的工程为例来进行说明。
对于headset,在上面提到的源码文件中,用到的定义有:
temp_key_short_click_configs[] ------ 定义按钮单击的事件
temp_key_double_click_configs[] --- 定义按钮双击的事件
temp_key_triple_click_configs[] ----- 定义三击的事件(正常情况下不用该定义,否则UI会太复杂)
temp_key_long_press1_configs[] --- 定义1类长按事件;
temp_key_long_press2_configs[] ---定义2类长按事件;
temp_key_long_press3_configs[] --- 定义3类长按事件;
上面提到长按的类型有三种,这三种长按可以对应于不同的长按时长,默认的时长定义在工程下面文件中:
bta_sdk\mcu\project\ab1565_ab1568_evk\apps\headset_ref_design\inc\boards\ab1565_evb\airo_key_config.h
如下代码所示,其中时间单位为ms:
/*the default time,uint:ms*/
#define default_t_p 300 //the multiple click press time
#define default_t_r 200 //the multiple click release time for waiting next click
#define default_t_end 300 //the silence time when only support someone click
#define default_t_repeat 200 //the repeat time inlcude slong repeat and long repeat
#define default_t_l_p1 500 //the longpress 1 time , long1 = default_t_l_p1
#define default_t_l_p2 1000 //the longpress 1 -> longpress 2 time, long2 = default_t_l_p1 + default_t_l_p2
#define default_t_l_p3 1500 //the longpress 2 -> longpress 3 time, long3 = default_t_l_p1 + default_t_l_p2 + default_t_l_p3
#define default_t_slong 500 //the slong time
当然,时间也可以通过用ATK配置工具来调整,可以参见笔者如下连接的另一篇文章,在此不在重复:

本文详细介绍了如何在络达AB1565M SDK V2.11.0的Headset项目中,定制按键事件,如单击、双击、长按,以及新增ANC增益控制功能。涉及关键代码位置和事件处理器的配置,适合开发者进行个性化UI设计。
最低0.47元/天 解锁文章
4212

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



