【转】基于Qt, TUIO和TSLIB的嵌入式Linux下的多点触摸设计
这个教程描述了在嵌入式linux下使用Qt如何设置一个支持多点触摸和单点触摸的输入系统。这里假定你已经有了对应的驱动程序,驱动可以从触摸屏的厂商那里获得或者使用一个linux 内核源码中已经存在的驱动。
set_bit(EV_ABS, aura.input_dev->evbit);
set_bit(EV_KEY, aura.input_dev->evbit); # I had to add this line so that tslib was happy
lrwxrwxrwx 1 root root 6 Jan 17 21:06 /dev/input/touchscreen -> event1
# chmod 777 /dev/input/touchscreen
# chmod 777 /dev/input/event1
PRODUCT=0/0/0/0
NAME="aura-touchscreen"
PROP=0
EV=9
ABS=650000 0
MODALIAS=input:b0000v0000p0000e0000-e0,3,kra30,32,35,36,mlsfw
0000000 9011 3883 565f 0001 0003 0030 0001 0000
0000010 9011 3883 565f 0001 0003 0032 0001 0000
0000020 9011 3883 565f 0001 0003 0035 04c9 0000
0000030 9011 3883 565f 0001 0003 0036 0c3f 0000
0000040 9011 3883 565f 0001 0000 0002 0000 0000
0000050 9011 3883 565f 0001 0000 0000 0000 0000
0000060 9011 3883 90a9 0001 0003 0030 0001 0000
0000070 9011 3883 90a9 0001 0003 0032 0001 0000
sudo ./autogen.sh
sudo export ac_cv_func_malloc_0_nonnull=yes
sudo export PATH=`pwd`:$PATH
sudo ./configure CC=/home/user/toolchain/linaro/bin/arm-linux-gnueabi-gcc
CXX=/home/user/toolchain/linaro/bin/arm-linux-gnueabi-g++
--host=arm-linux
--prefix=/usr/local/tslib
--enable-shared=yes
--enable-static=yes
sudo make
sudo make install
sudo cp /usr/local/tslib/bin/* /home/user/exported-nfs/usr/bin/
sudo cp /usr/local/tslib/etc/ts.conf /home/user/exported-nfs/etc/
sudo cp -r /usr/local/tslib/lib/ts /home/user/exported-nfs/usr/lib
sudo cp /usr/local/tslib/lib/* /home/user/exported-nfs/lib/
sudo vim /home/user/exported-nfs/etc/ts.conf
export TSLIB_TSDEVICE=/dev/input/touchscreen
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_CONSOLEDEVICE=none
export TSTS_INFO_FILE=/sys/devices/virtual/input/input1/uevent
export QWS_MOUSE_PROTO=tslib:/dev/input/touchscreen
export PATH=$PATH:/usr/bin
xres = 640, yres = 480
Took 5 samples...
Top left : X = 3817 Y = 3912
Took 6 samples...
Top right : X = 269 Y = 3822
Took 5 samples...
Bot right : X = 356 Y = 550
Took 5 samples...
Bot left : X = 3732 Y = 614
Took 6 samples...
Center : X = 2202 Y = 2216
643.068298 -0.155621 -0.000056
491.792572 0.002567 -0.115674
Calibration constants: 42144124 -10198 -3 32230118 168 -7580 65536
https://github.com/olivopaolo/mtdev2tuio
http://bitmath.org/code/mtdev/
http://liblo.sourceforge.net/
export CXX=/home/user/toolchain/linaro/bin/arm-linux-gnueabi-g++
export SKIP_RMDIR_CHECK=yes
./configure --prefix=/usr/local/lib/liblo --host=arm
make clean
make
sudo make install
cd /usr/local/lib/liblo
sudo cp bin/* /home/user/exported-nfs/usr/bin/
sudo cp lib/liblo.a /home/user/exported-nfs/usr/bin/
sudo cp lib/liblo.la /home/user/exported-nfs/usr/bin/
./autogen.sh
./configure --prefix=/usr/local/lib/mtdev --host=arm
make clean
make
sudo make install
cd /usr/local/lib/mtdev
sudo cp bin/* /home/user/exported-nfs/usr/bin/
sudo cp lib/libmtdev.a /home/user/exported-nfs/usr/bin/
sudo cp lib/libmtdev.la /home/user/exported-nfs/usr/bin/
make clean
make
sudo cp mtdev2tuio /home/user/exported-nfs/usr/bin/
sudo rm -rf /home/user/Desktop/QTUIO/qTUIO/lib/*
cd src/
/home/user/output/buildroot/host/usr/bin/qmake
make clean
make
cd ../lib
mv libqTUIO_d.so.1.0.0 libqTUIO.so.1.0.0
sudo rm -rf *libqT*_d*so*
sudo ln -sf libqTUIO.so.1.0.0 libqTUIO.so.1.0
sudo ln -sf libqTUIO.so.1.0.0 libqTUIO.so.1
sudo ln -sf libqTUIO.so.1.0.0 libqTUIO.so
sudo mkdir -p /usr/local/lib/qTUIO
sudo cp -r ../lib/* /usr/local/lib/qTUIO
sudo cp -r /usr/local/lib/qTUIO/* /home/user/exported-nfs/usr/lib/
Sending OSC/TUIO packets to osc.udp://127.0.0.1:3333/
Killing remote process(es)...
Starting remote process ...
Remote process started.
graphicsview initialized
listening to TUIO messages on UDP port 3333
快乐编程

原文连接:
http://www.ptrackapp.com/apclassys-notes/embedded-linux-multitouch/embedded-linux-multitouch.html
【转】基于Qt, TUIO和TSLIB的嵌入式Linux下的多点触摸设计的更多相关文章
- 嵌入式 Linux下永久生效环境变量bashrc
嵌入式 Linux下永久生效环境变量bashrc 1) .bashrc文件 在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到 ...
- 嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误
嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误 2015-05-27 14:19 184人阅读 评论(0) 收藏 举报 分类: 嵌入式(928) 一般察看函数运行时堆栈的 ...
- 基于fork(),execvp()和wait()实现类linux下的bash——mybash
基于fork(),execvp()和wait()实现类linux下的bash--mybash 预备知识 fork():fork()函数通过系统调用创建一个与原来进程几乎完全相同的进程,也就是两个进程可 ...
- 转: 嵌入式linux下usb驱动开发方法--看完少走弯路【转】
转自:http://blog.csdn.net/jimmy_1986/article/details/5838297 嵌入式linux下的usb属于所有驱动中相当复杂的一个子系统,要想将她彻底征服,至 ...
- 嵌入式Linux下BOA网页server的移植
**************************************************************************************************** ...
- 嵌入式Linux下Qt的中文显示
一般情况下,嵌入式Qt界面需要中文显示,下面总结自己在项目中用到的可行的办法 1,下载一种中文简体字体,比如我用的是”方正准圆简体“,把字体文件放在ARM开发板系统的Qt字库中,即/usr/lib/f ...
- 为基于busybox根文件系统的ARM嵌入式Linux交叉编译dropbear使能SSH
原创作品,允许转载,转载时请务必以超链接形式标明文章.作者信息和本声明,否则将追究法律责任. 最近使用busybox为基于ARM的板卡定制了一个极简单的根文件系统,由于busybox仅支持telnet ...
- 嵌入式 Linux下curl库API简单介绍
1:CURLcode curl_global_init(long flags); 这个函数全局需要调用一次(多次调用也可以,不过没有必要), 所以这也是把Curlplus设计成单体类的原因,curl_ ...
- 嵌入式linux下wifi网卡的使用(四)——应用程序sub_supplicant编译
有readme先看看readme看看有没有编译的方法 里面告诉我们安装时可能会依赖某些库事实证明会依赖openssl库,之前也使用过openssl 这个文件中有个defualtconfig,先用它做. ...
随机推荐
- Maven .m2 setting.xml配置
settings.xml <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="h ...
- (转)iOS Wow体验 - 第七章 - 操作图例与触屏人机工学
本文是<iOS Wow Factor:Apps and UX Design Techniques for iPhone and iPad>第七章译文精选,其余章节将陆续放出.上一篇:Wow ...
- JavaScripts学习日记——ECMAscript
1.Function对象 Function是一个很特殊的对象,特殊在该对象就像java中的方法一样,可以运行,可以传参数. 三种定义function对象的方法: 1.function fun1(a,b ...
- android调试系列--使用ida pro调试so
1.工具介绍 IDA pro: 反汇编神器,可静态分析和动态调试. 模拟机或者真机:运行要调试的程序. 样本:阿里安全挑战赛第二题:http://pan.baidu.com/s/1eS9EXIM 2. ...
- My way on Linux - [Shell基础] - Bash Shell中判断文件、目录是否存在或者判断其是否具有某类属性(权限)的常用方法
Conditional Logic on Files # 判断文件是否存在及文件类型 -a file exists. #文件存在 -b file exists and is a block speci ...
- playbin2 成员
1. playbin2 struct _GstPlayBin { GstPipeline parent; GMutex *lock; GstSourceGroup groups[2]; G ...
- Java数据结构漫谈-LinkedList
同样是List的数据结构,LinkedList是使用了前后指针,指明节点的方式来表示链表的,这与之前介绍的ArrayList http://www.cnblogs.com/yakovchang/p/j ...
- Oracle decode函数 除数为零
decode (expression, search_1, result_1)如果 expression结果=search_1结果,则返回result_1,类似 if elsedecode (expr ...
- ashx ajax 与 自定义javascript函数
1.getUserPower为自定义javascript函数 获取权限 (1).ashx 处理程序的相对地址(必须是相对地址) (2).au 权限名称 (3).classname 类名 (4) ...
- Ubuntu 14.10安装mentohust
关于linux下mentohust的安装本来有很多教程了,但从网上找了一些教程没有几个总结的很全面的,大都只言片语,不是太负责.下面详细的列出每一个步骤,希望能帮到有需要的人. 一 安装准备 首先下载 ...