From 83b1ed75b63280b230899e491977dd29291c08ce Mon Sep 17 00:00:00 2001 From: xiaojiazhu <258828110@qq.com> Date: Thu, 13 Jul 2023 22:42:04 +0800 Subject: [PATCH] backup. --- doc/design.md | 62 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 54 insertions(+), 8 deletions(-) diff --git a/doc/design.md b/doc/design.md index 5b30fffb..0df2296f 100644 --- a/doc/design.md +++ b/doc/design.md @@ -1,11 +1,38 @@ # 1. 设计文档 -## 1.1. 软件设计 +## 1.1. 产品概述 -### 1.1.1. 多态单例设计模式 +## 1.2. 结构设计 +1. 迷彩外观; +2. 抽屉式电池箱组; +3. 捆绑/相机支架安装方式; +4. 案件翻盖保护; +5. 可拓展4G模块; +6. 户外防水; + +## 1.3. 硬件设计 + +### 1.3.1. 关键外设 +1. 摄像头; +2. PIR sensor; +3. IR leds; +4. 电池(箱体); +5. 启动模式拨键(三键); +6. 按键:同步/复位/格式化; +7. SD card; +8. usb接口; +9. NFC(绑定APP); +10. 光感传感器:白天/黑夜; +11. 指示灯:设备状态/SD卡状态/电量/无线信号灯/账号状态; + +### 1.3.2. 生产测试/研发调试 + +## 1.4. 软件设计 + +### 1.4.1. 多态单例设计模式    多态单例模式包含两部分:抽象接口 + 抽象接口实例,代码基于抽象接口存在,业务基于抽象接口实例存在。 -#### 1.1.1.1. 多态单例图示 +#### 1.4.1.1. 多态单例图示    下述图示分别为:类图 / 依赖关系图 / 编译链接关系图 ```mermaid classDiagram @@ -16,19 +43,38 @@ classDiagram main线程 --> 抽象接口代码库:链接 main线程 --> 实例代码库:链接 ``` +#### 1.4.1.2. 多态单例模块使用时序图 +   在使用多态单例设计模式开发功能模块时,使用统一的命名规则: +* 抽象接口命名:xxx + Abstract,例如:libLogAbstract.a; +* 实例库命名:xxx + 具体实例名称,例如:libLogEasylogging.a; + +**调用关系如下图** +```mermaid +sequenceDiagram +User ->> +libLogAbstract.a:调用抽象接口 +libLogAbstract.a --> +libLogEasylogging.a:实际调用实例接口 +libLogEasylogging.a --> -libLogAbstract.a:return +libLogAbstract.a -->> -User:return +``` +**只有main函数实际调用实例库的实例化接口时,log功能才会生效。** + +#### 1.4.1.3. 多态单例总结: 1. 应用代码只使用抽象接口,禁止直接依赖实例代码; 2. 应用代码只有在main线程初始化时实例化实例模块即可; 3. 多态单例模块由两个库组成,一个是抽象接口库,一个是实例代码库,支持静态多态和动态多态; -### 1.1.2. 根据软件模块作用域分层 +### 1.4.2. 根据软件模块作用域分层 -#### 1.1.2.1. 工具库(utils) +#### 1.4.2.1. 工具库(utils) -##### 1.1.2.1.1. 日志库 +##### 1.4.2.1.1. 工具库概述 +   工具库是功能单一的不依赖任何三方库的独立库,必须提供C语言接口,内部实现不限于C或者C++。 -###### 1.1.2.1.1.1. 日志库概述 +##### 1.4.2.1.2. 日志库 + +###### 1.4.2.1.2.1. 日志库概述    提供程序的日志管理功能,含日志的实时打印/保存/跟踪(实时上传云端)。 -###### 1.1.2.1.1.2. 日志库设计模式 +###### 1.4.2.1.2.2. 日志库设计模式    C语言接口的多态单例模式,可动态/静态加载多态实例。 \ No newline at end of file