准备工作: 1.在InitEarlyUserFeatures()函数下会调用buttonManagerInit(),进行button管理初始化 (1)BUTTON_GDATA这个全局变量非常重要,这里不展开说这个结构体,因为后面就会使用到,在那说明更容易理解,但名字要记住喔! buttonManagerInit()函数前面几句就是开辟了结构体空间,并赋予了theSink.task (2)ButtonsInit()函数 (3)bmInitButtonConfig函数 这个函数有4步操作 第一步获取硬件接口转换列表,保存到BUTTON_GDATA下的button_translation_type_t结构体参数中,看到下面结构体的定义就很容易与ADK configuration tool的Translation Table关联起来了 第二步设置按键短按长按等时间配置,若没有设置防抖时间会设置默认 第三步设置button event 上一篇我们说到ADK configuration tool可以配置总共66个event,这 66个event是分三个保存,每个22个event bmInitInputCheckMasks函数遍历66个event 上面都配置好后,就是在ButtonsMessageHandler()函数监听MESSAGE_PIO_CHANGED和MESSAGE_CHARGER_CHANGED,如果收到了PIO改变就会调用ButtonsCheckDetection()–>ButtonsLevelDetect()等函数来判断哪个按键按下,然后把event发到system去。 来源:https://blog.csdn.net/weixin_43177813/article/details/82826426 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
GMT+8, 2024-5-6 03:02 , Processed in 0.351331 second(s), 32 queries , Gzip On, MemCached On.
Powered by Discuz! X3.5
© 2001-2024 Discuz! Team.