概述
使用自己的directfb,总是认不到正确的touchscreen,虽然dfb已经认出来/dev/input/event0为按键设备,/dev/input/event1为touchscreen。但是这个/dev/input/event2是没有校准过的数据,df_window运行的时候总是不正确,因为其获取到的触摸坐标总是在屏幕的最右边。以x值为例,我的这个触摸屏最右边的值大概为180,越是往左,数据值越大。结果导致从最右边在向左移动触摸点的时候,df_widow会被向右拖动,在触摸点向左走到大概屏幕中间的时候,x的值已经超过了240,故,df_window就再也拖不动了。如果/dev/input/event1传出来的是校准过的值就好了。
在directfbrc中设置了h3600的设备也不行!可能是Directfb没有认这个设备。但是单独使用ts_lib读取/dev/input/ts0,运行ts_test是可以正常运行的。
没有办法,只能把Mizi启动起来后,使用lsof | grep event看了一下,原来Mizi在运行的时候只使用了以下3个设备: 1、/dev/input/event0 #keypad
2、/dev/input/ts0 # 校准过的ts
3、/dev/input/ts_raw0 看来Mizi并没有使用我们的/dev/input/event1啊。
如果将上报给/dev/input/event1的数据修改为校准过的数据,那么我自己编译的dfb也可以正常使用触摸屏了。而对这个的修改,也不会影响 Mizi的运行。
遗留问题:
1、dfb不能使用tslib出来的数据,其实我现在也并不知道tslib读取/dev/inut/ts_raw0数据后,校准过的数据是怎么传递给其他应用程序的。
2、dfb不能直接使用h3600设备,如果配置h3600=/dev/input/ts0能生效的话,dfb也能正常使用触摸了。
3、上报给event1的数据是ts_raw0中的数据,修改为ts0中的数据肯定就没有问题了。
最后
以上就是感性白羊为你收集整理的directfb不能正常使用手机触摸屏的分析的全部内容,希望文章能够帮你解决directfb不能正常使用手机触摸屏的分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复