diff --git a/doc/design.md b/doc/design.md index 9ef4ea7e..75ccb0ef 100644 --- a/doc/design.md +++ b/doc/design.md @@ -123,11 +123,16 @@ libLogAbstract.a -->> -User:return    MCU通信接口库,一般使用串口进行通信,需要考虑多态其它接口(例如I2C),考虑多态协议数据结构。MCU负责管理外设的电源控制 / 充当硬狗等。 -###### 1.4.2.2.4.1. 串口开源库 -使用下述开源库对串口数据进行收发。 -``` -https://gitee.com/RT-Thread-Mirror/TinyFrame -``` +###### 1.4.2.2.4.1. MCU管理模块设计模式 + +   使用C++接口的多态单例模式。 + +基本功能: + +1. 使用utils当中的串口功能模块,支持多态切换到其它串口功能模块; +2. 设置MCU管理的监视器monitor,用于回调处理MCU接受到的业务事件; +3. 通信协议不暴露,内部处理基于协议的数据解析 / 组包; +4. 通信协议支持多态拓展,通信协议独立成库; ##### 1.4.2.2.5. IPC配置库 @@ -146,6 +151,15 @@ https://gitee.com/RT-Thread-Mirror/TinyFrame 5. 使用枚举方式管理IPC配置数据定义,当使用纯16进制保存数据时,可不链接utils工具里面的配置库,直接保存16进制数据到文件系统即可; 6. 应用程序全局唯一可以操作IPC配置文件的库,保证配置文件正确读写; +###### IPC配置库类图 +```mermaid +classDiagram + i_ipc_config <.. ipc_config:实现 + ipc_config --> i_config_manager:依赖 + i_config_manager <.. config_manager:实现 + config_manager --> libconfig开源库:依赖 +``` + ##### 1.4.2.2.6. 高级配置库    对配置库的二级封装,提供更便捷的功能服务,例如:可以监控文件的修改事件 / 可以直接捕获某个配置文件或者数据的操作对象。 @@ -218,10 +232,32 @@ https://gitee.com/RT-Thread-Mirror/TinyFrame ###### 1.4.2.4.5.3. 开源库 +使用libconfig作为文件操作的开源库,实现文件和数据的读 / 写。 + ###### 1.4.2.4.5.4. 备份机制    备份数据用于数据异常时可还原旧数据。 ###### 1.4.2.4.5.5. 升级机制 -   程序升级后配置数据发生增 / 删时如何兼容和还原。 \ No newline at end of file +   程序升级后配置数据发生增 / 删时如何兼容和还原。 + +##### 1.4.2.4.6. 串口功能模块 + +   串口的打开 / 关闭 / 数据读 / 数据写 功能。 + +###### 1.4.2.4.6.1. 串口开源库 +使用下述开源库对串口数据进行收发。 +``` +https://gitee.com/RT-Thread-Mirror/TinyFrame +``` + +##### 1.4.2.4.7. MCU协议库 + +   负责MCU通信协议的组包 / 拆包 / 事件转换。 + +###### MCU协议库设计模式 + +   基于C语言的多态单例设计模式。 + +###### 1.4.2.4.7.1. 协议数据结构 \ No newline at end of file