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

金阊企业建设网站公司兵团建设环保局网站

金阊企业建设网站公司,兵团建设环保局网站,免费注册店铺位置,建站快车源码resample sensor 的一个问题。 背景: 项目要求,发送多个数据到 sensor-hal 上去,发现无论怎样,在 sensor-hal 上都 只有一个数据。 resample sensor 是重新采样,这个怎么理解的,我的理解是: 假设 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

http://www.yayakq.cn/news/916367/

相关文章:

  • 网站建设与管理答案网络营销方式的案例
  • 中国建设银行宁波分行网站dw网页制作完成后如何保存
  • 深圳做外贸网站多少钱长宁苏州网站建设
  • 韩国有哪些专业做汽车的网站站群系列服务器做视频网站
  • 高端品牌网站建设服务我要浏览国外网站怎么做
  • 北京网站优化厂家海外网站加速
  • 如何搭建aspx网站中国风网站表现
  • 重庆彼客的网站是谁家做的石家庄尚武科技
  • 荣耀商城官网网站服务器登录入口
  • 做一个网站需要什么条件网页模板之家
  • 经营网站赚钱淘宝官网首页登陆
  • 怎么快速做网站排名达州网站开发qinsanw
  • 浦口区网站建设售后服务公众号可以做分类信息网站吗
  • 高端大气企业网站wordpress最好用的采集插件
  • jsp网站开发 孟浩pdf腾讯云网站备案吗
  • 西安网易网站建设付网站建设服务费什么科目
  • 网站改版影响排名吗手机网站建设地址
  • 茂名住房和城乡建设部网站做婚纱的网站
  • 用v9做的网站上传服务器作者联合开发的小说网站叫什么
  • 网站建设 我们的优势建行网站关于我们
  • 电子商务网站建设运营长春市宽城区建设局网站
  • 网站建设一条静安区品牌网站建设
  • 网站文章质检数据指数
  • 表格网站怎么做米拓建站怎么样
  • 个人做视频网站烧钱网站开发的相关网站
  • 好的做淘宝详情页的网站有哪些正规的徐州网站建设
  • 网站上全景云台怎么做的用asp.net做的网站实例
  • 什么样的企业需要做网站上传网站标志
  • jquery网站右侧悬浮返回顶部带双二维码鼠标经过显示怎样做网站亮照亮标
  • 教育培训东莞网站建设怎么用自己电脑做服务器搭建网站