diff --git a/doc/design.md b/doc/design.md index 77d14ac2..a9000779 100644 --- a/doc/design.md +++ b/doc/design.md @@ -262,6 +262,63 @@ ipc_config -->> -User:return    基于C语言接口的多态单例模式,编译时静态多态链接对应的芯片平台适配代码,实现芯片接口的标准功能定义。 +##### 1.4.2.3.2. 媒体适配方案: + +   IPC应用在适配芯片平台的多媒体接口时,使用多进程的方式实现。满足IPC应用可以快起(无需等待媒体相关的初始化)的需求。 + +**媒体基本需求** + +1. 图片抓拍; +2. 视频抓拍; + +**多进程通信方案** + +   使用本地socket的方式进行多进程通信,媒体进程为客户端,IPC应用为服务端(IPC先启动)。 + +1. 客户端可自动重连; +2. 服务端可多次关闭和开启,满足gtest资源回收需求; + +##### 1.4.2.3.3. 适配层多进程类图 + +```mermaid +classDiagram + i_hal <.. hal:实现 + hal --> v_media_handle:依赖 + v_media_handle --> local_socket:依赖 + local_socket .. media进程:跨进程 + media进程 --> 芯片媒体API:依赖 +``` + +##### 1.4.2.3.4. 跨进程业务时序图 + +* 本地socket链接 + +```mermaid +sequenceDiagram +participant hal +participant v_media_handle +participant local_socket_s +participant local_socket_c +participant media进程 +participant 芯片媒体API +hal ->> +v_media_handle:初始化 + v_media_handle ->> +local_socket_s:本地socket服务端启动 + par 本地socket初始化 + local_socket_s -->> -v_media_handle:return +v_media_handle -->> -hal:return + and + media进程 ->> media进程:启动 + media进程 ->> +local_socket_c:初始化服务端 + local_socket_c -->> local_socket_s:链接 + local_socket_c -->> -media进程:return + local_socket_s -->> local_socket_c:初始化媒体 + local_socket_c ->> media进程:回调回传协议事件 + media进程 ->> +芯片媒体API:初始化媒体 + 芯片媒体API -->> -media进程:return + end +``` + +* 存在问题: 使用C语言开发时如何解决智能指针问题? #### 1.4.2.4. 工具库(utils) @@ -364,6 +421,10 @@ https://gitee.com/RT-Thread-Mirror/TinyFrame ###### 1.4.2.4.7.2. 协议数据结构 +##### 1.4.2.4.8. 多进程协议库 + +   负责IPC应用和媒体进程之间的协议组包 / 拆包,在协议和业务之间进行转换接口的封装。 + ## 1.5. 自动化测试 ### 1.5.1. 自动化测试概述