电视红外/蓝牙遥控器键值定义和适配

本文详细介绍了红外和蓝牙遥控器的键值适配过程,包括获取遥控器的scancode码、用户码、配置remote和kl文件,以及蓝牙遥控器的HID键码值Usage ID的适配。通过修改hid-input.c、input.h以及kl文件,实现遥控器按键功能的正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

电视遥控器适配和常见问题

遥控器键值适配

一般来说,遥控器分蓝牙遥控器和红外遥控器。红外遥控器是指遥控器通过红外发射器把信号进行发射,接收设备则通过红外接收器进行信号接收;蓝牙遥控器是指遥控器通过蓝牙方式进行交互,遥控器和被连接设备均支持蓝牙则可以进行蓝牙操作。
每个遥控器的每个按键都有独特的物理码,这是遥控器出厂时就已经具备的,而且不同的遥控器厂商也有单独的用户码。我们通过已知的条件,需要在SDK里做出相应的适配和映射。

  • 遥控器红外键值没定义
    1.第一步:要知道这个遥控器的按键对应的scancode码是什么?有两种方式可以知道这个scancode没定义的值是什么。一、使用命令dmesg -c;二、使用echo 8 > /proc/sys/kernel/printk;这两种方式都可以查询到遥控器某个按键没定义的物理码。以下我用音量键减没定义为例。
    通过使用dmesg -c查询如下:
    在这里插入图片描述
    如上图所示,很明显可以看到音量键减没定义的物理码是154,这个是十进制的数值,需要转换为十六进制,转换之后为9A,这个值先保留记住,之后适配时需要用上。

    2.第二步:需要知道遥控器的用户码,每款遥控器都有独特的用户码,就好像每个人都有自己的身份证一样,用户码就是遥控器身份证。使用cat /sys/devices/virtual/remote/amremote/customcode命令进行查看遥控器用户码,在串口执行该命令后,按下遥控器的任意键,再次执行该命令就可以看到你使用这款遥控器的用户码了。

    3.第三步:进行定义。需要定义该用户码相关的remote配置文件,该文件是主要映射物理码和安卓键码的,是联系底层和上层的一个枢纽文件。知道了用户码和物理码即可开始配置remote配置文件,配置内容如下:

    // remote配置文件
    custom_name = test-remote-1
    custom_code = 0xc43b
    release_delay = 80
    key_begin
        0x9a    114   #VOLUME_DOWN
    key_end
    

    此时使用getevent命令,再按压音量键减,则会有相应的输出,如下:
    在这里插入图片描述
    但此时音量键的功能还没能正常使用,需要把remote文件和kl文件关联起来。

    4.第四步:需要知道遥控器对应的kl是哪个,需要知道遥控器的pid和vid是什么?也可以知道目前遥控

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值