用户名:
密  码:
验证码:
 
JAVA J2EE J2ME J2SE JSP C/C++ C语言 C++ VC MFC Web前台 Html css JavaScript 软件测试 软件测试入门 LoadRunner Windows Win2008 Win2003 WinXP
.NET ASP.NET VB.NET MVC Linux/Unix Linux Unix Shell Web开发 PHP ASP Ajax IIS Apache 编程语言 C VB Delphi 汇编 数据库 MSSQL Mysql Oracle

Tslib的编译和触摸屏测试

www.diybl.com 时间:2007-11-29 作者:佚名 编辑:本站 点击:  [评论]
BR>查询了ts_load_module.c这个文件发现网上和自己的不太一样(网上公布的源码是1.4或者是0.1.1的吧)我的是1.3的
我下载了tslib-0.1.1的后重新实验 就发现错误的是这样子的(第一个错误是由ts.conf所决定的)
Couldnt load module pthres
No raw modules loaded
tsconfig: Success
 
 
阅读了tslib 的原代码,知道了cstdlib 库里的一个函数: getenv
是用来得到指定系统环境变量的值。是为了测试 tslib 是否得到正确的环境变量。
其环境变量默认的值在readme中有注明。
 
 
加载插件模块时出出错分析:
ts_calibrate会打开ts_config
ts_config函数里首先会读取 tslib 配置文件(ts.conf,由 TSLIB_CONFFILE环境变量指定,在tslib/etc下面),
然后根据这个文件逐个加载插件库
 
1.3版本的ts.conf内容为
module mousebuts
moudle variance xlimit=50 ylimit=50 pthreshold=3
moudle dejitter xdelta=1 ydelta=1 pthreshold=3
moudle linear
 
 
ts_config又会调用ts_load_module加载库。从这个函数里,程序先是得到配置文件中指定加载的模块名,
然后根据模块名构造了一个 so 文件文件名,然后调用了系统函数 dlopen 加载库!
 
Linux 下的加载dlopen 类似于 Windows 下动态链接库的函数:dlopen
错误就应该出在构造的库文件名是错误的---其指定的文件不存在
---从而导致 dlopen无法加载。所以才提示找不到文件或目录!
 
那么这样就是应该把需要的mousebuts.so variance.so dejitter.so linear.so应该复制到/tslib/plugins中
(上面修正后作了这一步,就可以拉,就不会出现错误拉)
 
 
 
**************************************
 
这里来谈一谈tslib-1.4,和1.3有一点点不一样,主要是配置文件的差别
一般来说,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需要的模块文件,
请检查你的路径和文件。 

1 2
如果图片或页面不能正常显示请点击这里 站内搜索:
推荐文章
文章评论
请您留言
昵称:  
验证码:
注册会员
会员登陆