linux qt 多点触摸,【转】基于Qt, TUIO和TSLIB的嵌入式Linux下的多点触摸设计

这个教程描述了在嵌入式linux下使用Qt如何设置一个支持多点触摸和单点触摸的输入系统。这里假定你已经有了对应的驱动程序,驱动可以从触摸屏的厂商那里获得或者使用一个linux 内核源码中已经存在的驱动。

第一要务,找到你的驱动程序(通常在/drivers/input/touchsreen/*)并且确认你已经定义好了tslib中所需要的每个事件类型。通常你需要EV-SYN, EV-ABS和EV_KEY.我自己使用的驱动中没有定义EV_KEY, 因此驱动不会发送这一个类型的事件。为了能够使tslib和这个驱动的输入系统好好工作,我需要在驱动代码中定义这个事件。

set_bit(EV_SYN, aura.input_dev->evbit);

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

现在使用修改后的驱动源码重新构建内核,并且在开发板上运行起来。

我这里的输入设备名称是‘touchscreen’, 由于多种原因, 你们的输入设备名称可能是event1 或者event0 。

使用下面的命令查看设备

# ls -rlt /dev/input/touchscreen

lrwxrwxrwx    1 root     root             6 Jan 17 21:06 /dev/input/touchscreen -> event1

# chmod 777 /dev/input/touchscreen

# chmod 777 /dev/input/event1

使用下面的命令,你可以看到更多的信息

# cat /sys/devices/virtual/input/input1/uevent

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

使用下面的命令,然后再屏幕上移动你的手指以确认触摸屏驱动是否正在工作。

当你的手指在屏幕上移动时,你应该看到下面的现象。

# cat /dev/input/touchscreen  | hexdump

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值