以XXXX光机上,以上下左右4个键为例:

1.创建头文件

在kernel/mstart/mstar/ir/目录下面新建一个IR_LEADER.h,直接复制IR_MSTAR_DTV.h里面的内容
a. 修改头码

其中头码是指的客户码807F

b.修改key code

IRKEY_UP                = 0x52
IRKEY_DOWN              = 0x13
IRKEY_LEFT              = 0x06
IRKEY_RIGHT             = 0x1A
//将源文件里面的几个码值修改为客户提供的
IRKEY_UP                = 0x05
IRKEY_DOWN              = 0x1B
IRKEY_LEFT              = 0x07
IRKEY_RIGHT             = 0x09

修改的时候,可能会遇到0x05这个键值被其它键给占用了,有2种解决方法:
i)将占用0x05的键给屏蔽
ii)将占用0x05的键和IRKEY_UP对换

IRKEY_PAGE_DOWN         = 0x05
IRKEY_UP                = 0x52
//对换2个键的key code
IRKEY_PAGE_DOWN         = 0x52
IRKEY_UP                = 0x05

方法ii比较麻烦,但是比较稳妥,保证了定义的所有键都在,虽然很多键都没有用上

2.修改key映射

在kernel/3.1.10/drivers/media/rc/keymaps/目录下面新建一个rc-leader-tv.c,直接复制rc-mstar-tv.c里面的内容。然后修改文件

{ 0x0013, KEY_DOWN },
{ 0x0006, KEY_LEFT },
{ 0x001A, KEY_RIGHT },
{ 0x000F, KEY_ENTER },

修改为

{ 0x0005, KEY_UP },
{ 0x001B, KEY_DOWN },
{ 0x0007, KEY_LEFT },
{ 0x0009, KEY_RIGHT },

这一步和修改IR_LEADER.h一样,会遇到键值被其它按键占用的情况,对换键值修改

注意:
rc-mstar-tv.c和IR_MSTAR_DTV.h里面的keycode是一样对应的,里面可能有些键的名称不一样,修改的时候可能会遇到这种问题,记住相同的keycode就是同一个键。

//在rc-mstar-tv.c文件里面
{ 0x0004, KEY_KP1 },        // TV_INPUT
//在IR_MSTAR.h文件里面
IRKEY_INPUT_SOURCE      = 0x04

这2个按键keycode是一样的,即这2个名称不一样的键是同一个按键

3.添加新加的遥控器定义

i)在kernel/mstar/arm-boards/madison/board/Board.h文件里面添加定义

# define IR_TYPE_LEADER      29

说明:
在这个文件前面可以看到

#define IR_TYPE_TOSHIBA             25
#define IR_TYPE_CHANGHONG           26

类似的定义,直接在后面添加类似的定义即可

ii)在kernel/mstar/arm-boards/madison/board/BD_GENERIC.h修改

#define IR_TYPE_SEL IR_TYPE_LEADER

IR_TYPE_SEL这个值的定义涉及到编译的时候会引用哪些头文件

4.将定义的文件添加到编译中去

i)在kernel/3.1.10/drivers/media/rc/keymaps/Makefile里面添加编译生成的文件

obj-$(CONFIG_RC_MAP) += rc-mstar-tv.o \rc-changhong-tv.o \rc-haier-tv.o \rc-hisense-tv.o \rc-konka-tv.o \rc-skyworth-tv.o \rc-tcl-tv.o \rc-leader-tv.o

注意:rc-leader-tv.o文件名与之前定义rc-leader-tv.c是一致的


ii)在kernel/mstar/mstar/ir/mdrv_ir.c文件修改
可以看到类似的定义

#elif (IR_TYPE_SEL == IR_TYPE_KONKA)
#include "IR_KONKA.h"
#elif (defined(IR_TYPE_SKYWORTH) && IR_TYPE_SEL == IR_TYPE_SKYWORTH)
#include "IR_SKYWORTH.h"

将下面这一段代码放在后面就可以了

#elif (defined(IR_TYPE_LEADER) && IR_TYPE_SEL == IR_TYPE_LEADER)
#include "IR_LEADER.h"

//添加如下代码,因为在BD_GENERIC.h里面定义了IR_TYPE_SEL,所以在编译的时候会把IR_LEADER.h给编译进去

在这个文件里面,还有6处需要修改,类似
IR_TYPE_SEL == IR_TYPE_HISENSE || IR_TYPE_SEL == IR_TYPE_MSTAR_DTV || IR_TYPE_SEL == IR_TYPE_CHANGHONG
都在最后加上|| IR_TYPE_SEL == IR_TYPE_LEADER

5)编译kernel,替换ko
a.编译生成需要用到的ko文件是mdrv-ir.ko和rc-leader-tv.ko,将rc-leader-tv.ko修改为rc-keymap-tv.ko
b.替换system/lib/modules/里面对应文件

在串口下面执行

su
getevent

看到输出的值和给出的定义是否是一样,如果是一样的,则kernel里面配置的按键是正确的。如果Android层响应有问题,则是Vendor_3697_Product_001.kl里面配置有问题,没有把Android和Kernel对应上

4.kernel里面定义按键与KeyEvent里面定义的keycode对应关系

相关文件有:

kernel/3.1.10/drivers/media/rc/keymaps/rc-mstar-tv.c
kernel/3.1.10/include/linux/input.h
kitkat/frameworks/native/include/input/KeycodeLabels.h
kitkat/device/mstar/mango/preinstall/keylayout/Vendor_3697_Product_001.kl

对应文件关系

其中,
1)input.h里面定义的key和rc-mstart-tv.c是相对应的,如KEY_UP对KEY_UP
2)KeycodeLabels.h 里面定义的keycode和KeyEvent.java里面定义的是一致的
3)Vendor_3697_Product_0001.kl将kernel里面定义的按键和Android层定义相关联起来

以KEY_UP为例说明,可能有偏差,大概就这个意思,按上键
rc-mstart-tv.c —> input.h —>Vendor_3697_Product_0001.kl—>KeycodeLabels.h —>KeyEvent.java

Mstar 光机遥控器适配相关推荐

  1. [笔记分享] [遥控器]Android红外及蓝牙遥控器适配流程

    在海思.Amlogic.Mstar平台上适配蓝牙或者红外遥控器,可以按照以下的步骤进行排查和修改. 1.前置工作 1.1 getevent -l 无论是蓝牙遥控器还是红外遥控器,都需要确定其使用的kl ...

  2. 视频|结构光3D相机光机核心技术及3D成像性能分析

    在公众号「3D视觉工坊」后台,回复「光机」,即可获得课件. 课程大纲: 1.光机照明系统 2.光机成像系统 3.光机技术指标及光机选型 4.3D成像性能分析 结构光3D相机光机核心技术及3D成像性能分 ...

  3. 直播回顾|结构光3D相机光机核心技术及3D成像性能分析

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 大家好,本公众号现已开启线上视频公开课,主讲人通过B站直播间(bilibili号:3D视觉工坊:htt ...

  4. 突破性进展!上海光机所成果登上《Nature》封面!

    来源:中国科学院上海光学精密机械研究所 中国科学院上海光学精密机械研究所强场激光物理国家重点实验室,利用自行研制的具有国际领先综合性能的超强超短激光装置,在基于激光加速器的小型化自由电子激光研究方面取 ...

  5. 安检x光机原理计算机实现,安检x光机成像原理介绍

    安检x光机是我们都很熟悉的一种安检设备,但很少有人去了解安检x光机成像原理.本文将为大家介绍安检x光机成像原理. 安检x光机成像原理 安检x光机主要由X光管和X光机电源以及控制电路等组成,而X光管又由 ...

  6. 超大规模集成电路先进光刻理论与应用_中科院上海光机所光刻机投影物镜热效应模型研究取得进展...

    光刻机是集成电路制造的核心装备,其作用是将承载集成电路版图信息的掩模图形转移至硅片面的光刻胶内. 光刻机工作过程中,照明系统输出的光照射到掩模上,未被阻挡的光携带掩模图形信息,经投影物镜汇聚后形成掩模 ...

  7. 中国数字牙科X光机市场趋势报告、技术动态创新及市场预测

    数字牙科X光机市场的企业竞争态势 该报告涉及的主要国际市场参与者有Air Techniques.Allengers Medical Systems.ARDET Dental & Medical ...

  8. 【调剂】2020年中科院上海光机所接收报考硕士研究生调剂生的通知

    点击文末的阅读原文或者公众号界面左下角的调剂信息或者公众号回复"调剂"是计算机/软件等专业的所有调剂信息集合,会一直更新的. 2020年上海光机所拟接收本所和国科大杭州高等研究院电 ...

  9. 安检x光机原理计算机实现,安检X光机组成及工作原理(图文)

    安检X光机组成及工作原理40k安检之家 x光机主要由X光管和X光机电源以及控制电路等组成,而X光管又由阴极灯丝(Cathod)和阳极靶(Anode)以及真空玻璃管组成,X光机电源又可分为高压电源和灯丝 ...

  10. android遥控器管理,Android 遥控器适配

    在针对会议平板或大型显示设备(Android系统)中,大部分情况下需要通过鼠标.键盘或者遥控器来控制显示界面,以弥补因设备尺寸等因素导致的无法完全触摸整个设备屏幕的缺陷.因此,以上情况下的解决方案之一 ...

最新文章

  1. 利用JS使用POST方式提交请求的方法
  2. SuMa++: 基于激光雷达的高效语义SLAM
  3. #1045 - Access denied for user 'root'@'localhost' (using password: NO)
  4. markdown编辑器语法——背景色
  5. POJ 2104 K-th Number 划分树
  6. arm云教室服务器_成都凌点科技告诉你ARM集群服务器适合的应用场景有哪些
  7. 编译乱序(Compiler Reordering)
  8. ALEIDoc EDI(1)--OverView
  9. 怎样清除手机中的html文件夹,怎么彻底清除手机APP卸载后的残留文件夹 能删与不能删文件名...
  10. 存储过程C语言与PL/pgSQL实现的效率对比
  11. python 三维数组_NumPy处理图像不香吗?我用Python把秋日里最美的景色做成了这种效果~...
  12. 【photoshop Action Manager】动作管理器- 获取预设管理器信息
  13. 基于javaweb+jsp的在线购书商城系统(java+jsp+mysql+servlert+ajax)
  14. Android 仿微信二维码名片制作,生成二维码,扫码生成名片表单信息
  15. elastic mapping not_analyzed 简单理解 + analysis-ik分词器安装
  16. 批处理为win7桌面添加计算机图标,WIN7桌面显示IE图标批处理
  17. 心理压力测试脸型软件,脸型测试app
  18. 直播源码开发,css预加载旋转动画 与 流光字体
  19. linux下分区ntfs,简易教程:Linux下NTFS分区的写操作
  20. html自动请求favicon,浏览器默认请求的favicon.ico文件,可能带来的问题

热门文章

  1. 渗透之——SQLMap参数说明
  2. 软件工程毕业设计课题(19)基于JAVA毕业设计JAVA外卖点餐系统毕设作品项目
  3. Android CHM文件阅读器
  4. CMOS逻辑门电路的重要技术参数
  5. apple tv 开发_如何将蓝牙耳机连接到Apple TV
  6. 根据身份证号匹配对应的城市编码
  7. js实现逐行打字,逐段打字效果(最全)
  8. C语言中getchar
  9. 《图形编程技术学习》(三十五)Phong明暗处理
  10. 网络安全之暴力破解win7密码