打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
tslib移植

TsLib简介:
 在采用触摸屏的移动终端中,触摸屏性能的调试是个重要问题之一,因为电磁噪声的缘故,触摸屏容易存在点击不准确、有抖动等问题。tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。
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 中定义了两个结构体:
struct tsdev {
      int fd;
      struct tslib_module_info *list;
};
struct ts_sample {
      int       x;
      int       y;
      unsigned int      pressure;
      struct timeval tv;
};
struct tsdev 表示的是触摸屏设备,其中,fd 是打开的触摸屏设备的文件描述符,list 是一个链表,在这个链表中依次存放着指向 tslib 的插件的指针。struct ts_sample 用于存放按键消息,x 和 y 表示按键的坐标位置,注意这两个坐标都是以液晶屏幕的坐标系为基准的,pressure 表示的是按键的轻重程度,tv 是一个 struct timeval类型的变量,表示按键发生的时间。在基于 tslib 的程序中,所要用到的数据结构就只有上面这样两个。

Tslib的移植:
 下载源码,我在这里用的是tslib-1.4.tar.gz
1.#cd tslib-1.4
2,对其配置,生成Makefile文件
#./configure --host=arm-linux-gcc --prefix=(自己的安装目录) --enable-debug=no
3.编译并安装 #make & make install
4.如果要运行测试程序还需配置如下参数:
export TSLIB_PLUGINDIR=/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/event1//这个很重要
mkdir /data
touch /data/pointercal
5.如把配置命令写入ts.config,要放在module pthres pmin=1之前
  否则运行测试程序时会出现Segmentation fault错误,各个设置选项前也不能有空格
6.运行ts_calibrate进行校准
7.运行ts_test测试程序。
就这样一切都OK了,接下来的就进入我们的触摸屏之旅喽...

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Tslib主要滤波算法分析
Linux驱动之触摸屏程序编写
基于s3c2410的tslib1.4的编译与移植
移植触摸屏校正Tslib1.4
tslib-1.4的交叉编译安装
tslib-1.4在OMAP3530(Cortex-A8)上的移植过程详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服