X Window研究笔记(15)
X Window研究笔记(15)
转载时请注明出处和作者联系方式
作者联系方式:李先静 <xianjimli at hotmail dot com>
15.X Window支持触摸屏
X Window虽然可以直接支持触摸屏设备,但那样要求驱动程序做更多的工作,比如去抖,滤波和校准等等。这些功能通常是与设备无关的,没有必要与驱动程序耦合起来。tslib把这一部分功能分离出来,行成一个独立的库,这样所有触摸屏设备都可以重用这些代码了。所以通常的做法是X Window基于tslib,tslib再与具体的设备交互。
下载
svn co svn://svn.berlios.de/tslib/trunk/tslib tslib
(以前的pubcvs.arm.linux.org.uk服务器不能下载了)
(以前的pubcvs.arm.linux.org.uk服务器不能下载了)
编译
参考http://blog.csdn.net/absurd/archive/2006/03/31/646446.aspx
环境变量
TSLIB_TSDEVICE 触摸屏设备文件名。
Default (non inputapi): /dev/touchscreen/ucb1x00
Default (inputapi): /dev/input/event0
TSLIB_CALIBFILE 校准的数据文件,可以用ts_calibrate生成。
Default: ${sysconfdir}/pointercal
TSLIB_CONFFILE 主配置文件名。
Default: ${sysconfdir}/ts.conf
TSLIB_PLUGINDIR 插件目录
Default: ${datadir}/plugins
TSLIB_CONSOLEDEVICE 控制台设备文件名
Default: /dev/tty
TSLIB_FBDEVICE Framebuffer 设备名
Default: /dev/fb0
以上这些环境变量可以根据需要进行修改。
配置文件Default (non inputapi): /dev/touchscreen/ucb1x00
Default (inputapi): /dev/input/event0
TSLIB_CALIBFILE 校准的数据文件,可以用ts_calibrate生成。
Default: ${sysconfdir}/pointercal
TSLIB_CONFFILE 主配置文件名。
Default: ${sysconfdir}/ts.conf
TSLIB_PLUGINDIR 插件目录
Default: ${datadir}/plugins
TSLIB_CONSOLEDEVICE 控制台设备文件名
Default: /dev/tty
TSLIB_FBDEVICE Framebuffer 设备名
Default: /dev/fb0
以上这些环境变量可以根据需要进行修改。
触摸屏的配置文件比较简单,但有些参数比较专业,不是很容易理解。幸运的是,一般来说并不需要了解它,只要指明输入数据的原始设备即可,要做到这一点,往往只需要把适当的注释放开就行了。下面是一个常见的例子:
实际应用中,一定要了解这些参数和其算法的实现,因为国内很多触摸屏往往质量欠佳,要花不少时间去调试,才能找到一组满意的参数。
# module_raw corgi
# Uncomment if you're using a device with a UCB1200/1300/1400 TS interface
# module_raw ucb1x00
# Uncomment if you're using an HP iPaq h3600 or similar
# module_raw h3600
# Uncomment if you're using a Hitachi Webpad
# module_raw mk712
# Uncomment if you're using an IBM Arctic II
# module_raw arctic2
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
# Uncomment if you're using a device with a UCB1200/1300/1400 TS interface
# module_raw ucb1x00
# Uncomment if you're using an HP iPaq h3600 or similar
# module_raw h3600
# Uncomment if you're using a Hitachi Webpad
# module_raw mk712
# Uncomment if you're using an IBM Arctic II
# module_raw arctic2
module pthres pmin=1
module variance delta=30
module dejitter delta=100
module linear
实际应用中,一定要了解这些参数和其算法的实现,因为国内很多触摸屏往往质量欠佳,要花不少时间去调试,才能找到一组满意的参数。
(待续)