免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1275 | 回复: 0

Arm-Linux 之 tslib(格式调整) [复制链接]

论坛徽章:
0
发表于 2011-12-20 09:44 |显示全部楼层
1. tslib是什么
    tslib是一个开源的触摸屏支持库,它是handhelds.org上开发的,作者是Russul King,Douglas Lowder和Chris Larson。它给上层的应用程序, 为不同的触摸屏提供了一个统一的接口。它提供诸如滤波、去抖、校准之类的功能。下面是一段英文的介绍,我英文水平有限,怕翻译错了,因此直接附在下面。
Tslib About
Tslib is an abstraction layer for touchscreen panel events, as well as a filter stack for the manipulation of those events. It was created by Russell King, of arm.linux.org.uk. Examples of implemented filters include jitter smoothing and the calibration transform.
Tslib is generally used on embedded devices to provide a common user space interface to touchscreen functionality. It is supported by Kdrive (aka TinyX) and OPIE as well as being used on a number of commercial Linux devices including the Nokia 770.


2. 如何取得tslib源码
     tslib的官方下载地址为一个CVS服务器,下载方法为:
#export CVSROOT=:pserver:cvs@pubcvs.arm.linux.org.uk:/mnt/src/cvsroot
#cvs login
(passwd: anoncvs)
#cvs co tslib
       开始我并不知道这个官方服务器,我在网上找到两个版本:1.3及1.4,还有个叫release 1.0的,我用的就是这个,其实也就是tslib 1.4。我后来看到有文档说了这个官方下载方式后,也曾想连接上看看有没有最新版本,但我没有能够链接上这个服务器,如果你能够链接上去,或者看到其他更新,麻烦转告本人一下。我下载的版本的地址是
http://prdownload.berlios.de/tslib/tslib-1.0.tar.bz2
3. tslib 1.4的编译
#export PREFIX=/usr/armlinux/tslib
#./autogen.sh
#echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
#./configure --host=arm-linux --prefix=$PREFIX --cache-file=arm-linux.cache
#make
#make install

对于PREFIX,可以随便指定其他目录,建议与运行环境一致。
4. tslib 1.4的配置
     tslib的config信息首先从系统的环境变量读取,从环境变量读取的参数有下面一些
TSLIB_TSEVENTTYPE         虽然很多文档提到了这个参数,但我在tslib 1.4的源代码里面没有找到这个参数,这
                                             个参数应该已经没有什么用了
TSLIB_CONSOLEDEVICE     控制台设备文件
TSLIB_FBDEVICE                 framebuffer的文件名
TSLIB_TSDEVICE                 触屏的文件名
TSLIB_CALIBFILE                 触屏校正信息保存文件
TSLIB_CONFFILE                 tslib配置文件
TSLIB_PLUGINDIR                tslib需要加载模块所在的目录
我们可以使用下面的指令设置以上参数
#export TSLIB_CONSOLEDEVICE=none
#export TSLIB_FBDEVICE=/dev/fb0
#export TSLIB_TSDEVICE=/dev/touchscreen/0
#export TSLIB_CALIBFILE=/etc/pointercal
#export TSLIB_CONFFILE=/etc/ts.conf
#export TSLIB_PLUGINDIR=/lib/ts

     tslib的还有一些config信息从TSLIB_CONFFILE所指定的文件给出,一般的这个文件的名字叫ts.conf,它给出的信息主要是指运行时需要加载哪些模块。在源码的etc目录下有个ts.conf文件, 但这个ts.conf文件是无法用的,首先他注释了加载哪个所有的module_raw, 而且他的大小超过了512个字节,因为tslib里读取ts.conf的buffer只有512个字节,超过512字节的ts.conf可能会引起不可预知的错误,所以建议选定你所需要加载的module_raw模块后,删除所有不需要的行。一个完整tslib 1.4的ts.conf文件如下:
module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear

    第一行告诉tslib从linux的输入设备读取数据,需要用到的模块,这里指定的模块为input,具体需要用到哪个模块,需要参考其他数据;第二行的pthres 为Tslib 提供的触摸屏灵敏度门槛插件;第三行指定的模块variance 为Tslib 提供的触摸屏滤波算法插件;第四行的dejitter 为Tslib 提供的触摸屏去噪算法插件;第五行linear 为Tslib 提供的触摸屏坐标变换插件。这些需要加载的模块从TSLIB_PLUGINDIR指定的目录加载。
5. Tslib的测试
    编译和配置完成后,将相关文件复制到arm的运行环境下,配置好后,运行ts_calibrate进行校正,如果能够正常校正,恭喜你,你可以做其他事情了,如果不能,查查什么地方配置错了吧。

    我还看到有什么tscalib,好像也是触屏的库,但我没有兴趣研究了,有兴趣研究的朋友可以试试,下面是别人文档里给出的tscalib和tslib的下载地址,我附下面
http://repository.maemo.org/pool/maemo/ossw/source/t/tscalib/
http://repository.maemo.org/pool/maemo/ossw/source/t/tslib/


由于上次发的时候是直接从word里面copy过来的,发布界面里面格式没有问题,查看时有些格式错乱了,看起来有些困难,可能造成理解上的偏差。我这次先复制的文本编辑器里面,将格式去掉后,在发布界面里在调整成合适的格式。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP