Android多点触摸协议改进

以两点为例,Linux多点触摸协议上报次序为

ABS_MT_TOUCH_MAJOR ABS_MT_WIDTH_MAJOR ABS_MT_POSITION_X ABS_MT_POSITION_Y SYN_MT_REPORT //手指1 ABS_MT_TOUCH_MAJOR ABS_MT_WIDTH_MAJOR ABS_MT_POSITION_X ABS_MT_POSITION_Y SYN_MT_REPORT //手指2 SYN_REPORT

即采样一次需上报11个事件,利用率太低,很容易出现丢包的现象。因此我们决定encode data.格式见下表。

Bit3130~2726~2019~109~0
DataReservedSizePressYX

  可以看出这种编码格式可以支持分辨率1024×1024以下的LCD。完全满足当前及未来很长一段时间内项目的需求。我们将这种上报格式命名为ABS_BYD_MT_DATA,既然是打包上传,SYN_MT_REPORT也可以省略了。修改后的上报次序为

ABS_BYD_MT_DATA //手指1 ABS_BYD_MT_DATA //手指2 SYN_REPORT

为了便于支持2个手指以上的触摸项目,这里我们保留SYN_REPORT。如果修改下android,便可以支持256个手指。扩展起来非常方便

ABS_BYD_MT_DATA //手指1 ABS_BYD_MT_DATA //手指2 … ABS_BYD_MT_DATA //手指256 SYN_REPORT

当然这样修改,android恐怕是无法识别的,修改上层就行了。在EventHub.cpp中定义下 device class,然后在KeyInputQueue.java识别出class,将包解析出来。万事大吉。

转载于:https://www.cnblogs.com/sdphome/archive/2011/04/06/2007305.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值