当前位置: 首页 > news >正文

resample sensor

resample sensor 的一个问题。
背景: 项目要求,发送多个数据到 sensor-hal 上去,发现无论怎样,在 sensor-hal 上都 只有一个数据。
resample sensor 是重新采样,这个怎么理解的,我的理解是: 假设 sensor 采样率有 5/10/15HZ,上层那边发过来的 90ms, 没有这个挡位,则通过这个 resample 会纠正到 100ms(也就是10hz)进行采样
使用 see_workhorse 测试
./see_workhorse -debug=1 -display_events=1 -sensor=pressure -sample_rate=5 -duration=20
看到确实是有两个 payload 上来…

"events" : [{"msg_id" : 1025,"timestamp" : 14729396536,"payload" : {"data" : [1000.000000,990.000000],"status" : "SNS_STD_SENSOR_SAMPLE_STATUS_ACCURACY_HIGH"}}]
},

但是为什么, sensor-hal 上就只有一个数据呢?
后面发现,是被 resample 截取了

截取一段 代码,看下

static bool suid_lookup_cb(sns_sensor *const sensor,char const *data_type, sns_sensor_event *event)
{resampler_state *state =(resampler_state*)sensor->state->state;pb_istream_t stream = pb_istream_from_buffer((void*)event->event, event->event_len);sns_std_attr_event attr_event = sns_std_attr_event_init_default;sns_sensor_util_attrib attrib_list[] ={ {.sensor = sensor, .attr_id = SNS_STD_SENSOR_ATTRID_STREAM_TYPE},{.sensor = sensor, .attr_id = SNS_STD_SENSOR_ATTRID_EVENT_SIZE},{.sensor = NULL, .attr_id   = -1}};attr_event.attributes.funcs.decode = &sns_sensor_util_decode_attr_list;attr_event.attributes.arg = (void*)&attrib_list;if(!pb_decode(&stream, sns_std_attr_event_fields, &attr_event)){SNS_PRINTF(ERROR, sensor, "Error decoding attr event");}else{bool is_streaming = false;uint8_t axis_cnt = 0;int32_t event_size = 0;for(int i=0; i< ARR_SIZE(attrib_list); i++){if(SNS_STD_SENSOR_ATTRID_STREAM_TYPE == attrib_list[i].attr_id){is_streaming = (SNS_STD_SENSOR_STREAM_TYPE_STREAMING == attrib_list[i].attr_value);}if(SNS_STD_SENSOR_ATTRID_EVENT_SIZE == attrib_list[i].attr_id){event_size = attrib_list[i].attr_value;}}/* If expected attribute matched, store it */if (is_streaming){axis_cnt = resampler_get_axis_count(event_size);resampler_store_sensor(sensor, data_type, &state->suid_lookup_data, axis_cnt);}SNS_PRINTF(ERROR, sensor, "xuzhibang event_size:%d, axis_cnt:%d\n",event_size,axis_cnt);}return false;
}//  这个就是从 event size attribute 拿到的值..
/* Calculate the axis count of a sensor from its event size attribute */
static uint8_t resampler_get_axis_count(int32_t event_size)
{uint8_t axis_cnt = AXIS_CNT_DEFAULT;if (event_size > pb_overhead){axis_cnt = (event_size - pb_overhead)/sizeof(float);}return axis_cnt;
}

打印log ,看到 axis_cnt 这个值确实是为1,这个是从 event size attribute 得到的。

resampler_get_axis_count: 这个是决定 发送的个数。 可以看到会除以一个 sizeof(float)
所以我们在:直接发送PRESSURE_EVENT_SIZE 就行了。不需要 什么 sizeof(float)
static void XXX_publish_attributes(sns_sensor * const this)
{
{
float data[PRESSURE_EVENT_SIZE ] = {0}; //
state->encoded_event_len =
pb_get_encoded_size_sensor_stream_event(data, PRESSURE_EVENT_SIZE );
sns_std_attr_value_data value = sns_std_attr_value_data_init_default;
value.has_sint = true;
value.sint = state->encoded_event_len;
sns_publish_attribute(
this, SNS_STD_SENSOR_ATTRID_EVENT_SIZE, &value, 1, false);
}
}

我们修改 相关的 sensor 驱动的 XXX_publish_attributes 的 SNS_STD_SENSOR_ATTRID_EVENT_SIZE 上报的值,我们要上报几个,则 设置 PRESSURE_EVENT_SIZE 这个值为几,就ok 了。

最后说一下:
see_workhorse 与 sensors-hal 的区别是 : see_workhorse 会关闭 resample

相关文章:

resample sensor

resample sensor 的一个问题。 背景: 项目要求&#xff0c;发送多个数据到 sensor-hal 上去&#xff0c;发现无论怎样&#xff0c;在 sensor-hal 上都 只有一个数据。 resample sensor 是重新采样&#xff0c;这个怎么理解的&#xff0c;我的理解是&#xff1a; 假设 sensor 采…...

【Linux】多线程的相关知识点

一、线程安全 1.1 可重入 VS 线程安全 1.1.1 概念 线程安全&#xff1a;多个线程并发执行同一段代码时&#xff0c;不会出现不同的结果。常见对全局变量或者静态变量进行操作&#xff0c;并且没有锁的保护的情况下&#xff0c;会出现问题。重入&#xff1a;同一个函数被不同…...

Java反射详解

Java反射 一.什么是反射 我们使用的一些像框架&#xff0c;tomcat&#xff0c;或者一些其他的组件(jackson 对象–>json)。他们可以做到给他什么类名&#xff0c;就可以创建给定类的对象&#xff0c;并调用该对象的方法和属性。这是如何做到的&#xff1f; 当他们加载我们…...

Spring Boot与Apache Kafka集成的深度指南

Spring Boot与Apache Kafka集成的深度指南 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在现代分布式系统中&#xff0c;消息队列的作用愈发重要&#xff0…...

甄选版“论软件系统架构评估”,软考高级论文,系统架构设计师论文

论文真题 对于软件系统,尤其是大规模的复杂软件系统来说,软件的系统架构对于确保最终系统的质量具有十分重要的意义,不恰当的系统架构将给项目开发带来高昂的代价和难以避免的灾难。对一个系统架构进行评估,是为了:分析现有架构存在的潜在风险,检验设计中提出的质量需求,…...

uniapp开发企业微信内部应用

最近一直忙着开发项目&#xff0c;终于1.0版本开发完成&#xff0c;抽时间自己总结下在项目开发中遇到的技术点。此次项目属于自研产品&#xff0c;公司扩展业务&#xff0c;需要在企业微信中开发内部应用。因为工作中使用的是钉钉&#xff0c;很少使用企业微信&#xff0c;对于…...

0122__linux之eventfd理解

linux之eventfd理解-CSDN博客 Linux fd 系列 — eventfd 是什么&#xff1f;-CSDN博客...

数学建模 —— 查找数据

目录 百度搜索技巧 完全匹配搜索&#xff1a;查询词的外边加上双引号“ ” 标题必含关键词&#xff1a;查询词前加上intitle: 搜索文档&#xff1a;空格再输入filetype:文件格式 去掉不想要的&#xff1a;查询词后面加空格后加减号与关键字 知网查文献 先看知网的硕博士…...

合并有序链表

合并有序链表 图解代码如下 图解 虽然很复杂&#xff0c;但能够很好的理解怎么使用链表&#xff0c;以及对链表的指针类理解 代码如下 Node* merge_list_two_pointer(List& list1, List& list2) {Node* new_head1 list1.head;Node* new_head2 list2.head;Node* s…...

【SpringBoot Web框架实战教程】05 Spring Boot 使用 JdbcTemplate 操作数据库

不积跬步&#xff0c;无以至千里&#xff1b;不积小流&#xff0c;无以成江海。大家好&#xff0c;我是闲鹤&#xff0c;微信&#xff1a;xxh_1459&#xff0c;十多年开发、架构经验&#xff0c;先后在华为、迅雷服役过&#xff0c;也在高校从事教学3年&#xff1b;目前已创业了…...

Spark基于DPU的Native引擎算子卸载方案

1.背景介绍 Apache Spark&#xff08;以下简称Spark&#xff09;是一个开源的分布式计算框架&#xff0c;由UC Berkeley AMP Lab开发&#xff0c;可用于批处理、交互式查询&#xff08;Spark SQL&#xff09;、实时流处理&#xff08;Spark Streaming&#xff09;、机器学习&a…...

Mini2440 start.s 修改支持串口输出,方便调试 (四)

经常会遇到点板子的时候&#xff0c;板子没有任何反应&#xff01;怎么知道板子有没有在正常启动&#xff0c;在uboot阶段 start.s 中加入串口打印信息是很有必要的&#xff01; 输出串口信息 ***UART:mini-2440-uBoot*** ***UART:mini-2440-uBoot*** ***UART:mini-2440-uBoo…...

【教程】几种不同的RBF神经网络

本站原创文章&#xff0c;转载请说明来自《老饼讲解-机器学习》www.bbbdata.com 目录 一、经典RBF神经网络1.1.经典径向基神经网络是什么1.2.经典径向基神经网络-代码与示例 二、广义回归神经网络GRNN2.1.广义回归神经网络是什么2.2.广义回归神经网络是什么-代码与示例 三、概率…...

【Liunx-后端开发软件安装】Liunx安装FDFS并整合nginx

【Liunx-后端开发软件安装】Liunx安装nacos 文章中涉及的相关fdfs相关软件安装包请点击下载&#xff1a; https://download.csdn.net/download/weixin_49051190/89471122 一、简介 FastDFS是一个开源的轻量级分布式文件系统&#xff0c;它对文件进行管理&#xff0c;功能包括…...

【Java笔记】Flyway数据库管理工具的基本原理

文章目录 1. 工作流程2. 版本号校验算法3. 锁机制3.1 为什么数据库管理工具需要锁3.2 flyway的锁机制 Reference 最近实习做的几个项目都用到了Flyway来做数据库的版本管理&#xff0c;顺便了解了下基本原理&#xff0c;做个记录。 详细的使用就不写了&#xff0c;网上教程很多…...

国际数字影像产业园创业培训,全面提升创业能力!

国际数字影像产业园作为数字影像产业的创新高地&#xff0c;致力于提供全面的创业支持服务。其中&#xff0c;创业培训作为重要的组成部分&#xff0c;旨在通过系统的课程设置和专业的讲师团队&#xff0c;为创业者提供从基础到进阶的全方位指导&#xff0c;帮助他们在数字影像…...

pyqt5 制作视频剪辑软件,切割视频

该软件用于切割视频&#xff0c;手动选取视频片段的起始帧和结束帧并保存为json文件。gui界面如下&#xff1a;包含快进、快退、暂停等功能&#xff0c; 代码如下&#xff1a; # codingUTF-8 """ theme: pyqt5实现动作起始帧和结束帧的定位&#xff0c;将定位到…...

VUE----通过nvm管理node版本

使用 NVM&#xff08;Node Version Manager&#xff09;来管理和切换 Node.js 版本是一个很好的选择。以下是在 苹果电脑macos系统 上使用 NVM 安装和切换 Node.js 版本的步骤&#xff1a; 1. 安装 NVM 如果你还没有安装 NVM&#xff0c;可以按照以下步骤进行安装&#xff1a…...

R语言进行字符的替换和删减gsub,substr函数

目录 R语言读文件“-“变成“.“ 提取列字符前几个 提取列字符末尾几个 进行字母替换 paste0函数使用 长宽数据转换 R语言读文件“-“变成“.“ R语言读文件“-“变成“.“_r语言 列名中的-变成了点-CSDN博客 怎样将"."还原为"-" rm(list = ls()…...

2024年6月27日,欧盟REACH法规新增第31批1项SVHC高关注物质

ECHA公布第31批1项SVHC&#xff0c;物质已增至241项 2024年6月27日&#xff0c;ECHA公布第31批1项SVHC&#xff0c;总数达241项。新增物质未包括磷酸三苯酯&#xff0c;仍在评议中。REACH法规要求SVHC含量超0.1%需告知下游&#xff0c;出口超1吨须通报ECHA。SCIP通报要求SVHC含…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

Docker 本地安装 mysql 数据库

Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker &#xff1b;并安装。 基础操作不再赘述。 打开 macOS 终端&#xff0c;开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...