linux触摸屏(二)使用tslib
linux触摸屏linux触摸屏(一)编写触摸屏应用linux触摸屏(二)使用tslibTslib是一个开源的项目,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。下面分为两部分介绍tslib的使用1、移植tslib2、简单示例1、移植tslib(1)在ubuntu下解压# tar xzf...
·
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
更多推荐
已为社区贡献5条内容
所有评论(0)