• «
  • 1
  • 2
  • 3
  • »
  • Pages: 1/3     Go
主题 : 友善tslib来源之迷惑 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 52074
精华: 0
发帖: 22
金钱: 110 两
威望: 22 点
综合积分: 44 分
注册时间: 2011-07-12
最后登录: 2011-08-11
楼主  发表于: 2011-07-25 16:34

 友善tslib来源之迷惑

     既然友善不提供tslib源码,那友善对从哪里获取可用tslib源码就没必要太保密了吧。请问各位同仁,你们有没有在tiny6410上移植成功tslib的(qt能用的触摸屏)?有的话你们的tslib从哪里下载的?我移植成功了触摸屏但QT程序不能用触摸屏。
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
1楼  发表于: 2011-07-25 18:05
建议你将你的移植步骤\测试步骤\测试结果等描述清楚, 否则大家也不知道是怎么回事
级别: 新手上路
UID: 52074
精华: 0
发帖: 22
金钱: 110 两
威望: 22 点
综合积分: 44 分
注册时间: 2011-07-12
最后登录: 2011-08-11
2楼  发表于: 2011-07-25 18:09
移植过程如下:
           下载tslib1.4

解压
修改tslib/plugins/input-raw.c

把其中的ts_input_read 函数改成如下:

static int ts_input_read(struct tslib_module_info *inf,
    struct ts_sample *samp, int nr)
{
    // printf ("HEAD=== ts_input_read in INPUT-RAW.C\n");
struct tslib_input *i = (struct tslib_input *)inf;
struct tsdev *ts = inf->dev;
struct input_event ev;
int ret = nr;
int total = 0;
unsigned long jjts;
     while(total<nr)
      {
         ret = read(ts->fd, &jjts, sizeof(jjts));

        if (ret==-1) continue;

     samp->pressure=(jjts>>31) & 0x01;
     samp->x=(jjts>>16) & 0xffff;
     samp->y=jjts & 0xffff;
        
     samp++;
     total++;
      }

ret=total;
return ret;

}



然后编译 tslib

./autogen.sh
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=arm-linux --cache-file=arm-linux.cache --enable-inputapi=no --prefix=/usr/local/tslib
make
make install
vi /usr/local/tslib/etc/ts.conf
修改ts.conf为
module_raw  input
module pthres pmin=1
module variance delta=30
module dejitter delta=10000
module linear

复制tslib到开发板对应的目录,我这里用的nfs挂载
cp /usr/local/tslib/ /opt/my/rootfs_nfs/usr/local/ -r

修改qt4脚本为:

#!/bin/sh

if [ -e /etc/friendlyarm-ts-input.conf ] ; then
    . /etc/friendlyarm-ts-input.conf
fi
true    ${TSLIB_TSDEVICE:=/dev/touchscreen}

export TSLIB_ROOT=/usr/local/tslib

TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf

export TSLIB_TSDEVICE
export TSLIB_CONFFILE

export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal

export QWS_DISPLAY=:1
#export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$TSLIB_ROOT/lib:$LD_LIBRARY_PATH
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin

if [ -c /dev/touchscreen ]; then
    export QWS_MOUSE_PROTO="Tslib MouseMan:/dev/input/mice"
    if [ ! -s /etc/pointercal ] ; then
        rm /etc/pointercal
        $TSLIB_ROOT/bin/ts_calibrate
    fi
else
    export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"
fi

export QWS_KEYBOARD=TTY:/dev/tty1

export HOME=/root

echo "Starting qt4 app.." > /dev/tty1

cd /usr/local/Trolltech/QtEmbedded-4.7.0-arm/demos/embedded/fluidlauncher
./fluidlauncher -qws
hotplug
QT的配置为
echo yes | ./configure -prefix /usr/local/Trolltech/QtEmbedded-4.7.0-arm -opensource -embedded arm -xplatform qws/linux-arm-g++  -no-webkit -qt-libtiff -qt-libmng  -qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib-lts
-qt-mouse-pc -no-mouse-linuxtp -no-neon
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
3楼  发表于: 2011-07-26 09:36
你单独运行ts_calibrate 是什么情况? 能校准吗?
级别: 新手上路
UID: 52074
精华: 0
发帖: 22
金钱: 110 两
威望: 22 点
综合积分: 44 分
注册时间: 2011-07-12
最后登录: 2011-08-11
4楼  发表于: 2011-07-26 09:46
单独运行ts_calibrate及ts_test都成功了,而且能产生正常的pointercal文件,所以我说我成功移植了tslib,但是当运行板子上的qt程序时,按触摸屏能移动箭头,但程序不会反应。
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
5楼  发表于: 2011-07-26 09:51
首先你要确定你运行的确实是你移植的tslib, 你可以先把板上原有tslib删除干净, 同时还可计算md5来进一步确认
级别: 新手上路
UID: 52074
精华: 0
发帖: 22
金钱: 110 两
威望: 22 点
综合积分: 44 分
注册时间: 2011-07-12
最后登录: 2011-08-11
6楼  发表于: 2011-07-26 09:57
这个可以确定的哈,因为我放的是放在、usr/local/tslib/binx下的。还有就是我的tslib校正只需点五次光标就可以了,而板子上的要点更多次。
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
7楼  发表于: 2011-07-26 10:31
你有没有观察一下校准时 ts_calibrate打印的信息, 坐标值是否正常, 有没有松开的值

如果没有松开的值的话, 可能就会出现能移动前头但是程序没响应的情况
级别: 新手上路
UID: 52074
精华: 0
发帖: 22
金钱: 110 两
威望: 22 点
综合积分: 44 分
注册时间: 2011-07-12
最后登录: 2011-08-11
8楼  发表于: 2011-07-26 10:47
打印信息如下:麻烦帮我分析一下哈。谢谢。
xres = 480, yres = 272
Took 6 samples...
Top left : X = 35854 Y =  573
Took 3 samples...
Top right : X = 35480 Y = 3424
Took 1 samples...
Bot right : X = 33540 Y = 3291
Took 3 samples...
Bot left : X = 33536 Y =  455
Took 3 samples...
Center : X = 34682 Y = 2004
252.902954 -0.007868 0.133046
2907.514648 -0.079768 -0.005198
Calibration constants: 16574248 -515 8719 190546880 -5227 -340 65536
级别: 新手上路
UID: 52074
精华: 0
发帖: 22
金钱: 110 两
威望: 22 点
综合积分: 44 分
注册时间: 2011-07-12
最后登录: 2011-08-11
9楼  发表于: 2011-07-26 10:49
这个是板子上的tslib校正程序
TouchDevice: /dev/touchscreen-1wire
xres = 480, yres = 272
Took 6 samples...
Top left : X = 3161 Y =  584
Took 4 samples...
Top right : X = 3170 Y = 3478
Took 5 samples...
Bot right : X =  925 Y = 3413
Took 6 samples...
Bot left : X =  823 Y =  413
Took 7 samples...
Center : X = 1988 Y = 2011
-1.981689 -0.006674 0.129013
284.368408 -0.075092 0.001425
x,y, delta x, delta y: 52, 47, 2, -2
x,y, delta x, delta y: 425, 51, 5, 1
x,y, delta x, delta y: 432, 219, 2, -2
x,y, delta x, delta y: 45, 223, 5, 1
x,y, delta x, delta y: 244, 137, 4, 1
Calibration constants: -129872 -437 8454 18636368 -4921 93 65536
  • «
  • 1
  • 2
  • 3
  • »
  • Pages: 1/3     Go