当前位置: 首页 > wzjs >正文

那间公司做网站好网站怎么办

那间公司做网站好,网站怎么办,北京seo经理,md5加密网站红外 本章节旨在让用户自定义红外遥控功能,需要有板载红外接收的板卡。 12.1. 获取红外遥控键值 由于不同遥控器厂家定义的按键键值不一样,所以配置不通用,需要获取实际按键对应的键值。 1 2 3 4 5 6 #设置输出等级 echo 7 4 1 7> /pr…

红外

本章节旨在让用户自定义红外遥控功能,需要有板载红外接收的板卡。

12.1. 获取红外遥控键值

由于不同遥控器厂家定义的按键键值不一样,所以配置不通用,需要获取实际按键对应的键值。

1
2
3
4
5
6
#设置输出等级
echo '7 4 1 7'> /proc/sys/kernel/printk
#开启打印
echo 1 > /sys/module/rockchip_pwm_remotectl/parameters/code_print#此时按下按键串口终端就会有打印USERCODE和键值

提示

如果是ssh或者桌面终端不会直接打印信息到终端,需要执行 dmesg 命令进行查看

以野火红外遥控器为例:

遥控器资料链接: 野火【红外遥控_1838】模块

../../_images/telecontroller_0.jpg


对着板卡按下按键,每按下一个按键就会打印USERCODE和键值到串口终端。

../../_images/telecontroller_1.jpg

记录USERCODE值和按键对应的RMC_GETDATA值,后续需要修改键值对应的事件。

12.2. 修改设备树红外按键事件

需要修改内核源码板卡对应的设备树,如果不确定设备树是哪个的,可以执行 ls -l /boot 看 rk-kernel.dtb软连接到哪个dtb,改对应的dts即可。

以鲁班猫1的dts为例:

../../_images/telecontroller_2.jpg

找到红外对应的pwm ir节点,鲁班猫1对应的是pwm3,修改ir_key_lubancat部分

  • 将实际的USERCODE值改到 rockchip,usercode = <0xff00>;

  • 将键值和需要配置事件改到rockchip,key_table表里面。

对应的事件可以从 内核源码/include/dt-bindings/input/linux-event-codes.h 中取。linux-event-codes.h文件定义了输入事件的类型和代码,用于描述和标识各种输入设备(如键盘、鼠标、触摸屏等)生成的事件。

例如,遥控器上面的电源按键需要配置为板卡的电源开关机键,那么可以从linux-event-codes.h找到的事件KEY_POWER。

例如,遥控器上面的按键1要对应键盘上的1,那么可以从linux-event-codes.h找到的事件KEY_1。

依次从linux-event-codes.h中找到按键对应的事件后,将按键值和实际一一对应,修改得到以下内容:

 123456789
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
     ir_key_lubancat{rockchip,usercode = <0xff00>;rockchip,key_table =<0xba   KEY_POWER>,   //电源按键<0xb8   KEY_MENU>,     //菜单按键<0xbc   KEY_BACK>,      //返回按键<0xbb   KEY_HOME>,      //home键按键<0xea   KEY_PLAY>,      //播放按键<0xbf   KEY_VOLUMEUP>,  //音量加按键<0xe6   KEY_VOLUMEDOWN>,   //音量键按键<0xf6   KEY_FASTFORWARD>,  //快进按键<0xf8   KEY_FASTREVERSE>,  //快退按键<0xf2   KEY_BACKSPACE>,    //BaskSpace按键<0xf3   KEY_1>,            //按键1<0xe7   KEY_2>,<0xa1   KEY_3>,<0xf7   KEY_4>,<0xe3   KEY_5>,<0xa5   KEY_6>,<0xbd   KEY_7>,<0xad   KEY_8>,<0xb5   KEY_9>,<0xe9   KEY_0>;            //按键0};

注意

按键对应的事件是自定义的,事件可根据实际需求确定

12.3. 修改设备树事件头文件

默认使用了rk定义的事件头文件,该文件不全面,使用内核通用的事件头文件linux-event-codes.h,如果不注释rk的头文件会报重复定义的警告。

1
2
//#include <dt-bindings/input/rk-input.h>
#include <dt-bindings/input/linux-event-codes.h>

../../_images/telecontroller_3.jpg

12.4. 编译并替换设备树

参考驱动篇: 编译设备树章节

12.5. 测试

编译并替换设备树后,可进行测试,按下电源按键就会弹出关机窗口,打开桌面终端,按下按键1、2等数字按键,命令行也会同步输入相应数字,与键盘无异。

../../_images/telecontroller_4.jpg

因为驱动使用的是输入子系统,可以检测输入事件的方法检测按键事件。

1
2
#确认红外对应的事件
ls /dev/input/by-path/ -l

../../_images/telecontroller_5.jpg

找到pwm-event对应的事件就是红外的事件。

可以通过以下程序监测输入事件。

 123456789
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <linux/input.h>int main(int argc, char *argv[])
{struct input_event in_ev = {0};int fd = -1;int pulse_count=0;/* 校验传参 */if (2 != argc) {fprintf(stderr, "usage: %s <input-dev>\n", argv[0]);exit(-1);}/* 打开文件 */if (0 > (fd = open(argv[1], O_RDONLY))) {perror("open error");exit(-1);}for ( ; ; ) {/* 循环读取数据 */if (sizeof(struct input_event) !=read(fd, &in_ev, sizeof(struct input_event))) {perror("read error");exit(-1);}printf("type:%d code:%d value:%d\n",in_ev.type, in_ev.code, in_ev.value);}
}

创建buttons.c并将以上内容添加buttons.c,编译并运行

1
2
3
4
5
#编译
gcc buttons.c -o buttons#运行,需要指定实际的pwm-event
sudo ./buttons /dev/input/event0

以下是按下按键1的情况,对应事件KEY_1。

../../_images/telecontroller_6.jpg

可见,打印的code值为2,对应linux-event-codes.h中的 “#define KEY_1 2”,也即可以通过code值区分事件,value可确定按键是否按下。


文章转载自:

http://nZkyZp8K.sbjbs.cn
http://DCvBvR5d.sbjbs.cn
http://fWPeq9dQ.sbjbs.cn
http://XiLjVVkV.sbjbs.cn
http://x7JH5xQD.sbjbs.cn
http://R0ooNwWK.sbjbs.cn
http://f8J6TuFj.sbjbs.cn
http://hg77RTjA.sbjbs.cn
http://CXwgxmkh.sbjbs.cn
http://EeCCQfiL.sbjbs.cn
http://npxtgSs5.sbjbs.cn
http://627SocEh.sbjbs.cn
http://SwbGsS6v.sbjbs.cn
http://4RYhGe5L.sbjbs.cn
http://Sd4KCIWn.sbjbs.cn
http://VMu81klx.sbjbs.cn
http://cbg0cE3w.sbjbs.cn
http://Bcj9Tpxs.sbjbs.cn
http://mxE3rXAR.sbjbs.cn
http://aHb5bkZw.sbjbs.cn
http://erSKT6qn.sbjbs.cn
http://QzUgcUcB.sbjbs.cn
http://0BnRYoJe.sbjbs.cn
http://FvF6xlkJ.sbjbs.cn
http://xfflCbxl.sbjbs.cn
http://HRxoijXO.sbjbs.cn
http://jpVYij6n.sbjbs.cn
http://Ib3ZAiPO.sbjbs.cn
http://CcFL8svh.sbjbs.cn
http://LI9bOYnA.sbjbs.cn
http://www.dtcms.com/wzjs/674461.html

相关文章:

  • 网络科技公司网站建设海拉尔网站设计
  • 上海哪学网站建设优化呼叫中心系统源码
  • c2c平台网站建设整站优化seo平台
  • 企业网站建设与营运计划书龙岩天宫山有开放吗
  • 潍坊做网站的公司企点官网
  • 网站怎么获得流量学网络推广培训
  • 游戏网站免费入口襄阳专业网站建设
  • 网站搭建兼职wordpress编辑模板
  • 网站中搜索栏怎么做的南京网站建设润洽
  • 企业门户网站建设方案及报价东莞做网站乐云seo
  • 建网站推广效果怎么样百度网做网站吗
  • 建设网站的工具福田网站建设结业论文
  • 江门专用网站建设网站目录结构模板
  • 网站开发qq群网页传奇世界翅膀升级
  • 长沙长沙h5网站建设做网站要买多少服务器空间
  • 制作企业网站与app有什么不同WordPress完全删除
  • php 微信 网站开发微信公众号做微网站
  • 韶关市网站建设公司建设网站元素搜索引擎
  • 网站建设公司在哪里宣传百度seo公司哪家好一点
  • 桃园街网站建设网站建设实训 考核要求
  • wordpress更改后台长沙网站优化外包公司
  • 电子商务网站建设的目标是开发公司项目管理制度
  • 网站建设发布教程手机平板购物网站的设计背景
  • 广西建设职业技术学院教育网站常州平台网站建设
  • 网站开发慕枫做设计挣钱的网站
  • 一个网站备案多个域名吗深圳市建设设计院网站
  • 哪些网站专门做康复科免费的破解版wordpress主题
  • 网站 营销策略台州网站制作开发
  • 济南学生网站建设求职织梦绿色企业网站模板
  • 江苏省建设工程协会网站手机版网站开发公司