From eec9fb49a2d52e86513c61f1ad829af636905b1a Mon Sep 17 00:00:00 2001
From: Fancy code <258828110.@qq.com>
Date: Sat, 25 May 2024 11:09:00 +0800
Subject: [PATCH] AppManager doc.
---
middleware/AppManager/README.md | 191 ++++++++++++++++++++++++++------
1 file changed, 158 insertions(+), 33 deletions(-)
diff --git a/middleware/AppManager/README.md b/middleware/AppManager/README.md
index a131f861..b05afefd 100644
--- a/middleware/AppManager/README.md
+++ b/middleware/AppManager/README.md
@@ -3,6 +3,7 @@
| 版本 | 时间 | 说明 |
| ---- | ---- | ---- |
| V1.0 | 2024-5-21 | 首次评审。 |
+| V1.1 | 2024-5-25 | 增加标准设置项和动态设置参数协议。 |
## 1.1. 概述
@@ -99,36 +100,39 @@
**记录仪当前参数列表:**
-| 参数名称 | 数据类型 | 取值说明 | 备注 |
-| ---- | ---- | ---- | ---- |
-| 记录仪WiFi名称 | ---- | ---- | ---- |
-| 记录仪WiFi密码 | ---- | ---- | ---- |
-| 固件版本 | ---- | ---- | ---- |
-| 格式化存储卡 | ---- | ---- | ---- |
-| 恢复出厂设置 | ---- | ---- | ---- |
+| 参数名称 | 数据类型 | 取值说明 | 公版支持 | 备注 |
+| ---- | ---- | ---- | ---- | ---- |
+| 记录仪WiFi名称 | ---- | ---- | 支持 | ---- |
+| 记录仪WiFi密码 | ---- | ---- | 支持 | ---- |
+| 固件版本 | ---- | ---- | 支持 | ---- |
+| 格式化存储卡 | ---- | ---- | 支持 | ---- |
+| 恢复出厂设置 | ---- | ---- | 支持 | ---- |
**打猎机参数需求列表:**
-| 参数名称 | 数据类型 | 取值说明 | 备注 |
-| ---- | ---- | ---- | ---- |
-| 记录仪WiFi名称 | ---- | ---- | ---- |
-| 记录仪WiFi密码 | ---- | ---- | ---- |
-| 固件版本 | ---- | ---- | 仅显示 |
-| ---- | ---- | ---- | ---- |
-| 电量 | ---- | ---- | 仅显示 |
-| 工作模式 | 数字 | 0:图片
1:图片+视频 | ---- |
-| 连拍|数字 | 1/2/3 | 单位:P |
-| 连拍间隔 | 数字 | 0~60 | 单位:s |
-| 图片大小 | 数字 | 8/16/24/32/40 | 单位:M |
-| 视频长度 | 数字 | 10/15 | 单位:s |
-| PIR延时 | 数字 | 0~60 | 单位:s |
-| 工作时间 | 时间 | 起始的时间设置
例如:起点20:00至终点6:00 | ---- |
-| 循环存储 | 数字 | 0:OFF
1:ON | ---- |
-| 红外灯功率 | 数字 | 0/1/2 | 低/中/高 |
-| PIR灵敏度 | 数字 | 0~9 | ---- |
-| 恢复出厂 | ---- | ---- | 功能 |
-| 格式化SD卡 | ---- | ---- | 功能 |
-| 重启 | ---- | ---- | 功能 |
+| 参数名称 | 数据类型 | 取值说明 | 公版支持 | 备注 |
+| ---- | ---- | ---- | ---- | ---- |
+| 记录仪WiFi名称 | ---- | ---- | 支持 | ---- |
+| 记录仪WiFi密码 | ---- | ---- | 支持 | ---- |
+| 固件版本 | ---- | ---- | 支持 | 仅显示 |
+| ---- | ---- | ---- | ---- | ---- |
+| 电量 | ---- | ---- | 未支持 | 仅显示 |
+| 工作模式 | 数字 | 0:图片
1:图片+视频 | 未支持 | ---- |
+| 连拍|数字 | 1/2/3 | 未支持 | 单位:P |
+| 连拍间隔 | 数字 | 0~60 | 未支持 | 单位:s |
+| 图片大小 | 数字 | 8/16/24/32/40 | 未支持 | 单位:M |
+| 录像分辨率 | 数字 | 0:WVGA
1:HD
2:FHD | 未支持 | ---- |
+| 录像帧率 | 数字 | 15/30 | 未支持 | 单位:fps |
+| 视频长度 | 数字 | 10/15 | 未支持 | 单位:s |
+| PIR延时 | 时间 | 00:00:00-23:59:59 | 未支持 | 两个PIR之间的最小间隔 |
+| 定时工作 | 时间 | 00:00:00-23:59:59 | 未支持 | 定时唤醒 |
+| 工作时间 | 时间 | 起始的时间设置
例如:起点20:00至终点6:00 | 未支持 | ---- |
+| 循环存储 | 数字 | 0:OFF
1:ON | 未支持 | ---- |
+| 红外灯功率 | 数字 | 0/1/2 | 未支持 | 低/中/高 |
+| PIR灵敏度 | 数字 | 0~9 | 未支持 | ---- |
+| 恢复出厂 | ---- | ---- | 支持 | 功能 |
+| 格式化SD卡 | ---- | ---- | 支持 | 功能 |
+| 重启 | ---- | ---- | 未支持 | 功能 |
#### 1.2.2.3. 问题列表
@@ -139,13 +143,15 @@
## 1.3. APP定制整改总结
+ **基于公版基础,未修改原有协议,做界面显示定制和增量开发,方案可控。**
+
1. “记录仪”统一修改为“相机”;
答:公版无法修改,需要定制。
2. 本地相册-“紧急”分类,改为“PIR”;
3. APP连接设备后,自动录像,改为默认不录像,可手动录像;
答:设备返回非记录仪即可,见能力集。
4. APP上的“循环”改成“全部”,“拍照”改成“手动”,“紧急”改成“PIR”,“停车”改成“定时”,**全部包括手动/PIR/定时**;
-5. 相机设置需要实现设备自定义设置项功能;
+5. **相机设置需要实现设备自定义设置项功能;**
## 1.4. 设置界面动态渲染方案设计
@@ -165,11 +171,130 @@
### 1.4.2. 动态渲染设置界面
-1. APP获取设置参数列表,协议根据设置类型定义;
-2. 设置界面根据设置类型显示设置控件;
-3. 有操作后回传自定义控件信息;
-4. 设备根据协议解析操作的控件,并执行自定义行为;
+#### 1.4.2.1. 新增动态设置参数协议
+
+**获取动态设置参数列表**
+
+| | |
+| ---- | ---- |
+| 描述 | 获取动态设置参数列表。 |
+| 接口 | http://192.168.1.100/app/getdynamicparam |
+| 参数 | ?index=all // 获取全部动态设置参数
?index=6 // 获取索引号为6的动态设置参数 |
+| 返回参数 | result:0-成功,-1-失败
info:动态参数列表 |
+
+**获取全部动态参数返回示例:**
+
+```code
+{
+ "result": 0,
+ "info":
+ [
+ {
+ "name": "SettingName", // 直接显示在APP界面
+ "type": "label", // 显示控件类型,只显示
+ "value": "0-表示字符串", // 当前值
+ "index": 0 // 参数索引,直接回传给设备
+ },
+ {
+ "name": "NumberName",
+ "type": "inputnum", // 数字输入框,带单位显示
+ "value": 123456789,
+ "unit": "s", // 单位,可选,如果有则显示单位
+ "index": 1 // 参数索引,直接回传给设备
+ },
+ {
+ "name": "SwitchName",
+ "type": "switch", // 开关,0-关,1-开
+ "value": 0, // 当前值,0-关,1-开
+ "index": 2 // 参数索引,直接回传给设备
+ },
+ {
+ "name": "InputStringName",
+ "type": "inputstring", // 任意字符输入框,无限制
+ "value": "0123abcDEF!@#", // 当前值
+ "index": 3 // 参数索引,直接回传给设备
+ },
+ {
+ "name": "TimeSettingName",
+ "type": "time", // 时间设置(24小时制),格式:hh-mm-ss
+ "value": "23:59:59", // 当前值,格式:hh-mm-ss
+ "index": 4 // 参数索引,直接回传给设备
+ },
+ {
+ "name": "ConfirmName",
+ "tips": "Confirm?", // 提示信息,没有时使用name
+ "type": "comfirm", // 功能按钮(确认框)
+ "index": 5 // 参数索引,直接回传给设备
+ },
+ {
+ "name": "OptionName",
+ "type": "option", // 选项设置
+ "items": ["Option0","Option1"], // 选项列表,格式:["选项1","选项2",...]
+ "value": 1, // 当前值, 索引值,0-Option0,1-Option1
+ "index": 6 // 参数索引,直接回传给设备
+ }
+ ]
+}
+```
+
+响应值描述:
+
+| 参数名 | 类型 | 描述 |
+| ---- | ---- | ---- |
+| name | String | 直接显示在APP |
+| type | String | 控件类型:
label-字符串,仅显示内容,无法修改
inputnum-数字
switch-开关(0-关,1-开)
inputstring-任意字符输入
time-时间设置
comfirm-功能按钮(确认框)
option-选项设置 |
+| value | ---- | 当前值,类型根据type定义来确定 |
+| unit | String | 单位,如果有则在APP界面显示 |
+| index | int | 索引值,设备使用,根据索引值知道修改哪个参数 |
+
+**动态设置项设置协议**
+
+| | |
+| ---- | ---- |
+| 描述 | 动态设置项设置协议 |
+| 接口 | http://192.168.1.100/app/dynamicparamset |
+| 参数 | ?index=1&value=0123456789 // 数字输入框
?index=2&value=0 // 开关,0-关,1-开
?index=3&value=0123abcDEF!@# // 任意字符输入框
?index=4&value=23:59:59 // 时间
?index=5&value=0 // 0-取消;1-确认
?index=6&value=1 // 0-Option0,1-Option1,以此类推 |
+| 返回参数 | result:0-成功,-1-失败
返回成功后重新获取动态参数显示 |
+
+**动态设置项设置返回示例:**
+
+```code
+{
+ "result" : 0,
+ "info" : "success."
+}
+```
+
+**动态参数显示/设置UML时序图:**
+
+```mermaid
+sequenceDiagram
+participant APP
+participant CAMERA
+APP ->> APP:进入设置界面
+APP ->> +CAMERA:http:getdynamicparam?index=all
+CAMERA -->> -APP:return
+loop 设置界面停留
+ opt 用户修改参数
+ APP ->> APP:用户修改参数
+ APP ->> +CAMERA:http:dynamicparamset?index=2
+ CAMERA -->> -APP:return
+ alt result=0
+ APP ->> APP:修改成功
+ APP ->> +CAMERA:http:getdynamicparam?index=2
+ CAMERA -->> -APP:return
+ APP ->> APP:刷新设置项显示
+ else result=-1
+ APP ->> APP:修改失败
+ end
+ end
+end
+opt 设备端修改参数
+ note over CAMERA: 设备端修改参数未能同步(未发现同步协议)
+end
+APP ->> APP:退出设置界面
+```
### 1.4.3. 拓展规划
- 需要考虑拓展为4G版本。
\ No newline at end of file
+ 后续如何拓展为4G版本?