络达开发---UI定义+自定义按钮事件

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

平台: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配置工具来调整,可以参见笔者如下连接的另一篇文章,在此不在重复:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值