tslib的环境变量、配置文件等进行简要的分析 转

 

1. 环境变量

为了实现Tslib的正确运行,需要对如下的Tslib的环境变量进行配置:

TSLIB_TSDEVICE //触摸屏设备文件名。

Default (no 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 //设备名

Default: /dev/fb0

以上环境变量在实际开发中的实际配置可以根据实际情况决定。

2. 配置文件

除了环境变量以外,Tslib的配置文件ts.conf同样是个十分重要的部分,在ts.conf中配置了需要加载的插件、插件加载顺序以及插件的一些约束参数,这些配置参数对触摸屏的触摸效果具有十分重要的影响。

下面是Tslib 1.4中的ts.conf的参考配置:(tslib 13.3中采用其默认的配置文件即可完成一般的功能,本人在实践时没有对其做任何改变)

# Uncomment if you wish to use the linux input layer event interface

# module_raw input

# Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d

# module_raw collie

# Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860

# 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

其中pthres 为Tslib提供的触摸屏灵敏度门槛插件;variance 为Tslib提供的触摸屏滤波算法插件;dejitter 为Tslib提供的触摸屏去噪算法插件;linear为Tslib提供的触摸屏坐标变换插件。

在Qtopia中,就触摸屏的调试问题主要涉及到以下三个部分:触摸屏驱动、Tslib、QTslibTPanelHandlerPrivate封装。

触摸屏驱动为与硬件直接接触部分,为上层的Tslib提供最原始的设备坐标数据,并可以配置采样间隔、屏幕灵敏度等。采样间隔决定了单位时间内的采 样数量,在其他参数不变的情况下,采样间隔越小意味着单位时间内的采样数量越多,也就意味着采样越逼真、越不容易出现采样信息丢失如输入法书写时丢笔划的 情况,但因为噪声的影响,采样间隔越小同时也意味着显示出来的图形的效果越差。

Tslib为触摸屏驱动和应用层之间的适配层,其从驱动处获得原始的设备坐标数据,通过一系列的去噪、去抖、坐标变换等操作,来去除噪声并将原始的设备坐标转换为相应的屏幕坐标。

在tslib中为应用层提供了2个主要的接口ts_read()和ts_read_raw(),其中ts_read()为正常情况下的借口,ts_read_raw()为校准情况下的接口。

正常情况下,tslib对驱动采样到的设备坐标进行处理的一般过程如下:

raw device --> variance --> dejitter --> linear --> application

module module module

校准情况下,tslib对驱动采样到的数据进行处理的一般过程如下:

raw device--> Calibrate

QTslibTPanelHandlerPrivate为tslib提供了应用层封装,为tslib与应用层的接口部分。

在触摸屏调试过程中,涉及到的参数主要有采样间隔(驱动)、灵敏度(驱动)、去噪算法及约束(tslib)、去抖算法及约束(tslib)、ts门槛值(tslib)。

由于各种相关期间的影响,在不同的硬件平台上,相关参数可能需要调整。以上参数的相互关系为:采样间隔越大,采样点越少,采样越失真,但因为信息量 少,容易出现丢笔划等丢失信息情况,但表现出来的图形效果将会越好;去噪算法跟采样间隔应密切互动,采样间隔越大,去噪约束应越小,反之采样间隔越小,去 噪约束应越大。去抖算法为相对独立的部分,去抖算法越复杂,带来的计算量将会变大,系统负载将会变重,但良好的去抖算法可以更好的去除抖动,在进行图形绘 制时将会得到更好的效果;灵敏度和ts门槛值为触摸屏的灵敏指标,一般不需要进行变动,参考参考值即可。

 

**************************************

这里来谈一谈tslib-1.4,和1.3有一点点不一样,主要是配置文件的差别(此段copy的高手的,放这只是想让我们看得更懂)
一般来说,tsllib-1.4种一个完整的ts.conf配置文件如下所示:
module_raw input
module pthres
module variance delta=30
module dejitter delta=100
module linear


出现这个错误
Couldnt load module input
No raw modules loaded
tsconfig: Success

第一行告诉tslib从linux的输入设备读取数据,需要用到input这个模块,也就是plugin目录下的input.so文件,
所以你的TSLIB_PLUGINDIR一定要配置正确,让tslib能够找到模块文件。
其他参数分别控制触摸点的连续下压、变化宽度、轨迹变化和线性校准。
也是要把其对应的需要的几个库文件复制到/tslib/plugins中

第二行导致"No raw modules loaded."的原因有两个:
注意:一是你的ts.conf中没有指定module_raw,自带的ts.conf的所有module_raw都被注释掉了,
# Uncomment if you wish to use the linux input layer event interface
# module_raw input

# Uncomment if you're using a Sharp Zaurus SL-5500/SL-5000d
# module_raw collie

# Uncomment if you're using a Sharp Zaurus SL-C700/C750/C760/C860
# 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_raw选项,有人就选择了input,去掉了它的注释
得到module_raw input

另一个原因就是你没有正确配置TSLIB_PLUGINDIR,tslib从你指定的目录中没有找到plugin需要的模块文件,
请检查你的路径和文件。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值