UWB功耗大数据插桩调研
一、摘要
UWB功耗点 | 插桩点 | 日志关键字 | 电流 |
蓝牙持锁 | BatteryStats的锁统计 | vendor_bluetooth_lock | 30~40mA |
测距 | UwbSessionManager.startRanging UwbSessionManager.stoptRanging 或接入fadiKey Uwb状态广播 "com.fadiui.dkservice.action.uwb.state.change" | startRanging|stopRanging|UwbUciCore | 60~90mA (无持锁测距~持锁测距) |
初步结论:可行,加下代码,后面实测下是否正确触发。
UWB 命令集:
adb shell dumpsys uwb
adb shell cmd uwb help
二、UWB架构
2.1 UWB 堆栈架构
UWB 堆栈由 UWB Mainline 模块和 UWB 芯片供应商提供的 HAL 实现组成。
2.2 UWB framework
三、功耗相关日志
3.1 蓝牙持锁日志
日志关键字:vendor_bluetooth_lock
AP_Log/50_2023-07-29_101149/kernel.txt:8866:07-29 10:13:32.909 10241 10241 I PM : PM: Pending Wakeup Sources: vendor_bluetooth_lock 898000.qcom,qup_uart
AP_Log/50_2023-07-29_101149/kernel.txt:8870:07-29 10:13:32.979 10241 10241 I Abort : Pending Wakeup Sources: vendor_bluetooth_lock 898000.qcom,qup_uart
AP_Log/50_2023-07-29_101149/main.txt:34388:07-29 10:17:02.969 1301 1301 W binder:1301_2: type=1400 audit(0.0:838): avc: denied { read } for name="ssrdump" dev="dm-14" ino=259 scontext=u:r:hal_bluetooth_default:s0 tcontext=u:object_r:vendor_ramdump_vendor_data_file:s0 tclass=dir permissive=0
AP_Log/51_2023-07-29_101721_boot/kernel.txt:3286:07-29 10:17:38.461 132 132 I [fadi]: active wakeup source: vendor_bluetooth_lock, active_since: 848 ms , active_count: 3 , pending suspend count: 0
AP_Log/51_2023-07-29_101721_boot/kernel.txt:4219:07-29 10:18:58.329 132 132 I [fadi]: active wakeup source: vendor_bluetooth_lock, active_since: 1049 ms , active_count: 12 , pending suspend count: 0
AP_Log/51_2023-07-29_101721_boot/kernel.txt:5421:07-29 10:20:08.471 132 132 I [fadi]: active wakeup source: vendor_bluetooth_lock, active_since: 161 ms , active_count: 17 , pending suspend count: 0
AP_Log/51_2023-07-29_101721_boot/kernel.txt:9321:07-29 10:29:00.609 132 132 I [fadi]: active wakeup source: vendor_bluetooth_lock, active_since: 366 ms , active_count: 42 , pending suspend count: 0
3.2 UWB测距
日志关键字:startRanging|stopRanging|UwbUciCore
AP_Log/51_2023-07-29_101721_boot/main.txt:58342:07-29 10:17:42.868 1862 5087 I UwbUciCore: uwb_ucif_proc_ranging_data: ranging_measures_length = 48 range_data_ntf_len = 232
AP_Log/51_2023-07-29_101721_boot/main.txt:58343:07-29 10:17:42.868 1862 5087 I UwbUciCore: uwa_dm_uwb_response_cback:UWB_VENDOR_SPECIfIC_UCI_NTF_EVT(0x401d)
AP_Log/51_2023-07-29_101721_boot/main.txt:58347:07-29 10:17:42.869 1862 5087 I UwbUciCore: uwa_dm_uwb_response_cback:UWB_RANGE_DATA_REVT(0x4011)
AP_Log/51_2023-07-29_101721_boot/main.txt:58380:07-29 10:17:43.061 1862 5087 I UwbUciCore: uwb_ucif_process_event enter gid:0x62 status:0x1
AP_Log/51_2023-07-29_101721_boot/main.txt:58381:07-29 10:17:43.061 1862 5087 I UwbUciCore: uwb_ucif_process_event: UWB received ntf gid:2
AP_Log/51_2023-07-29_101721_boot/main.txt:58382:07-29 10:17:43.061 1862 5087 I UwbUciCore: uwb_ucif_proc_ranging_data: ranging_measures_length = 48 range_data_ntf_len = 232
AP_Log/51_2023-07-29_101721_boot/main.txt:58383:07-29 10:17:43.061 1862 5087 I UwbUciCore: uwa_dm_uwb_response_cback:UWB_VENDOR_SPECIfIC_UCI_NTF_EVT(0x401d)
AP_Log/51_2023-07-29_101721_boot/main.txt:58387:07-29 10:17:43.061 1862 5087 I UwbUciCore: uwa_dm_uwb_response_cback:UWB_RANGE_DATA_REVT(0x4011)
AP_Log/51_2023-07-29_101721_boot/main.txt:58480:07-29 10:17:43.255 1862 5087 I UwbUciCore: uwb_ucif_process_event enter gid:0x62 status:0x2
AP_Log/51_2023-07-29_101721_boot/main.txt:58481:07-29 10:17:43.255 1862 5087 I UwbUciCore: uwb_ucif_process_event: UWB received ntf gid:2
AP_Log/51_2023-07-29_101721_boot/main.txt:58482:07-29 10:17:43.255 1862 5087 I UwbUciCore: uwb_ucif_proc_ranging_data: ranging_measures_length = 48 range_data_ntf_len = 232
AP_Log/51_2023-07-29_101721_boot/main.txt:58483:07-29 10:17:43.255 1862 5087 I UwbUciCore: uwa_dm_uwb_response_cback:UWB_VENDOR_SPECIfIC_UCI_NTF_EVT(0x401d)
四、UWB 命令集
UWB 命令集:
adb shell dumpsys uwb
adb shell cmd uwb help
adb shell cmd uwb status
adb shell cmd uwb get-country-code
adb shell cmd uwb get-log-mode
adb shell cmd uwb enable-uwb
adb shell cmd uwb disable-uwb
adb shell cmd uwb simulate-app-state-change
adb shell cmd uwb start-fira-ranging-session
adb shell cmd uwb start-ccc-ranging-session
adb shell cmd uwb start-radar-session
adb shell cmd uwb reconfigure-fira-ranging-session
adb shell cmd uwb get-ranging-session-reports
adb shell cmd uwb get-all-ranging-session-reports
adb shell cmd uwb stop-ranging-session
adb shell cmd uwb stop-radar-session
adb shell cmd uwb stop-all-ranging-sessions
adb shell cmd uwb stop-all-radar-sessions
adb shell cmd uwb get-specification-info
adb shell cmd uwb enable-diagnostics-notification
adb shell cmd uwb disable-diagnostics-notification
adb shell cmd uwb take-bugreport
相关文章:

UWB功耗大数据插桩调研
一、摘要 UWB功耗点 插桩点 日志关键字 电流 蓝牙持锁 BatteryStats的锁统计 vendor_bluetooth_lock 30~40mA 测距 UwbSessionManager.startRanging UwbSessionManager.stoptRanging 或接入fadiKey Uwb状态广播 "com.fadiui.dkservice.action.uwb.state.change&q…...
郭羽冲IOI2024参赛总结
非常荣幸能代表中国参加第 36 36 36 届国际信息学奥林匹克竞赛( I O I 2024 IOI2024 IOI2024)。感谢 C C F CCF CCF 为我们提供竞赛的平台,感谢随行的老师们一路上为我们提供的帮助与支持。 在每场比赛的前一个晚上,领队、副领…...

03:Spring之Web
一:Spring整合web环境 1:web的三大组件 Servlet:核心组件,负责处理请求和生成响应。 Filter:用于请求和响应的预处理和后处理,增强功能。 Listener:用于监听 Web 应用中的事件,实…...

lx-music落雪音乐-开源免费听歌软件[提供最新音源使用, 支持全网平台, 支持无损音乐下载]
lx-music_落雪音乐 链接:https://pan.xunlei.com/s/VOIpEt1xqf0un-vEQilidhjIA1?pwdgcux#...

129,【2】buuctf [BJDCTF2020]EzPHP
进入靶场 查看源代码 看到红框就知道对了 她下面那句话是编码后的,解码 1nD3x.php <?php // 高亮显示当前 PHP 文件的源代码,通常用于调试和展示代码结构 highlight_file(__FILE__); // 设置错误报告级别为 0,即不显示任何 PHP 错误信息…...

Python 面向对象(类,对象,方法,属性,魔术方法)
前言:在讲面向对象之前,我们先将面向过程和面向对象进行一个简单的分析比较,这样我们可以更好的理解与区分,然后我们在详细的讲解面向对象的优势。 面向过程(Procedure-Oriented Programming,POP࿰…...
C语言之扫雷
C语言之扫雷 game.hgame.ctest.c 参考 https://blog.csdn.net/m0_62391199/article/details/124694375 game.h #pragma once #include <stdio.h> #include <time.h> #include <stdlib.h>#define ROW 9 #define COL 9#define ROWS ROW2 #define COLS COL2#de…...

半导体制造工艺讲解
目录 一、半导体制造工艺的概述 二、单晶硅片的制造 1.单晶硅的制造 2.晶棒的切割、研磨 3.晶棒的切片、倒角和打磨 4.晶圆的检测和清洗 三、晶圆制造 1.氧化与涂胶 2.光刻与显影 3.刻蚀与脱胶 4.掺杂与退火 5.薄膜沉积、金属化和晶圆减薄 6.MOSFET在晶圆表面的形…...

Ollama+DeepSeek R1+AnythingLLM训练自己的AI智能助手
1.下载Ollama安装 1.1.安装Ollama Ollama官网:Ollama 下载Ollama,点击“Download”按钮。 根据电脑操作系统,下载合适的版本即可。 下载完成后点击安装,完成后安装窗口会自动关闭,你的系统托盘图标会出现一个Ollama图标。 1.2.…...

基于java手机销售网站设计和实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

5-R循环
R 循环 有的时候,我们可能需要多次执行同一块代码。一般情况下,语句是按顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。 编程语言提供了更为复杂执行路径的多种控制结构。 循环语句允许我们多…...

Qlabel 每五个一换行 并、号分割
学习点 Qlabel 每五个一换行 并、号分割 QString MainWindow::formatHobbies(const std::set<QString>& hobbies) {QString formattedHobbies;int count 0;for (const QString& hobby : hobbies) {if (count > 0 && count % 5 0)formattedHobbies…...

加速PyTorch模型训练:自动混合精度(AMP)
在深度学习领域,模型训练的速度和效率尤为重要。为了提升训练速度并减少显存占用(较复杂的模型中),PyTorch自1.6版本起引入了自动混合精度(Automatic Mixed Precision, AMP)功能。 AMP简单介绍 是一种训练…...

【py】python安装教程(Windows系统,python3.13.2版本为例)
1.下载地址 官网:https://www.python.org/ 官网下载地址:https://www.python.org/downloads/ 2.64版本或者32位选择 【Stable Releases】:稳定发布版本,指的是已经测试过的版本,相对稳定。 【Pre-releases】&#…...
Django REST Framework:如何获取序列化后的ID
Django REST Framework:如何获取序列化后的ID 😄 嗨,小伙伴们!今天我们来聊一聊Django REST Framework(简称DRF)中一个非常常见的操作:如何获取序列化后的ID。对于那些刚入门的朋友们ÿ…...

QT修仙笔记 事件大圆满 闹钟大成
学习笔记 牛客刷题 闹钟 时钟显示 通过 QTimer 每秒更新一次 QLCDNumber 显示的当前时间,格式为 hh:mm:ss,实现实时时钟显示。 闹钟设置 使用 QDateTimeEdit 让用户设置闹钟时间,可通过日历选择日期,设置范围为当前时间到未来 …...

Leetcode - 149双周赛
目录 一、3438. 找到字符串中合法的相邻数字二、3439. 重新安排会议得到最多空余时间 I三、3440. 重新安排会议得到最多空余时间 II四、3441. 变成好标题的最少代价 一、3438. 找到字符串中合法的相邻数字 题目链接 本题有两个条件: 相邻数字互不相同两个数字的的…...

解决 ComfyUI-Impact-Pack 中缺少 UltralyticsDetectorProvider 节点的问题
解决 ComfyUI-Impact-Pack 中缺少 UltralyticsDetectorProvider 节点的问题 1. 安装ComfyUI-Impact-Pack 首先确保ComfyUI-Impact-Pack 已经下载 地址: https://github.com/ltdrdata/ComfyUI-Impact-Pack 2. 安装ComfyUI-Impact-Subpack 由于新版本的Impact Pack 不再提供这…...
使用Kickstart配置文件封装操作系统实现Linux的自动化安装
使用Kickstart配置文件封装操作系统实现Linux的自动化安装 创建ks.cfg配置文件 可以使用已经安装完成的Linux操作系统中的/root目录下的anaconda.cfg配置文件 注意,配置文件会因为kickstart的版本兼容性的问题导致无法安装报错需要在实际使用过程中删除某些参数 …...
Android笔记【snippet】
一、 6、Card及ConstraintLayout线性布局 //定义单独的机器人单独一行的卡片 Composable fun RobotCard(robot: Robot,navController:NavController){Card(modifier Modifier.fillMaxWidth().wrapContentHeight().padding(5.dp),colors CardDefaults.elevatedCardColors(co…...

C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...