高通从SDM845平台开始,Sensor使用新的架构SEE(Sensors Execution Environment),和之前架构不同,新的架构有着太多的优点。

一、软件框图

二、新旧框架对比

从上图可以看到,新架构简化太多,SEE充当了Core层的重要角色。负责传送request,接收event。

三、SEE框架改进

四、设计概念

  • 框架组件按功能模块化
  • 集成至框架的所有实体均建模为传感器或服务
    • 传感器提供异步数据和事件
    • 服务是用于同步函数调用的统一API
  • 消息格式根据数据类型定义
    • 所有加速度计均支持在sns_acel.proto中定义的同一接口
  • 各传感器的唯一标识符(SUID)
    • 例如,BMA150为SUID X;LIS3DH为SUID Y;QTI Gravity为SUID Z
    • 支持复制传感器硬件
  • 传感器决定并发布所有属性
    • 供客户端使用信息;ORD、操作模式、功耗等
  • 未来的灵活性
    • 动态加载传感器驱动程序和算法

五、传感器之间的通信

说明:

  1. 传感器之间各个方向的通信均通过请求和事件消息执行

    1. 这些消息使用nanoPB生成器、编码器和解码器在协议区格式中定义
    2. 缓冲区长度、消息ID和时间戳(位于事件中)在由SEE框架管理的元数据内进行通信
  2. 发送的请求消息用于启用、禁止和/或配置数据流
    1. 请求消息始终针对特定的SUID
    2. 当目标传感器接收到消息后,就会将其发送至传感器实例进行适当处理
  3. 事件消息由传感器实例异步发送到其注册的客户端,这些客户端可以是其他传感器或者传感器实例

六、传感器和传感器实例

  • 每个传感器可以实例化一个或者多个传感器实例

    • 每个传感器实例运行在特定的配置环境中
    • 对传感器数据的任何请求,都将创建一个传感器实例或者共享现有实例
  • 传感器实例根据传感器确定的结果按需创建
    • 传感器完全管理其相应实例的生命周期和配置,并负责向其客户端发送配置更新和初始状态事件
    • 强烈建议厂商使用尽可能少的实例为尽可能多的客户端请求提供服务
    • 由实例生成的数据流会发送至所有活动客户端
  • 单个传感器实例可以由多个传感器共享和配置
    • 这种操作模式通常适用于硬件传感器组合驱动程序,其中传感器表示支持的数据类型,传感器实例是硬件通信和配置的唯一模块。

七、相关API

  • API 在以下文件中定义:

    • slpi_proc\ssc\inc\sns_sensor.h
    • slpi_proc\ssc\inc\sns_sensor_instance.h
    • slpi_proc\ssc\inc\sns_register.h
  • proto 文件包含协议缓冲区消息定义和文档:
    • 标准消息定义位于 slpi_proc\ssc\sensors\pb\sns_std_*.proto

      • sns_std.proto – 包含框架定义的消息 ID、标准请求消息、批处理规范、属性请求和事件以及错误事件消息
      • sns_std_sensor.proto – 包含请求的消息 ID、标准传感器的事件 API、流传输请求和事件消息、传感器样本状态类型、 标准属性 ID、通用属性类型和物理传感器配置事件消息
      • sns_std_type.proto – 包含通用 API 类型定义,如传感器 UID 消息、属性事件和值消息以及通用错误类型
      • sns_std_event_gated_sensor.proto – 包含事件门控传感器的 API,如配置消息和 API 文档
    • 物理传感器特定的 API 定义和文档位于传感器特定的 .proto 文件中,例如 sns_accel.proto、sns_proximity.proto、sns_motion_detect.proto 等
  • 平台传感器 API 定义和文档位于 \<root>\ssc\sensors\pb\。
    • slpi_proc\ssc\sensors\pb\sns_timer.proto
    • slpi_proc\ssc\sensors\pb\sns_interrupt.proto
    • slpi_proc\ssc\sensors\pb\sns_async_com_port.proto
  • SUID、注册表、诊断和 DAE 的框架相关 API 在以下文件中定义:
    • slpi_proc\ssc\framework\suid_sensor\pb\sns_suid.proto
    • slpi_proc\ssc\framework\registry\pb\sns_registry.proto
    • slpi_proc\ssc\framework\pb\sns_diag.proto
    • slpi_proc\ssc\framework\dae_sensor\pb\sns_dae.proto
  • 测试传感器
    • 标准传感器数据流传输测试位于 slpi_proc\ssc\sensors\test

1、sensor see框架相关推荐

  1. Mtk Sensor 驱动框架变更简要分析

    Mtk Android 8.0 以后版本,Sensor 部分主要修改了 data path 框架,原来数据通过输入子系统传递到应用层,现在采用 misc dev + poll 实现数据上报.下面以 G ...

  2. Sensor HAL框架分析之二

    1.1  Sensor应用程序框架 这部分对于上层写应用的朋友来比较熟悉,我们通过一个简单的应用来分析框架层和底层的实现. 通常编写一个传感器的应用程序有以下步骤: l  通过调用 Context.g ...

  3. 【转载】MTK Sensor 传感器驱动及系统框架 1. 【非常好】【mtk sensor 驱动框架】hwmsen_dev.c

    原创在:https://blog.csdn.net/wangjun7121/article/details/61916427 发现很多转的没有注明出处,这里添加出处,感谢作者. /*MTK senso ...

  4. 智能家居DIY教程连载(1) ——如何正确使用 Sensor 框架

    想要入门RT-Thread物联网操作系统的童鞋,出门左转这里走:https://www.rt-thread.org/document/site/ Hi~各位小伙伴们,距离 DIY 项目的发布已经有一周 ...

  5. 基于 RT-Thread 的智能家居 DIY 连载教程(1)——如何正确使用 Sensor 框架

    对 RT-Thread 的 Sensor 框架的理解与使用举例 如何正确使用 Sensor 框架?以 DS18B20 为例. 1. 任务清单 为了更好的讲解 Sensor 框架,我罗列了一份任务清单: ...

  6. Android Sensor架构和原理分析

    本文主要描述了在android2.3平台G-sensor相关软硬件的体系架构和实现原理,按照Applications.Framework.HAL.Driver和Hardware五大层次分别介绍. 1. ...

  7. android sensor移植

    sensor直接连接到应用处理器,并有linuxkernel管理.本文涉及到kernel驱动,sensor HAL以及SensorService. sensor架构 安卓提供Sensor API和Se ...

  8. gsensor架构和原理分析

    本文主要描述了在android2.3平台G-sensor相关软硬件的体系架构和实现原理,按照Applications.Framework.HAL.Driver和Hardware五大层次分别介绍. 1. ...

  9. openmv底层算法剖析---梦飞openmv前传

    前言 接梦飞openmv博客,本篇重点剖析openmv的算法和功能实现.openmv是国外开源团队依托mirco-python架构开发的一套基于stm32内核优化算法的图像识别模组,其目的是让图像视觉 ...

最新文章

  1. Unit05: 创建和访问数组 、 数组的常用方法_1
  2. pc显示器分辨率 前端_五款高性价比PC显示器推荐 499元起
  3. oracle经典增删该查,oracle基本语法(增删改查
  4. VC char和TCHAR之间转换
  5. mybatis @sqlprovider
  6. 安装tron_具有Tron效果的JavaFX 2 Form
  7. CodeForces 931C Laboratory Work 水题,构造
  8. Struts2自定义拦截器
  9. 中国半导体制冷市场趋势报告、技术动态创新及市场预测
  10. Eclipse导入Ant项目
  11. ubuntu16.04安装red5
  12. 工时分析软件哪个好用?ECRS工时分析软件-精益人都在用的IE分析软件
  13. 欧拉定理和费马小定理
  14. 琵琶行用计算机弹,琵琶行中的三次弹奏
  15. Win10系统怎么还原?Win10如何回到以前的系统
  16. 机器学习 | 台大林轩田机器学习基石课程笔记12 --- Nonlinear Transformation
  17. 搜狗微信爬虫获取文章信息
  18. IPv6地址自动配置
  19. AVFrame结构体中变量解释
  20. 看月子会所的实业老板,如何通过线上引流,开启互联网项目投资-库克老爷教视频

热门文章

  1. Cisco实物图片库
  2. PHP中的打印LOG信息方式
  3. Three.js - 光源使用详解2(聚光灯 SpotLight、平行光 DirectionLight)
  4. 数据库原理之重要语法
  5. Z-INDEX: 999
  6. SAP中文语言包安装配置
  7. sap入门--配置中文界面
  8. 随机数生成(一):均匀分布
  9. Unity 理解预制体(Prefab)和预制体变体(PrefabVariant)
  10. 王文京:要么是新生代企业,要么是数字化重生企业