Arm-Linux 之 tslib

转自http://www.directfb.com.cn/viewthread.php?tid=388&extra=page%3D1
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/
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值