概述
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上传输数据 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复