教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 综合文档 >

触摸屏校正总结(2)

来源:网络收集 时间:2026-08-07
导读: 1) 环境变量 为了实现Tslib 的正确运行,需要对如下的Tslib 的环境变量进行配置: 2) TSLIB_TSDEVICE //触摸屏设备文件名 Default (no inputapi): /dev/touchscreen/ucb1x00 Default (inputapi): /dev/input/even

1) 环境变量

为了实现Tslib 的正确运行,需要对如下的Tslib 的环境变量进行配置: 2) 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 //FrameBuffer设备名 Default: /dev/fb0 3) 以上环境变量在实际开发中的实际配置可以根据实际情况决定。 4) 2)配置文件

除了环境变量以外,Tslib 的配置文件ts.conf 同样是个十分重要的部分,在ts.conf 中配置了需要加载的插件、插件加载顺序以及插件的一些约束参数,这些配置参数对触摸屏的触摸效果具有十分重要的影响。 下面是Tslib 1.4 中的ts.conf 的参考配置: 5) # 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

6) 其中 pthres 为Tslib提供的触摸屏灵敏度门槛插件;variance 为

Tslib提供的触摸屏滤波算法插件;dejitter 为Tslib提供的触摸屏去噪算法插件;linear 为Tslib 提供的触摸屏坐标变换插件。 7) tslib 的实际配置:

8) 去掉module_raw input前面的#号,同时把其他#号注释项全部删

除,以免给后来的操作带来麻烦。我的最终ts.conf 内容为: module_raw input

module pthres pmin=1

module variance delta=30 module dejitter delta=100 module linear

在执行校正程序时(如./ts_calibrate或./ts_test)可能出现的错误:

1:运行./ts_test No raw modules loaded.

ts_config: No such file or directory

出现这样的错误提示,可以很明确的告诉你,你的库缺少了一些*.so文件()

ts.conf文件中应该有一行(在配置文件上有很多的raw,但是全部是被注释掉的,但是至少需要打开一个。因为触摸屏是使用input子系统的,所以将module_raw input前面的#号去掉,并且前面不留空格,千万别留空格啊,有一个网友就是因为这个小小的空格搞到他郁闷了很久,幸好我比他醒目,绝不留空格,哈哈。。。。) module_raw input

/nand1/tslib-1.4/lib/ts目录下应该有个文件叫

input.so(这个文件比较重要,我第二次移植过程中不小心把input裁剪掉了,当插件库$TSLIB_ROOT/lib/ts目录下没有这个文件时会提示如下错误) No raw modules loaded.

ts_config: No such file or directory

2:在做测试的时候,运行./ts_calibrate出现了tslib-1.4经典的错误:(出现这个错误你不要沮丧,反而应该高兴,说明你之前的步骤已经全部没错了,只要把这个经典的错误解决就万事大吉了。很庆幸,这个错误有很多网友都已经有办法解决了) 经典错误:

Couldnt load module input No raw modules loaded tsconfig: Success

错误分析:那么错误就定位在 ts_config 里。并且可以进一步确定是在加载插件模块时出的错。 阅读了tslib 的源代码,知道了cstdlib 库里的一个函数: getenv

是用来得到指定系统环境变量的值。是为了测试 tslib 是否得到正确的环境变量。 其环境变量默认的值在readme中有注明。

加载插件模块时出出错分析:

ts_calibrate会打开ts_config

ts_config函数里首先会读取 tslib 配置文件(ts.conf,由 TSLIB_CONFFILE环境变量指定,在tslib/etc下面),

然后根据这个文件逐个加载插件库,1.4版本的ts.conf内容为: Module_raw input (读readme文件可以找到这个字符串) module pthres pmin=1 module variance delta=30 module dejtter delta=100 module linear

ts_config又会调用ts_load_module加载库。从这个函数里,程序先是得到配置文件中指定加载的模块名,

然后根据模块名构造了一个 so 文件文件名,然后调用了系统函数 dlopen 加载库! Linux 下的加载dlopen 类似于 Windows 下动态链接库的函数:dlopen 错误就应该出在构造的库文件名是错误的---其指定的文件不存在

---从而导致 dlopen无法加载。所以才提示找不到文件或目录!

那么这样就是应该把需要的input.so variance.so dejitter.so linear.so应该复制到/tslib/plugins中(上面修正后作了这一步,就可以拉,就不会出现错误拉)

3: [~#]./ts_calibrate.sh

此时会加载tslib中的插件模块input.so,且会抛出Segement fault的错误。仔细分析tslib的源码之后,得知在加载

input.so时,ts_attach.c中__ts_attach_raw()函数中使用NULL指针,导致Segement fault产生。经过修改过,重新

编译tslib,再运行ts_calibrate.sh,一切正常。ts_attach.c中__ts_attach_raw()中的修改如下:

#if 0

for(next = ts->list, prev=next; next != NULL && next != prev_list; next = prev->next, prev = next) {

DEBUG(\prev->next=%x\\n\

__FILE__, __FUNCTION__, count++, prev_list, prev, next, prev->next); ; } #else

for(next = ts->list, prev=next; next != NULL && next != prev_list;) {

DEBUG(\prev->next=%x\\n\

__FILE__, __FUNCTION__, count++, prev_list, prev, next, prev->next); next = prev->next; if(next == NULL) break; else

prev = next;

}

#endif

至此,tslib所有工作已经完成,ts_calibrate会在~/ts-release/etc/目录下生成pointercal文件。pointercal为触摸屏校准后生成的文件,确保QT运行时,触摸屏工作正常。

…… 此处隐藏:2058字,全部文档内容请下载后查看。喜欢就下载吧 ……
触摸屏校正总结(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/403770.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)