linux触摸屏
Tslib是一个开源的项目,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。
下面分为两部分介绍tslib的使用
1、移植tslib
2、简单示例
1、移植tslib
(1)在ubuntu下解压
# tar xzf tslib-1.4.tar.gz
(2)配置
# cd tslib
# ./autogen.sh
# mkdir tmp
# echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
# ./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=$(pwd)/tmp
(3)编译安装
# make
# make install
安装过后,生成的库河头文件就在当前目录的tmp目录下
2、简单示例
int main(int argc, char **argv) { char *pcName=NULL; struct tsdev *ptTSDev; struct ts_sample tSamp; int iRet;
if((pcName = getenv("TSLIB_TSDEVICE")) != NULL) { ptTSDev = ts_open(pcName, OPEN_MODE); /* 非阻塞打开 */ } else { ptTSDev = ts_open(TS_DEV_PATH, OPEN_MODE); } if (!ptTSDev) { printf("touch screen open error\n"); return -1; } if (ts_config(ptTSDev)) { printf("ts config error\n"); return -1; } while(1) { iRet = ts_read(g_ptTSDev, &tSamp, 1); if (iRet < 0) { printf("ts read error\n"); return -1; } if (iRet != 1) return 0; printf("%ld.%06ld: %6d %6d %6d\n", tSamp.tv.tv_sec, tSamp.tv.tv_usec, tSamp.x, tSamp.y, tSamp.pressure); }
}
在使用tslib时,应该先导出环境变量
# export TSLIB_TSDEVICE=/dev/input/event0
# export TSLIB_CALIBFILE=/etc/pointercal
# export TSLIB_CONFFILE=/etc/ts.conf
# export TSLIB_PLUGINDIR=/usr/lib/ts
# export TSLIB_CONSOLEDEVICE=none
# export TSLIB_FBDEVICE=/dev/fb0