我是靠谱客的博主 难过大碗,最近开发中收集的这篇文章主要介绍SEE 中的数据结构及之间的关系sensor and sensor_instance创建一个sensor用户需要实现的接口管理sensor依赖的其他sensor:sns_suid_lookup_datasns_data_stream在sns_data_stream上传输数据 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

sensor and sensor_instance

sensor表示一个物理或者虚拟的sensor, sensor instance是具体化了一个配置如采样率

数据结构sensor管理sensor instance, 使用sensor callback function(framework 实现)  调入到 sensor framework 去创建、删除sensor instance等;

数据结构sensor instance 管理sns_request , 使用sensor instance callback (framework实现)调入到 sensor framework 去add/remove/get client request等;

创建一个sensor用户需要实现的接口

按照SEE framework的需求,实现一个sensor用户需要实现

1. 接口:sns_sensor_api 和sns_sensor_instance_api.

2. 保存为处理数据而需要的状态,xxx_sensor_state and xxx_sensor_instance_state, state的内存由frameowork分配和管理,可以保存一些全局变量。

管理sensor依赖的其他sensor:sns_suid_lookup_data

标示一个sensor的字符串数据变量是datatype, 标示一个sensor的ID是

获得SUID的方法是通过sns_stream: suid_stream以datatype为参数。

在xxx_sensor.c中获得依赖sensor的suid, xxx_sensor_instance.c创建访问suid的sns_stream, 然后通过stream发送config请求。

sns_data_stream

在sns_data_stream上传输数据 

sns_request

      if(NULL != state->amd_stream)
      {   
          SNS_INST_PRINTF(LOW, this, "Accel cal Sending on-change reqest to AMD");
          sns_request sensor_req = (sns_request){
              .message_id = SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG,
              .request_len = 0,  
              .request = NULL };
          创建sns_reques, 赋值 messageID, 调用stream api: send_request
          state->amd_stream->api->send_request(state->amd_stream, &sensor_req);
      }

client发送的sns_request: client request, 由xxx_sensor.c的xxx_set_client_request函数处理,函数内部会调用处理messageID: , SNS_STD_SENSOR_MSGID_SNS_STD_ON_CHANGE_CONFIG进而调用xxx_sensor_instance.c的set_client_config.

  sns_sensor_instance*
  sns_xxxx_set_client_request(sns_sensor *const this,
      sns_request const *curr_req,
      sns_request const *new_req,
      bool remove) {
  #if 0
 

sns_sensor_event

sensor_event的发送

      if (!pb_send_event(this, sns_xxxx_event_fields, &event,//payload
          sns_get_system_time(), SNS_PEDOMETER_MSGID_SNS_STEP_EVENT,//messagID 
          &xxxx_suid)// 谁发送的
          ) { 
      } pb_encode

 sensor_event的接收

sensor_instance_api: notify_event

通过stream_api处理数据:pb_decode

最后

以上就是难过大碗为你收集整理的SEE 中的数据结构及之间的关系sensor and sensor_instance创建一个sensor用户需要实现的接口管理sensor依赖的其他sensor:sns_suid_lookup_datasns_data_stream在sns_data_stream上传输数据 的全部内容,希望文章能够帮你解决SEE 中的数据结构及之间的关系sensor and sensor_instance创建一个sensor用户需要实现的接口管理sensor依赖的其他sensor:sns_suid_lookup_datasns_data_stream在sns_data_stream上传输数据 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部