我是靠谱客的博主 感性白羊,最近开发中收集的这篇文章主要介绍directfb不能正常使用手机触摸屏的分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用自己的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不能正常使用手机触摸屏的分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部