T9632 是mtk 方案的TV芯片,将mstar 原有框架进行了重新设计,很多功能的部署也发生了变化。本片主要分享一下遥控器的配置功能。

下面是遥控器功能部署的几个基本步骤在这里插入图片描述
核心步骤在1, 2 ,就是通过内核的键值(input-event-codes.h)为桥梁将遥控器的码值和Framework 按键事件连接起来。

一. 遥控器码值与键值的映射

首先我们不看遥控器协议,这部分基本是标准的,将遥控器在内核input系统注册为输入设备也是标准的。我们只看按键的配置。

我们看那个ir_config.ini
在这里插入图片描述
Protocols 定义了支持的遥控器协议,有NEC,RC5,RC6,RCMM,KONKA,HAIER,RCA,P7051,TOSHIBA,RC5X,RC6_Mode0
在这里插入图片描述
从上面看定义了三款遥控器,KIR_ChinaMobile,KIR_Cultraview,KIR_SML。接着分别配置三款遥控器当前使用的协议(Protocol),头码(Header),及码值和键值映射表(Keymap)。

下面我们以一款客户的遥控器为例:

在这里插入图片描述
keymap映射表里面,右侧是遥控器按键对应的码值,左边对应的是内核的键值头文件input-event-codes.h,另外内核里面还需要在input_keys_available.h 里面放开这些键值。
在这里插入图片描述

二. 键值与输入事件的映射

这一步主要将eventhub 从/dev/intpu/eventX 获取的键值映射framework 的input event。在Vendor_3697_Product_0001.kl 完成

三. 输入事件和应用层事件的映射

  将InputEventLables.h  中的event 和Keycodes.h ,Attrs.xml,keyevent.java 事件连接起来,应用层就可以直接捕获事件做响应处理了。
  • 总体流程如下:

1、apollo\linux_core\misdk\mi\mi\platform\m7332\linux\board_cfg\ir_config.ini
2、vendor/mediatek/proprietary_tv/open/product/m7322/preinstall/keylayout/Vendor_3697_Product_0001.kl
3、\frameworks\native\include\input\InputEventLabels.h
4、\kernel\fusion\4.19\include\uapi\linux\input-event-codes.h
5、\kernel\fusion\4.9\include\uapi\linux\input-event-codes.h
6、\kernel\fusion\mstar2\drv\ir_mirc\ir_dynamic_config\input_keys_available.h
7、\frameworks\native\include\android\keycodes.h
8、\frameworks\base\core\java\android\view\KeyEvent.java
9、\frameworks\base\core\res\res\values\attrs.xml

T9632 是mtk 方案的TV芯片,将mstar 原有框架进行了重新设计,很多功能的部署也发生了变化。本片主要分享一下遥控器的配置功能。下面是遥控器功能部署的几个基本步骤核心步骤在1, 2 ,就是通过内核的键值(input-event-codes.h)为桥梁将遥控器的码值和Framework 按键事件连接起来。一. 遥控器码值与键值的映射首先我们不看遥控器协议,这部分基本是标准的,将遥控器在内核input系统注册为输入设备也是标准的。我们只看按键的配置。我们看那个ir_config.ini
无TFT屏的驱动的彩屏触控万用遥控器方案   【导读】面对越来越多繁琐遥控器开始变得无所适从,本文主讲低功耗彩屏触控万用遥控器方案。方案优势EFM32自身带有TFT屏驱动可以在没有CPU干预的情况下直接通过RGB接口直接驱动TFT屏,一方面降低了系统的功耗,另一方面则省去了TFT屏的驱动芯片…   随着人们生活水平的提高和科学技术的日新月异,每个家庭的电子设备逐渐地多起来,相应地设备自带的遥控器也逐渐多起来。人们面对着越来越多的繁琐的遥控器开始变得无所适从,希望有一个统一的、简单的遥控器能控制所有的设备。彩屏触控万用遥控器由此应运而生。万用遥控器通过记录其他遥控器的通讯协议,从而复制了其他
1,因本人之前接触的是mstar方案,mstar方案添加wifi模块只需要在wifi.cfg中添加改wifi模块的 PID.VID,然后在load驱动的中添加驱动加载,看了下此套代码中也有这个脚本和配置文件因此照着改了一下 后,调试发现并没有用,新代码中没有用到这一套逻辑 2,接着调试发现打开wifi时并没有去加载驱动?那他的驱动什么时候加载的? 3。查看代码发现其在init.m73... kernel\fusion\4.9\kernel\reboot.c * Reboot system call: for obvious reasons only root may call it, * and even root needs to set up some magic numbers in the registers * so that some mistake won't make this reboot the whole
在 Yocto 中模拟遥控器按键,你可以使用 evtest 工具。evtest 是一个用户空间工具,用于测试输入设备的事件接口。以下是模拟遥控器按键的步骤: 1. 首先,确保你的系统已安装 evtest 工具。如果未安装,你可以使用以下命令进行安装: $ sudo apt-get install evtest 2. 运行以下命令查看可用的输入设备列表: $ sudo evtest 在列表中找到与你的遥控器相关的输入设备。 3. 使用以下命令开始对输入设备进行监视: $ sudo evtest /dev/input/eventX 其中,eventX 是你要监视的输入设备。 4. 在监视模式下,按下遥控器上的按键,并注意记录生成的事件码。 5. 打开一个新的终端窗口,并使用以下命令模拟按键事件: $ sudo evtest --fake-input /dev/input/eventX 然后,输入事件码以模拟相应的按键。 通过以上步骤,你就可以在 Yocto 中模拟遥控器按键了。请注意,这只是一种方法,实际操作中可能会有所不同,具体取决于你的系统和遥控器