免费注册 查看新帖 |

Chinaunix

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

[C] 用C语言写Touchscreen程序的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-31 08:53 |只看该作者 |倒序浏览
小弟的linux是用kernel 2.6.23.1加上busybox组合而成的。     
最近想用C语言写有关Touchscreen的程序,但却不知从何着手。  
目前只知道在make menuconfig时要选Elo serial touchscreens。
但完全不知道该怎么写程序来读取目前触控位置X,Y座标,      
及如何用程序判断现在是按下,还是没按下。                  
麻烦前辈们指点,感激不尽^_^

论坛徽章:
0
2 [报告]
发表于 2007-10-31 09:08 |只看该作者
这个应该由触摸屏驱动解决吧?不是很清楚,以前做过ucos+minigui的触摸屏界面程序,不过不用关注底层的东西。

论坛徽章:
0
3 [报告]
发表于 2007-10-31 10:51 |只看该作者
谢谢cugb_cat的回覆。
因为小弟的系统并没有X window。
所以必需用程序读取X,Y座标及是否按下触控。

论坛徽章:
0
4 [报告]
发表于 2007-11-01 20:07 |只看该作者
如果你触摸触摸屏的话,触摸屏会产生中断的
如何获得触摸屏的位置这个要看屏的资料吧,应该介绍计算的公式。
以上所述都来自于我一年前的实验课印象,误导嫌疑极大

论坛徽章:
0
5 [报告]
发表于 2007-11-01 23:38 |只看该作者
现在触摸屏驱动一般会采用input子系统的event机制实现
可以查查event机制编程

这个跟驱动实现密切相关
比如我们以前的触摸屏驱动会直接返回一个结构体,里面就包含X,Y坐标信息
直接open,read就返回那个结构体了

论坛徽章:
0
6 [报告]
发表于 2007-11-02 11:53 |只看该作者
经过大家热情指导方向后,                                                               
小弟在网络上找到一款eGalax TouchScreen。                                               
它的控制方法就如同augustusqing前辈所说的。                                             
执行触摸屏驱动后会产生/dev/tkdat0这个档案。                                            
然后open()该档案,read()就可以读到X,Y座标及是否按下触摸屏资料。                        
                                                                                       
但小弟后来与客户他们确认,触摸屏是用Elo touch及3M MicroTouch。                        
小弟上3M网站发现他们只提供X Window的驱动。                                             
而小弟的系统是kernel+BusyBox组成的,并没有X Window。                                   
于是就想到make menuconfig中的有                                                        
Elo serial touchscreens及MicroTouch serial touchscreens选项。                          
但一直不知该如何利用C语言程序来读取这两个厂牌TouchScreen的X,Y座标及是否按下触摸屏资料?
所以只好再次请求前辈们相助了。万分感激。

论坛徽章:
0
7 [报告]
发表于 2007-11-02 15:27 |只看该作者
于是就想到make menuconfig中的有                                                        
Elo serial touchscreens及MicroTouch serial touchscreens选项。


能找到这两个选项代表的驱动的源码吗?
浏览一下源码,注意头文件中定义的结构体,看驱动采用的是何种机制,
你说的采用/dev/tkdat0这种的,应该就是一个普通的字符设备了,最简单,open后read那个包含了X,Y等信息的结构体
如果驱动采用的是input子系统,设备文件一般会是/dev/input/event0或/dev/input/ts0,你就得查找一下如何使用event机制编程了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP