Design files.
This commit is contained in:
parent
5d06d53ace
commit
3ab940b725
|
@ -365,11 +365,47 @@ end
|
||||||
3. 通信协议不暴露,内部处理基于协议的数据解析 / 组包;
|
3. 通信协议不暴露,内部处理基于协议的数据解析 / 组包;
|
||||||
4. 通信协议支持多态拓展,通信协议独立成库;
|
4. 通信协议支持多态拓展,通信协议独立成库;
|
||||||
|
|
||||||
##### 1.4.3.2.5. IPC配置库
|
##### 1.4.3.2.5. MCU协议模块
|
||||||
|
|
||||||
|
   负责对MCU协议进行封包/解包,负责协议的多态替换。
|
||||||
|
|
||||||
|
###### 1.4.3.2.5.1. 协议格式
|
||||||
|
|
||||||
|
| 协议头 | 命令字 | 长度 | 数据段 | 校验位 | 协议尾 |
|
||||||
|
|----|----|----|----|----|----|
|
||||||
|
| 2字节<br>0xFAC1 | 2字节 | 2字节 | - | - | 2字节<br>0xFAC9 |
|
||||||
|
|
||||||
|
###### 1.4.3.2.5.2. 协议内容
|
||||||
|
|
||||||
|
**基本描述**
|
||||||
|
1. 大于等于0x8000的命令字由CPU发给MCU;
|
||||||
|
2. 小于0x8000的命令字由MCU发给CPU;
|
||||||
|
3. 问答型协议只有按位最高位相反,其它位相等,例如:0x8101与0x0101是一问一答的协议;
|
||||||
|
|
||||||
|
| 命令字 | CPU | MCU | 数据段 | 协议解析 | 备注 |
|
||||||
|
|----|----|----|----|----|----|
|
||||||
|
| 0x8101 | ask | - | - | 获取启动模式 | - |
|
||||||
|
| 0x0101 | - | reply | Data[0]:启动模式<br>0x01:PIR启动<br>0x02:TEST启动<br>0x03:连拍启动<br>0x04:PIR延时启动 | 回复启动模式 | - |
|
||||||
|
| 0x8102 | ask | - | - | 断电关机 | - |
|
||||||
|
| 0x8103 | ask | - | - | 喂狗 | - |
|
||||||
|
| 0x8104 | ask | - | Data[0]:Hour<br>0-23<br>Data[1]:Min<br>0-59<br>Data[2]:Sec<br>0-59 | 开启狗/设置喂狗周期 | - |
|
||||||
|
| 0x0104 | - | reply | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 开启狗/设置喂狗周期回复 | - |
|
||||||
|
| 0x8105 | ask | - | - | 关闭狗 | - |
|
||||||
|
| 0x0105 | - | reply | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 关闭狗回复 | - |
|
||||||
|
| 0x8106 | ask | - | Data[0]:Hour<br>0-23<br>Data[1]:Min<br>0-59<br>Data[2]:Sec<br>0-59 | 设置间隔启动时间 | - |
|
||||||
|
| 0x0106 | - | reply | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 设置间隔启动时间回复 | - |
|
||||||
|
| 0x8107 | ask | - | Data[0]:Year<br>Data[1]:Mon<br>1-12<br>Data[2]:Day<br>0-31<br>Data[3]:Hour<br>0-23<br>Data[4]:Min<br>0-59<br>Data[5]:Sec<br>0-59 | 设置日期和时间 | - |
|
||||||
|
| 0x0107 | - | reply | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 设置日期和时间回复 | - |
|
||||||
|
| 0x8108 | ask | - | Data[0]:灵敏度<br>0-9 | 设置PIR灵敏度 | - |
|
||||||
|
| 0x0108 | - | reply | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 设置PIR灵敏度回复 | - |
|
||||||
|
| 0x8109 | ask | - | Data[0]:Hour<br>0-23<br>Data[1]:Min<br>0-59<br>Data[2]:Sec<br>0-59 | 设置连拍间隔 | - |
|
||||||
|
| 0x0108 | - | reply | Data[0]:结果<br>0x01:成功<br>0x02:失败 | 设置连拍间隔回复 | - |
|
||||||
|
|
||||||
|
##### 1.4.3.2.6. IPC配置库
|
||||||
|
|
||||||
   负责管理IPC产品相关的配置数据。
|
   负责管理IPC产品相关的配置数据。
|
||||||
|
|
||||||
###### 1.4.3.2.5.1. IPC配置库设计模式
|
###### 1.4.3.2.6.1. IPC配置库设计模式
|
||||||
|
|
||||||
   使用多态单例设计模式,对外提供C语言接口,内部不局限使用C或者C++。
|
   使用多态单例设计模式,对外提供C语言接口,内部不局限使用C或者C++。
|
||||||
|
|
||||||
|
@ -382,7 +418,7 @@ end
|
||||||
5. 使用枚举方式管理IPC配置数据定义,当使用纯16进制保存数据时,可不链接utils工具里面的配置库,直接保存16进制数据到文件系统即可;
|
5. 使用枚举方式管理IPC配置数据定义,当使用纯16进制保存数据时,可不链接utils工具里面的配置库,直接保存16进制数据到文件系统即可;
|
||||||
6. 应用程序全局唯一可以操作IPC配置文件的库,保证配置文件正确读写;
|
6. 应用程序全局唯一可以操作IPC配置文件的库,保证配置文件正确读写;
|
||||||
|
|
||||||
###### 1.4.3.2.5.2. IPC配置库类图
|
###### 1.4.3.2.6.2. IPC配置库类图
|
||||||
```mermaid
|
```mermaid
|
||||||
classDiagram
|
classDiagram
|
||||||
i_ipc_config <.. ipc_config:实现
|
i_ipc_config <.. ipc_config:实现
|
||||||
|
@ -392,7 +428,7 @@ classDiagram
|
||||||
config_manager --> libconfig开源库:依赖
|
config_manager --> libconfig开源库:依赖
|
||||||
```
|
```
|
||||||
|
|
||||||
###### 1.4.3.2.5.3. 关键业务时序图
|
###### 1.4.3.2.6.3. 关键业务时序图
|
||||||
|
|
||||||
   **时序图会忽略抽象接口直接使用实例接口表示。**
|
   **时序图会忽略抽象接口直接使用实例接口表示。**
|
||||||
|
|
||||||
|
@ -476,35 +512,35 @@ ipc_config -->> -User:return
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
##### 1.4.3.2.6. 高级配置库
|
##### 1.4.3.2.7. 高级配置库
|
||||||
|
|
||||||
   对配置库的二级封装,提供更便捷的功能服务,例如:可以监控文件的修改事件 / 可以直接捕获某个配置文件或者数据的操作对象。
|
   对配置库的二级封装,提供更便捷的功能服务,例如:可以监控文件的修改事件 / 可以直接捕获某个配置文件或者数据的操作对象。
|
||||||
|
|
||||||
###### 1.4.3.2.6.1. 高级配置库设计
|
###### 1.4.3.2.7.1. 高级配置库设计
|
||||||
|
|
||||||
   对外暴露C++接口,使用多态单例设计模式。
|
   对外暴露C++接口,使用多态单例设计模式。
|
||||||
|
|
||||||
##### 1.4.3.2.7. 状态机管理
|
##### 1.4.3.2.8. 状态机管理
|
||||||
|
|
||||||
   提供实现状态机管理机制C++接口,使用鸿蒙状态机开源源码进行改造封装。
|
   提供实现状态机管理机制C++接口,使用鸿蒙状态机开源源码进行改造封装。
|
||||||
|
|
||||||
###### 1.4.3.2.7.1. 状态机管理设计模式
|
###### 1.4.3.2.8.1. 状态机管理设计模式
|
||||||
|
|
||||||
   使用多态单例设计模式,暂定使用鸿蒙状态机开源代码改造实现,后续可替换其它源码或者自研代码。
|
   使用多态单例设计模式,暂定使用鸿蒙状态机开源代码改造实现,后续可替换其它源码或者自研代码。
|
||||||
|
|
||||||
##### 1.4.3.2.8. 文件数据库
|
##### 1.4.3.2.9. 文件数据库
|
||||||
|
|
||||||
   文件数据库负责管理设备的媒体资源(图片 / 视频等)。
|
   文件数据库负责管理设备的媒体资源(图片 / 视频等)。
|
||||||
|
|
||||||
###### 1.4.3.2.8.1. 文件数据设计模式
|
###### 1.4.3.2.9.1. 文件数据设计模式
|
||||||
|
|
||||||
   使用混合多态单例模式开发。
|
   使用混合多态单例模式开发。
|
||||||
|
|
||||||
###### 1.4.3.2.8.2. 开源库选型
|
###### 1.4.3.2.9.2. 开源库选型
|
||||||
|
|
||||||
   sqlite3开源库,编译成工具类库提供给文件数据库使用。
|
   sqlite3开源库,编译成工具类库提供给文件数据库使用。
|
||||||
|
|
||||||
###### 1.4.3.2.8.3. 基本功能和业务需求
|
###### 1.4.3.2.9.3. 基本功能和业务需求
|
||||||
|
|
||||||
1. 对媒体资源文件的增删改查处理;
|
1. 对媒体资源文件的增删改查处理;
|
||||||
2. 记录媒体资源文件的生成时间,任务(是否发送);
|
2. 记录媒体资源文件的生成时间,任务(是否发送);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user