免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2156 | 回复: 5
打印 上一主题 下一主题

请问如何在驱动层修改使一个设备对应多个/dev/eventX~ [复制链接]

论坛徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16赛季CBA联赛之江苏
日期:2017-11-27 11:42:3515-16赛季CBA联赛之八一
日期:2017-04-12 14:26:2815-16赛季CBA联赛之吉林
日期:2016-08-20 10:43:1215-16赛季CBA联赛之广夏
日期:2016-06-23 09:53:58程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-09 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-25 16:40:3515-16赛季CBA联赛之广夏
日期:2015-12-22 09:39:36程序设计版块每日发帖之星
日期:2015-08-24 06:20:002015亚冠之德黑兰石油
日期:2015-08-07 09:57:302015年辞旧岁徽章
日期:2015-03-03 16:54:15
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-22 10:04 |只看该作者 |倒序浏览
本帖最后由 lxyscls 于 2010-03-22 10:05 编辑

大致是这么个情况——一个多点触控的触摸屏~该触摸屏从硬件上面可以提供两个点的定位数据(就是说可以在屏幕上同时定位两个点)~

想要修改驱动使其对应两个/dev/eventX,一个点的数据对应一个event~

linux里面在底层驱动上面会去注册input_dev,但是我不是很清楚事件驱动这一层还会做什么工作进行映射~并且个人不想去动eventdev这一层的代码,因为这样很可能使其他的设备工作异常~

请问有哪位大侠做过类似的工作?

===================贴个图~

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
2 [报告]
发表于 2010-03-22 11:01 |只看该作者
回复 1# lxyscls


    同时点击两个点,不知道这个会不会涉及到多个中断。
另外一点,这个可能主要跟你在处理应用点识别的问题上有很大关系。

论坛徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16赛季CBA联赛之江苏
日期:2017-11-27 11:42:3515-16赛季CBA联赛之八一
日期:2017-04-12 14:26:2815-16赛季CBA联赛之吉林
日期:2016-08-20 10:43:1215-16赛季CBA联赛之广夏
日期:2016-06-23 09:53:58程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-09 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-25 16:40:3515-16赛季CBA联赛之广夏
日期:2015-12-22 09:39:36程序设计版块每日发帖之星
日期:2015-08-24 06:20:002015亚冠之德黑兰石油
日期:2015-08-07 09:57:302015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2010-03-22 11:05 |只看该作者
回复  lxyscls


    同时点击两个点,不知道这个会不会涉及到多个中断。
另外一点,这个可能主要跟你 ...
dreamice 发表于 2010-03-22 11:01



    硬件上面我只在kernel中加入输出代码——发现硬件上面是能够输出两个点的位置信息的~

   该触摸屏的driver是厂家给的,并且是hardcode在usbtouchscreen.c这个文件当中的,而不是单独列出一个驱动文件~

论坛徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16赛季CBA联赛之江苏
日期:2017-11-27 11:42:3515-16赛季CBA联赛之八一
日期:2017-04-12 14:26:2815-16赛季CBA联赛之吉林
日期:2016-08-20 10:43:1215-16赛季CBA联赛之广夏
日期:2016-06-23 09:53:58程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-09 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-25 16:40:3515-16赛季CBA联赛之广夏
日期:2015-12-22 09:39:36程序设计版块每日发帖之星
日期:2015-08-24 06:20:002015亚冠之德黑兰石油
日期:2015-08-07 09:57:302015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2010-03-22 11:08 |只看该作者
也就是说最底层的读取触摸屏内部控制单元(寄存器)信息的代码是没有什么问题的~

关键是在于如何将这两个点的信息剥离呈现上来成为两个事件信息~

在/sys/devices下面该触摸屏呈现的是两个设备(在dmesg里面也有所反映),但是在/dev/input/eventX下面只呈现一个event~

论坛徽章:
0
5 [报告]
发表于 2010-03-22 18:58 |只看该作者
我觉得主要是个点的编号问题~
是以第一次按下的点为event1 还是以第二次按下的点为event1
如果能明确这个关系的话~
我可以帮LZ弄弄~ 付费~(羞~  

论坛徽章:
14
水瓶座
日期:2014-06-10 09:51:0215-16赛季CBA联赛之江苏
日期:2017-11-27 11:42:3515-16赛季CBA联赛之八一
日期:2017-04-12 14:26:2815-16赛季CBA联赛之吉林
日期:2016-08-20 10:43:1215-16赛季CBA联赛之广夏
日期:2016-06-23 09:53:58程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-09 06:20:0015-16赛季CBA联赛之上海
日期:2015-12-25 16:40:3515-16赛季CBA联赛之广夏
日期:2015-12-22 09:39:36程序设计版块每日发帖之星
日期:2015-08-24 06:20:002015亚冠之德黑兰石油
日期:2015-08-07 09:57:302015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2010-03-23 16:41 |只看该作者
我现在简单得在驱动里面多register一个input_dev(和原来那个等同),在/dev/input/里面很自然的多出一个event,cat该event发现反应正常~

但是xorg无法辨认——也就是说eventX到xinput list不能一一对应——虽然存在两个event,但是在xinput list中无法出现两个触摸屏的设备~

现在最新的X11R7.5支持multi point,也就是说可以多鼠标同时操作~我大致的想法也是如此——触摸屏的两个点最终对应两个cursor~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP