Arm-Linux 之 tslib

 

1. tslib是什么

tslib是一个开源的触摸屏支持库,handhelds.org上开发的,作者是Russul King,Douglas LowderChris 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.31.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的配置

tslibconfig信息首先从系统的环境变量读取,从环境变量读取的参数有下面一些

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.confbuffer只有512个字节,超过512字节的ts.conf可能会引起不可预知的错误,所以建议选定你所需要加载的module_raw模块后,删除所有不需要的行。一个完整tslib 1.4ts.conf文件如下:

module_raw input
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear

第一行告诉tsliblinux的输入设备读取数据,需要用到的模块,这里指定的模块为input,具体需要用到哪个模块,需要参考其他数据;第二行的pthres Tslib 提供的触摸屏灵敏度门槛插件;第三行指定的模块variance Tslib 提供的触摸屏滤波算法插件;第四行的dejitter Tslib 提供的触摸屏去噪算法插件;第五行linear Tslib 提供的触摸屏坐标变换插件。这些需要加载的模块从TSLIB_PLUGINDIR指定的目录加载。

5. Tslib的测试

编译和配置完成后,将相关文件复制到arm的运行环境下,配置好后,运行ts_calibrate进行校正,如果能够正常校正,恭喜你,你可以做其他事情了,如果不能,查查什么地方配置错了吧。

 

http://repository.maemo.org/pool/maemo/ossw/source/t/tscalib/
http://repository.maemo.org/pool/maemo/ossw/source/t/tslib/

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值