记录一些关于多点触控的信息:

一、配置

在TP模块的probe函数里有如下设置:

1)配置该设备支持的事件或是按键类型

set_bit(EV_SYN, rmi4_data->input_dev->evbit);
set_bit(EV_KEY, rmi4_data->input_dev->evbit);
set_bit(EV_ABS, rmi4_data->input_dev->evbit);
set_bit(BTN_TOUCH, rmi4_data->input_dev->keybit);
set_bit(BTN_TOOL_FINGER, rmi4_data->input_dev->keybit);

2)配置值的范围

input_set_abs_params(rmi4_data->input_dev,ABS_MT_POSITION_X, rmi4_data->disp_minx,rmi4_data->disp_maxx, 0, 0);
input_set_abs_params(rmi4_data->input_dev,ABS_MT_POSITION_Y, rmi4_data->disp_miny,rmi4_data->disp_maxy, 0, 0);
input_set_abs_params(rmi4_data->input_dev,ABS_PRESSURE, 0, 255, 0, 0);
input_set_abs_params(rmi4_data->input_dev,ABS_MT_TOUCH_MAJOR, 0,rmi4_data->max_touch_width, 0, 0);
input_set_abs_params(rmi4_data->input_dev,ABS_MT_TOUCH_MINOR, 0,rmi4_data->max_touch_width, 0, 0);

3)配置最多支持同时触摸的点的个数

input_mt_init_slots(rmi4_data->input_dev,rmi4_data->num_of_fingers);

二、报点

1)从传感器读取从硬件报上来的点的相关数据并进行处理

 x = (finger_data->x_msb << 8) | (finger_data->x_lsb);y = (finger_data->y_msb << 8) | (finger_data->y_lsb);

2)创建一个slot并初始化

input_mt_slot(rmi4_data->input_dev, finger);
input_mt_report_slot_state(rmi4_data->input_dev,MT_TOOL_FINGER, finger_status != 0);

3)向上报点

input_report_key(rmi4_data->input_dev,BTN_TOUCH, 1);
input_report_key(rmi4_data->input_dev,BTN_TOOL_FINGER, 1);
input_report_abs(rmi4_data->input_dev,ABS_MT_POSITION_X, x);
input_report_abs(rmi4_data->input_dev,ABS_MT_POSITION_Y, y);
input_report_abs(rmi4_data->input_dev,ABS_MT_TOUCH_MAJOR, max(wx, wy));
input_report_abs(rmi4_data->input_dev,ABS_MT_TOUCH_MINOR, min(wx, wy));

以上的1)、2)、3)步是在一个循环里面的,如果同时多点(N个点)触摸的话,上面的三个步骤就会走N次

4)完成,开始上报

input_sync(rmi4_data->input_dev);

MSM8974 TP 多点触控 B协议相关推荐

  1. Linux 驱动开发 六十六:多点触控(MT)协议

    文档路径:Documentation\input\multi-touch-protocol.txt. 一.介绍 为了充分利用新的多点触摸和多用户设备的功能,需要一种从多个触摸点(即与设备表面直接接触的 ...

  2. android 电容屏多点触控协议

    多点触控协议 为了发挥新近的多点触摸和多用户设备的强大功能,为多点触摸定义一种上报详细数据的方法(比如有多个物体直接接触到设备的表面),是非常有必要的.多点触摸协议(multi-touch,MT),是 ...

  3. linux驱动--多点触控协议(multi-touch-protocol)

    Multi-touch-protocol Linux内核文档multi-touch-protocol.rst Introduction为了充分利用新的多点触控和多用户设备的全部功能, 需要一种报告来自 ...

  4. surface pro4 多点触控失灵及触控笔失灵问题的解决

    废话不多说,先上解决办法,再聊我绝望的历程. 嗯嗯嗯,很简单 win+x 打开设备管理器 呐,就是它. 之后出来这么个东西 然后,我们打开那个"人体输入学设备",里面有个" ...

  5. 多点触控液晶三维电子沙盘 实景三维电子沙盘

    多点触控液晶三维电子沙盘 实景三维电子沙盘 多点触控液晶三维电子沙盘 实景三维电子沙盘(3dgis.top)采用大数据.三维GIS.物联网.可视化等先进技术,具有手势触控.语音控制.深度学习.视频识别 ...

  6. 嵌入式Linux应用程序开发-(10)i.MX6UL基于嵌入式QT实现电容屏多点触控

    i.MX6UL基于嵌入式QT实现电容屏多点触控 基于i.MX6UL平台,使用嵌入式QT实现电容屏的多点触控,前提是开发板的电容触摸屏驱动已经支持多点触控,并且驱动程序能通过事件方式向应用程序上报触控数 ...

  7. android怎么监听多点触摸_什么是多点触控技术,有哪些用途

    自从乔布斯将触控技术用于苹果手机上,很多的手机厂商纷纷效仿,触控技术几乎成为手机的"标配".其实,触控技术早就存在,只是一直未能大面积用于各种设备中,本文将带您认识神奇的触控技术. ...

  8. Android 多点触控 MotionEvent详解

    相关API 介绍 MotionEvent.getY() 和 MotionEvent.getRawY() 的区别 getY 表示触摸事件在当前的View内的Y 坐标, getRawY表示触摸事件在整个屏 ...

  9. 【Android 应用开发】多点触控 ( 多点触控事件 | PointerId | PointerIndex | 坐标获取 | 触摸点个数 )

    文章目录 I . 多点触控事件 II . PointerId 与 PointerIndex 简介 III . 本次 PointerId 与 PointerIndex 获取 IV . PointerId ...

最新文章

  1. 有哪些可以免登录的视频会议软件/服务?
  2. 车辆密度估计--Understanding Traffic Density from Large-Scale Web Camera Data
  3. python手把手入门_新手必看:手把手教你入门 Python
  4. 想转行数据分析,看完这篇再做决定
  5. Oracle数据库的下载与安装教程详解
  6. 国开计算机实操题操作,国开大学计算机实操答案一.
  7. Matlab将底色改为白色
  8. 计算N阶行列式的详细讲解(C语言)(降阶法)(函数递归)
  9. 项目管理:精益管理法
  10. Matplotlib——线图_axis()函数
  11. loj6198 谢特
  12. android中生成excel
  13. 石英晶振常用术语解释
  14. 英特服务器的spec整数性能,未来四核心处理器SPEC性能展望
  15. 3-6 决策树、CART树、GBDT、xgboost、lightgbm一些关键点梳理
  16. 思科 计算机网络 第4章测试考试 答案
  17. ossfs挂载以及遇到的问题
  18. sudo apt-get update数字签名错误解决方法
  19. vsCode插件-------Beautify(格式化代码)
  20. 考电工证答题技巧?电工资格考试真题试卷答案?

热门文章

  1. Gazebo urdf kinetic RGBD camera 相机视角和点云视角不一致
  2. 趣味python之生成个性二维码
  3. 凌华AMP-204C卡的CNC功能 即Feeder工具的使用。
  4. python壁纸程序代码_python实现壁纸批量下载代码实例
  5. (九五至尊)九大管理体系,五大过程组:软考高级信息系统项目管理师必备知识点
  6. onkeydown,onkeyup,onkeypress,onclick,ondblclick
  7. TextBrewer工具使用实战2
  8. 标准差与标准误的区别
  9. 流体运动估计光流算法研究
  10. nise_bosh 在openstack集群上搭建CloudFoundry