Android getevent用法详解
TP驱动调试分享——基于Qualcomm SDM710平台Android9.0,TP 采用I2C方式和CPU进行通信_高通tp驱动_永恒小青青的博客-CSDN博客
手机触摸屏扫描信号实测波形_触摸屏报点率_AirCity123的博客-CSDN博客
如何查看TP报点率?触摸TP查看详细信息
adb shell
getevent -r
getevent 指令用于获取 input 输入事件,比如获取按键上报信息、获取触摸屏上报信息等。
指令源码路径:/system/core/toolbox/getevent.c
getevent -h:查看 getevent 帮助信息
root@rk3288:/ # getevent -h getevent -h Usage: getevent [-t] [-n] [-s switchmask] [-S] [-v [mask]] [-d] [-p] [-i] [-l] [-q] [-c count] [-r] [device]-t: show time stamps-n: don't print newlines-s: print switch states for given bits-S: print all switch states-v: verbosity mask (errs=1, dev=2, name=4, info=8, vers=16, pos. events=32, props=64)-d: show HID descriptor, if available-p: show possible events (errs, dev, name, pos. events)-i: show all device info and possible events-l: label event types and names in plain text-q: quiet (clear verbosity mask)-c: print given number of events then exit-r: print rate events are received
getevent:显示当前有那些输入设备,数量与 /dev/input 目录下相同
root@rk3288:/ # getevent getevent add device 1: /dev/input/event3name: "ILITEK Multi-Touch-V3020" add device 2: /dev/input/event2name: "PC Camera" add device 3: /dev/input/event1name: "gsensor" add device 4: /dev/input/event0name: "rk29-keypad"root@rk3288:/ # ls /dev/input ls /dev/input event0 event1 event2 event3
查看默认上报数据
root@rk3288:/ # getevent /dev/input/event3 getevent /dev/input/event3 0003 0039 00000004 0003 0035 00002324 0003 0036 00001a9f 0001 014a 00000001 0003 0000 00002324 0003 0001 00001a9f 0000 0000 00000000 0003 0039 ffffffff 0001 014a 00000000 0000 0000 00000000
-t:显示时间戳
// 读取 event3 数据(触摸屏) root@rk3288:/ # getevent -t /dev/input/event3 getevent -t /dev/input/event3 [ 1141.248434] 0003 0039 0000000e [ 1141.248434] 0003 0035 00002cd4 [ 1141.248434] 0003 0036 00001a09 [ 1141.248434] 0001 014a 00000001 [ 1141.248434] 0003 0000 00002cd4 [ 1141.248434] 0003 0001 00001a09 [ 1141.248434] 0000 0000 00000000 [ 1141.322181] 0003 0039 ffffffff [ 1141.322181] 0001 014a 00000000 [ 1141.322181] 0000 0000 00000000
-n:不换行打印
root@rk3288:/ # getevent -n /dev/input/event3 getevent -n /dev/input/event3 0003 0039 000000020003 0035 00002f000003 0036 00001a4e0001 014a 000000010003 0000 00002f000003 0001 00001a4e0000 0000 000000000003 0039 ffffffff0001 014a 000000000000 0000 000000000003 0039 000000030003 0035 00002e880003 0036 000019b80001 014a 000000010003 0000 00002e880003 0001 000019b80000 0000 000000000003 0039 ffffffff0001 014a 000000000000 0000 000000000003 0039 000000040003 0035 00002d700003 0036 00001a000001 014a 000000010003 0000 00002d700003 0001 00001a000000 0000 000000000003 0039 ffffffff0001 014a 000000000000 0000 000000000003 0039 000000050003 0035 00002d080003 0036 000019a50001 014a 000000010003 0000 00002d080003 0001 000019a50000 0000 000000000003 0039 ffffffff0001 014a 000000000000
-s:显示指定位的开关状态
root@rk3288:/ # getevent -s5 /dev/input/event3 getevent -s5 /dev/input/event3 0000
-S:显示所有位的开关状态
root@rk3288:/ # getevent -S /dev/input/event3 getevent -S /dev/input/event3 0000
-v:根据 mask 值显示相关信息,执行后会一直显示上报数据
errs=1, dev=2, name=4, info=8, vers=16, pos. events=32, props=64
默认显示 dev| name| info| vers = 30;
root@rk3288:/ # getevent -v /dev/input/event3 getevent -v /dev/input/event3 add device 1: /dev/input/event3bus: 0003vendor 222aproduct 004dversion 0110name: "ILITEK Multi-Touch-V3020"location: "usb-ff540000.usb-1.3/input0"id: ""version: 1.0.1root@rk3288:/ # getevent -v30 /dev/input/event3 getevent -v30 /dev/input/event3 add device 1: /dev/input/event3bus: 0003vendor 222aproduct 004dversion 0110name: "ILITEK Multi-Touch-V3020"location: "usb-ff540000.usb-1.3/input0"id: ""version: 1.0.1root@rk3288:/ # getevent -v2 /dev/input/event3 getevent -v2 /dev/input/event3 add device 1: /dev/input/event3root@rk3288:/ # getevent -v8 /dev/input/event3 getevent -v8 /dev/input/event3bus: 0003vendor 222aproduct 004dversion 0110location: "usb-ff540000.usb-1.3/input0"id: ""root@rk3288:/ # getevent -v16 /dev/input/event3 getevent -v16 /dev/input/event3version: 1.0.1root@rk3288:/ # getevent -v32 /dev/input/event3 getevent -v32 /dev/input/event3events:KEY (0001): 014aABS (0003): 0000 : value 12008, min 0, max 16384, fuzz 0, flat 0, resolution 310001 : value 5790, min 0, max 9600, fuzz 0, flat 0, resolution 32002f : value 0, min 0, max 9, fuzz 0, flat 0, resolution 00035 : value 0, min 0, max 16384, fuzz 0, flat 0, resolution 310036 : value 0, min 0, max 9600, fuzz 0, flat 0, resolution 320039 : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0
-d:如果设备可用,显示设备隐藏的描述信息
-p:显示设备支持的事件类型和编码方式
root@rk3288:/ # getevent -p /dev/input/event3 getevent -p /dev/input/event3 add device 1: /dev/input/event3name: "ILITEK Multi-Touch-V3020"events:KEY (0001): 014aABS (0003): 0000 : value 13084, min 0, max 16384, fuzz 0, flat 0, resolution 310001 : value 5284, min 0, max 9600, fuzz 0, flat 0, resolution 32002f : value 0, min 0, max 9, fuzz 0, flat 0, resolution 00035 : value 0, min 0, max 16384, fuzz 0, flat 0, resolution 310036 : value 0, min 0, max 9600, fuzz 0, flat 0, resolution 320039 : value 0, min 0, max 65535, fuzz 0, flat 0, resolution 0input props:INPUT_PROP_DIRECT
-i:显示设备的所有信息和支持的事件,比 -p 显示更多信息
root@rk3288:/ # getevent -i /dev/input/event3
-l:以文本形式输出事件类型和名称,比 -t 更清楚直观
// 读取 event3 数据(触摸屏) root@rk3288:/ # getevent -l /dev/input/event3 getevent -l /dev/input/event3 // 事件类型 事件码 事件值 EV_ABS ABS_MT_TRACKING_ID 0000000f EV_ABS ABS_MT_POSITION_X 00002bbc EV_ABS ABS_MT_POSITION_Y 00001b6d EV_KEY BTN_TOUCH DOWN EV_ABS ABS_X 00002bbc EV_ABS ABS_Y 00001b6d EV_SYN SYN_REPORT 00000000 EV_ABS ABS_MT_TRACKING_ID ffffffff EV_KEY BTN_TOUCH UP EV_SYN SYN_REPORT 00000000
-q:暂时不会使用
-c:打印固定数量的事件并退出
root@rk3288:/ # getevent -c 10 /dev/input/event3 getevent -c 10 /dev/input/event3 0003 0039 00000012 0003 0035 000038a4 0003 0036 000008f5 0001 014a 00000001 0003 0000 000038a4 0003 0001 000008f5 0000 0000 00000000 0003 0039 ffffffff 0001 014a 00000000 0000 0000 00000000
-r:显示事件上报速率
// 检测触摸屏报点速率 root@rk3288:/ # getevent -r /dev/input/event3 getevent -r /dev/input/event3 0003 0039 00000015 0003 0035 000030d8 0003 0036 00001954 0001 014a 00000001 0003 0000 000030d8 0003 0001 00001954 0000 0000 00000000 rate 0 0003 0039 ffffffff 0001 014a 00000000 0000 0000 00000000 rate 9
参数可以组合使用,一次性查看需要的触摸屏信息
root@rk3288:/ # getevent -tlr /dev/input/event3 getevent -tlr /dev/input/event3 [ 2514.550104] EV_ABS ABS_MT_TRACKING_ID 0000001c [ 2514.550104] EV_ABS ABS_MT_POSITION_X 00002dac [ 2514.550104] EV_ABS ABS_MT_POSITION_Y 000018ca [ 2514.550104] EV_KEY BTN_TOUCH DOWN [ 2514.550104] EV_ABS ABS_X 00002dac [ 2514.550104] EV_ABS ABS_Y 000018ca [ 2514.550104] EV_SYN SYN_REPORT 00000000 rate 0 [ 2514.638845] EV_ABS ABS_MT_TRACKING_ID ffffffff [ 2514.638845] EV_KEY BTN_TOUCH UP [ 2514.638845] EV_SYN SYN_REPORT 00000000 rate 11
相关文章:
Android getevent用法详解
TP驱动调试分享——基于Qualcomm SDM710平台Android9.0,TP 采用I2C方式和CPU进行通信_高通tp驱动_永恒小青青的博客-CSDN博客 手机触摸屏扫描信号实测波形_触摸屏报点率_AirCity123的博客-CSDN博客 如何查看TP报点率?触摸TP查看详细信息 adb shell ge…...
面试题-TS(二):如何定义 TypeScript 中的变量和函数类型?
面试题-TS(二):如何定义 TypeScript 中的变量和函数类型? 一、 变量类型的定义 在TypeScript中,我们可以使用冒号(:)来指定变量的类型。以下是一些常见的变量类型: 布尔类型(boolean):表示tr…...
【4】-多个User执行测试
目录 一个locustfile中有多个User 使用--class-picker指定执行 小结 一个locustfile中有多个User from locust import task, HttpUserclass User01(HttpUser):weight 3 # 权重host https://www.baidu.comtaskdef user_01_task(self):self.client.get(url/, nameuser_01_…...
基于Eisvogel模板的Markdown导出PDF方法
Requirements 模板地址:Wandmalfarbe/pandoc-latex-template Pandoc:Pandoc官网 Latex环境:例如TexLive Pandoc参数 --template"模板存放位置" --listings --pdf-enginexelatex --highlight-style kate -V CJKmainfontSimSun -V C…...
linux服务器安装redis
一、安装下载 下载安装参考文章 下载安装包地址:https://download.redis.io/releases/ 亲测有效,但是启动的步骤有一些问题 安装完成!!! 二、启动 有三种启动方式 默认启动指定配置启动开机自启 说明:…...
QT中信号和槽本质
信号 信号的本质就是事件 在QT中信号的发出者是某个实例化的类对象,对象内部可以进行相关事件的检测。 槽 槽函数是一类特殊的功能的函数,也可以作为类的普通成员函数来使用 在Qt中槽函数的所有者也是某个类的实例对象。 信号和槽的关系 在Qt中我…...
layui各种事件无效(例如表格重载或 分页插件按钮失效)的解决方法
下图是我一个系统的操作日志,在分页插件右下角嵌入了一个导出所有数据的按钮 ,代码没有任何问题,点击导出按钮却失效 排查之后,发现表格标签table定义了ID又定义了lay-filter,因我使用的layui从2.7.6升级到2.8.11&…...
flutter开发实战-父子Widget组件调用方法
flutter开发实战-父子Widget组件调用方法 在最近开发中遇到了需要父组件调用子组件方法,子组件调用父组件的方法。这里记录一下方案。 一、使用GlobalKey 父组件使用globalKey.currentState调用子组件具体方法,子组件通过方法回调callback方法调用父组…...
策略模式的实现与应用:掌握灵活算法切换的技巧
文章目录 常用的设计模式有以下几种:一.创建型模式(Creational Patterns):二.结构型模式(Structural Patterns):三.行为型模式(Behavioral Patterns):四.并发…...
当ChatGPT应用在汽车行业,具体有哪些场景?
ChatGPT有潜力彻底改变汽车行业并将其提升到新的高度。在ChatGPT的加持下,该行业的多个领域都将取得重大变化。 利用ChatGPT作更高级的虚拟助理 你可能用过现有的虚拟助理,它们一系列的回复有时候让人不得不感叹一句“人工智障”!然而&a…...
行为型-中介者模式(Mediator Pattern)
概述 中介者模式(Mediator Pattern)是一种行为型设计模式,它通过封装一系列对象之间的交互方式,使这些对象能够互相通信而不需要直接相互引用。中介者模式通过集中控制对象的交互,使得对象之间的耦合度降低࿰…...
Kibana+Prometheus+node_exporter 监控告警部署
下载好三个软件包 一、prometheus安装部署 1、解压 linxxubuntu:~/module$ tar -xvf prometheus-2.45.0-rc.0.linux-amd64.tar.gz 2、修改配置文件的IP地址 # my global config global:scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is ever…...
【前端知识】JavaScript——设计模式(工厂模式、构造函数模式、原型模式)
【前端知识】JavaScript——设计模式(工厂模式、构造函数模式、原型模式) 一、工厂模式 工厂模式是一种众所周知的设计模式,广泛应用于软件工程领域,用于抽象创建特定对象的过程。 优点:可以解决创建多个类似对象的…...
未来的算法备案法规:创新和安全如何兼顾?
随着科技的快速发展,算法正逐步渗透到我们生活的各个方面,从推荐引擎到自动驾驶,从医疗诊断到金融交易,这一现象既充满希望,也充满了挑战。其中一个关键的挑战就是如何设计和实施有效的算法备案法规,以促进…...
pycharm 使用远程服务器 jupyter (本地jupyter同理)
1. 远程服务器miniconda 环境中创建jupyter环境 # 1. 激活环境 conda activate envname#2. 在环境中安装jupyter pip install jupyter # 或者 conda install jupyter#3. 生成jupyter_notebook_config.py文件 jupyter notebook --generate-config#4. 设置密码 jupyter noteboo…...
leetcode 376. 摆动序列
2023.7.28 本题思路是定义一个 direct变量记录上一次摆动是上坡还是下坡 。 然后在一个for循环中循环判断当前摆动和上一次摆动是否一致,如果不一致则视为一次摆动。 如果前后元素值相等得话,直接continue进入下一次循环。 下面看代码: clas…...
【图像处理】使用自动编码器进行图像降噪(改进版)
阿里雷扎凯沙瓦尔兹 一、说明 自动编码器是一种学习压缩和重建输入数据的神经网络。它由一个将数据压缩为低维表示的编码器和一个从压缩表示中重建原始数据的解码器组成。该模型使用无监督学习进行训练,旨在最小化输入和重建输出之间的差异。自动编码器可用于降维、…...
MySQL大数据量分页查询方法及其优化
---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适应场景: 适用于数据量较少的情况(元组百/千级) ---原因/缺点: 全表扫描,速度会很慢 且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3). L…...
dataTable转成对象、json、list
datatable转换成list集合 public static T TableToEntity<T>(DataTable dt, int rowindex 0, bool isStoreDB true){Type type typeof(T);T entity Activator.CreateInstance<T>();if (dt null){return entity;}DataRow row dt.Rows[rowindex];PropertyInfo…...
ubuntu环境安装centos7虚拟机网络主机不可达,ping不通
【NAT模式下解决】1.首先vi /etc/sysconfig/network-scripts/ifcfg-ens33检查ONBOOTyes,保存 2.输入systemctl restart network命令重启网关...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
