跳到主要内容

OpenEmber 架构概览

OpenEmber 采用清晰的五层模型(依赖自上而下),便于扩展与长期维护:

  1. Application Layer — 产品或用户项目应用入口
  2. Module Layer — 插件式功能扩展(传输后端、驱动、桥接、应用模块等)
  3. Component Layer — 跨模块复用组件(日志、算法、序列化、容器、配置解析等)
  4. Core Layer — 中间件运行时(节点生命周期、调度、话题、参数、服务等)
  5. Platform Layer — 操作系统抽象与 HAL(线程、定时器、socket、UART、GPIO、I2C 等)

目录上大致对应 openember 仓库中的 apps/system/services/examples/modules/components/core/platform/ 等(另含 third_party/configs/tools/ 等工程辅助目录)。

依赖方向

apps

system / services / examples

modules

components

core

platform

操作系统(Linux 等)

上层可依赖下层,避免反向依赖,便于单独测试与替换实现(例如更换传输后端或 HAL 后端)。

组件层常用能力包括日志(Logging)、AlgorithmThread Pool 等;通信层见 OpenEmber Link

设计思想(摘要)

  • 可扩展:插件化模块与 Kconfig 裁剪,适配不同产品与算力。
  • 依赖管理OPENEMBER_THIRD_PARTY_MODE 等选项支持 FETCH / VENDOR / SYSTEM,兼顾离线与企业构建。
  • 通信抽象:OpenEmber Link 提供稳定的 Topic、Service、Liveliness 和消息编解码语义,底层传输实现对应用隐藏。

更完整的分层说明与规范见上游仓库中的 架构设计文档,通信层设计见 OpenEmber Link 通信层