高通 P-sensor 阈值调整

news2024/12/26 23:03:58

阈值效果debug

        距离传感器调试基本没有太多工作量,主要根据整机来调整阈值,选择最合适的 P-Sensor 感应效果。高通平台sensor代码主要在modem侧,阈值设置是在AP侧,对应配置文件一般是:

vendor/qcom/proprietary/sensors-see/registry/config/device/bengal_epl_0.json

    ".ps":{
      "owner": "sns_epl",
      ".fac_cal":{
        "owner": "sns_epl",
        "near_threshold":{ "type": "flt", "ver": "2",
          "data": "1600.0"
        },
        "far_threshold":{ "type": "flt", "ver": "2",
          "data": "1300.0"
        },
        "ctir_config":{ "type": "flt", "ver": "0",
          "data": "0.0"
        }
      },

        near_threshold 值表示靠近阈值,far_threshold 表示远离阈值。遮挡物距离 P-sensor 越近,则数值越大。一般 far_threshold 和 near_threshold 需要预留一定间隔,避免遮挡物处于临界距离时,P-sensor 频繁的在遮挡(0)和无遮挡(5)两种状态切换。

         Debug时候需要注意:修改后可以手动push到设备,但需要手动清空旧文件,然后进行同步,步骤如下。

adb wait-for-device root
adb wait-for-device remount
adb shell rm /vendor/etc/sensors/config/bengal_epl*
adb push bengal_epl_0.json /vendor/etc/sensors/config/
adb shell chmod 644 /vendor/etc/sensors/config/bengal_epl_0.json
adb shell rm  /mnt/vendor/persist/sensors/registry/registry/*
adb shell sync
adb reboot

        注:Debug 完成后,正式提交时,需要更新下 near_threshold/far_threshold 中ver值,进行 +1,否则由于这个配置值是被初始化保存在 persist 分区,而 persist 分区组装时是不更新的,不会重新初始化。如果文件版本号也不修改的情形下,系统不会重新加载配置,无法生效。

异常时抓取 Sensor log

        由于sensor主要代码都在BP侧,抓取kernel log意义不大,需要抓取QXDM log进行分析。QXDM 状态栏中选择 Tools - CFG File Generator 。只选择 SNS 过滤其他log。

 在过滤后的log中,搜索 epl_sensor 字段,找与PS相关日志进行分析。

SENSOR EXT/Error [sns_epl_sensor_instance_island.c     77] Received invalid event id=1025  
SENSOR EXT/Low [sns_epl_sensor_instance_island.c     69] IRQ event!  
SENSOR EXT/High [sns_epl_hal_island.c   2070] [epl_get_data_dri]: xxxxxxxxxxxxxxxxx  
SENSOR EXT/High [sns_epl_hal_island.c   2071] [epl_get_data_dri]: enable_pflag=1, enable_lflag=0  
SENSOR EXT/High [sns_epl_hal_island.c   1466] ps: ~~~~ PS ~~~~~ 
SENSOR EXT/High [sns_epl_hal_island.c   1467] ps: i2c_read_data = 0xf
SENSOR EXT/High [sns_epl_hal_island.c   1470] ps: sat = 0x0
SENSOR EXT/High [sns_epl_hal_island.c   1471] ps: cmp h = 0x0, l = 0x8
SENSOR EXT/High [sns_epl_hal_island.c   1472] ps: int_flag = 0x4
SENSOR EXT/High [sns_epl_hal_island.c   1473] ps: cmp_rstn = 0x2, lock = 1
SENSOR EXT/High [sns_epl_hal_island.c   1474] [epl_sensor_read_ps]: data = 0
SENSOR EXT/High [sns_epl_hal_island.c   1475] [epl_sensor_read_ps]: ir data = 3351
SENSOR EXT/High [sns_epl_hal_island.c   1139] [set_psensor_intr_threshold] - rc=0, low_thd = 1200, high_thd = 1500 
SENSOR EXT/High [sns_epl_hal_island.c   1704] [epl_sensor_ps_report]: -------------------  ps_status=1  

         上面的log中。set_psensor_intr_threshold 表示bengal_epl_0中设置的阈值。epl_sensor_read_ps 中data值是当前实际传感器感应值,为0表示无遮挡物;ir data是红外灯的值,一般是一个固定范围值,如果偏差大,那可能是ir灯有问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/697342.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【博客679】LVS NAT模式与FULLNAT模式原理与配置差别

LVS NAT模式与FULLNAT模式原理与配置差别 注意: LVS NAT模式是LVS原生的一种工作方式,而FULLNAT是在NAT模式下通过配置SNAT来 实现FULLNAT的,而且配合SNAT这部分是靠我们自己来实现的 1、LVS NAT模式原理与特点 NAT模式的数据包请求流程&…

基于matlab使用校准相机拍摄的两张图像中恢复相机运动并重建场景的3D结构(附源码)

一、前言 运动结构 (SfM) 是从一组 3-D 图像估计场景的 2-D 结构的过程。此示例演示如何从两个图像估计校准相机的姿势,将场景的三维结构重建为未知比例因子,然后通过检测已知大小的对象来恢复实际比例因子。 此示例演示如何从使…

如何开一家真人手办店?

从目前的情况来看,在3D建模这一个行业里,真人手办算是一个不错的风口,之前在圈子里刮起了一阵浪潮。手办大家都接触过,真人手办简单来说就是把以前手办的角色变成了真人,作为礼物和纪念品再合适不过。 许多人对这个新生…

【软件安装】Linux系统中安装Nginx服务器(Ubuntu系统)

这篇文章,主要介绍Linux系统中安装Nginx服务器(Ubuntu系统)。 目录 一、Linux安装Nginx 1.1、下载nginx安装包 (1)第一种方式 (2)第二种方式 1.2、上传nginx压缩包到Linux服务器 1.3、解压…

新项目搞完啦!!!

大家好,我是鱼皮。 经过了 7 场直播,总时长近 20 小时,我在 自己的编程导航 的第 5 个 全程直播开发 的项目 —— 智能 BI 项目,完结啦! 我在这里对该项目做一个简单的总结,希望让更多需要它的同学看到&am…

爬虫-爬取Bing词典单词相关数据

主要爬取的数据如图片中的红框所示: 爬取效果如下所示: 具体爬虫代码私我~

Seata 四种模式对比总结

一、前言 通过以下系列章节: docker-compose 实现Seata Server高可用部署 | Spring Cloud 51 Seata AT 模式理论学习、事务隔离及部分源码解析 | Spring Cloud 52 Spring Boot集成Seata利用AT模式分布式事务示例 | Spring Cloud 53 Seata XA 模式理论学习、使用…

uniapp中微信小程序不能编译style绑定方法的解决方案

uniapp中动态style问题 这是我的代码设置了根据传参显示不同字体颜色和不同背景色 这两个方法我都写在methods中 methods: {// // 添加不同背景颜色getBackColor(val) {let color "";switch (val[4]) {case 0:color background:${this.colors[0]};break;case 1:col…

Python中的for循环语句及其应用举例(等差数列求和、阶乘、寻找最大值)

Python中的for循环语句及其应用举例(等差数列求和、阶乘、寻找最大值) 在学习任何编程语言的时候,不熟悉判断选择结构和循环结构,就难以发挥计算机优秀的计算能力和提高学习工作效率。本文将重点讲解Python中的for循环语句,并举例等差数列求…

数据分析:2023 最值得投资的 AI 公司榜单

文章目录 1 AI 公司的火爆程度和发展趋势1.1 AI 市场的规模和增长趋势1.2 全球 AI 公司数量和分布情况1.3 我们如何把握 AI 风口? 2 方法一:网络数据采集 - 使用亮数据代理2.1 动态 ip 代理,获取数据2.2 浏览器代理 3 方法二:网络…

Linux:nginx虚拟主机

基于域名 cd /usr/local/nginx/html/ mkdir aaa mkdir bbb echo www.aaa.com > aaa/index.html echo www.bbb.com > bbb/index.html vim /usr/local/nginx/conf/nginx.conf 修改server中的配置 server {listen 80;server_name www.benet.com;charset utf-8;access_log l…

spring boot项目敏感配置信息如何加密?

一般情况下,spring boot项目为了能够实时刷新配置信息,都会把配置文件放在nacos之类的配置中心上。但是这样就会存在一个问题,一些比较敏感的配置信息,比如数据库密码,一旦被泄露,就会有严重的数据安全问题…

剩余电流式电气火灾监控系统在火力发电厂的应用

张心志 安科瑞电气股份有限公司 上海嘉定 201801 摘要:本文首先指出了在火力发电厂中应用电气火灾监控系统的重要性,接着研究分析了电气火灾监控系统的应用情况,主要从 系统简介、电气火灾原因等方面进行了分析。*后从配电箱、火灾监控设备…

如何画时序图

10年产品经理教你3步画好UML时序图,轻松掌握流程分析利器【建议收藏】 - 知乎 转自知乎 上次介绍了活动图,这次分享 UML 中,另一种流程分析利器——时序图。 以前每次要分析流程,我都会用活动图。直到有一次,我面对…

ChatGPT伪原创:智能AI助手助力文章创作

智能AI助手助力文章创作 随着人工智能技术的不断发展,智能AI助手正逐渐成为文章创作的得力工具。无论是在写作过程中提供灵感和创意,还是在文章编辑和校对中提供帮助,智能AI助手都能为作者节省时间和精力,提高文章质量。本文将从…

剑指 Offer 55 - I. 二叉树的深度 / LeetCode 104. 二叉树的最大深度(二叉树后序遍历,回溯传递值)

题目: 链接:剑指 Offer 55 - I. 二叉树的深度;LeetCode 104. 二叉树的最大深度 难度:简单 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条…

Java 针对Word模板内容替换输出

对应依赖 <repositories><!-- 使用 Free Spire.Doc for Java 的jar包实现替换word中的内容--><repository><id>com.e-iceblue</id><name>e-iceblue</name><url>https://repo.e-iceblue.cn/repository/maven-public/</url&…

高校社团管理系统

目录 一、前言 二、运行截图 &#xff08;一&#xff09;登录注册界面 &#xff08;二&#xff09;资讯管理 &#xff08;三&#xff09;用户管理 &#xff08;四&#xff09;账户管理 &#xff08;三&#xff09;关于获取 一、前言 这是一个高校社团管理系统。编程语言…

汇总一些高考填报志愿相关的资源,希望对大家有帮助

一、夸克高考 夸克有AI志愿填报专题&#xff0c;首页就能看到。 输入信息会展示可报考学校专业信息&#xff0c;比较直观。 相比各种分析&#xff0c;更能定位自己想要报考的学校&#xff01; 二、张雪峰志愿填报资源 三、框框大学 网站里的建议涵盖了中学选科/高考志愿/大…

抖音seo矩阵系统源代码分享

一、视频批量生成&#xff0c;文字转语音部分 $breadcrumbs [[title > AI视频创意, link > #],[title > 开始创作, link > ], ]; $this->buildBreadcrumbs($breadcrumbs); //搜索专用 $keyword_type $this->request->getStrParam(keyword_type); $keywo…