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命令重启网关...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)
RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发,后来由Pivotal Software Inc.(现为VMware子公司)接管。RabbitMQ 是一个开源的消息代理和队列服务器,用 Erlang 语言编写。广泛应用于各种分布…...
