This commit is contained in:
Fancy code 2024-05-08 21:27:56 +08:00
parent df85a88d62
commit 3b7f7ba326
3 changed files with 121 additions and 3 deletions

View File

@ -14,6 +14,8 @@
## 1.2. 状态机设计
### 1.2.1. 状态树设计图
```mermaid
stateDiagram-v2
[*] --> TopState
@ -38,6 +40,9 @@ MissionState --> 4G管理
MissionState --> Upgrade
```
1. 任意状态处理命令时,不能阻塞,否则整个应用将会瘫痪无法响应任意的命令;
2. MissionState: 任务状态,在此状态下,由任务状态处理各种逻辑命令,根据逻辑命令定义,切换到相应的状态再处理数据,处理完数据会停留在当前状态,等待新的命令;
## 1.3. 任务状态获取启动
  应用程序运行后,首先需要知道主控是由于何种任务被唤醒,然后根据任务来执行相应的功能代码;

View File

@ -1 +1,112 @@
# 手机APP对接
# 1. 打猎相机APPWiFi单机版设计文档
## 1.1. 概述
    打猎相机手机APP是用于查看相机的实时视频回放保存在SD卡的MP4视频文件以及对相机进行设置/管理。
**备注:** 本文基于六帧探APP现有功能最小修改量实现APP的定制开发。
## 1.2. APP功能详解
### 1.2.1. 主页
  主页分三大块相机管理本地相册更多APP相关
#### 1.2.1.1. 相机管理
* 相机管理-添加设备
  手机连接设备的AP热点后自动搜索设备并添加到设备列表。可多次添加多个设备设备列表中可对设备进行删除。
* 相机管理-连接设备
  APP只能连接当前WiFi设备如果当前WiFi未发现设备提示用户正确连接设备WiFi。连接设备后跳转到设备管理页面。
#### 1.2.1.2. 本地相册
  本地相册可查找从相机下载到手机本地的文件(视频/图片)。“紧急”分类里面显示记录仪碰撞时的文件。
  在打猎机的产品形态中“紧急”分类显示PIR触发时拍摄的图片/视频。
#### 1.2.1.3. 更多
  保持不变。
#### 1.2.1.4. 问题列表
1. 如果用户未对设备出厂设置进行修改,如何区分不同的设备?
2. 如果APP面对多个出厂设备设备信息完全一样如何快速判断连接的是哪个设备
### 1.2.2. 相机连接页
  APP连接设备后可手动开始/停止录像;可手动拍照。可跳转到相机文件/相机设置界面。
#### 1.2.2.1. 实时播放界面
* 实时播放rtsp视频流
* 可手动开始/停止录像;
* 可手动拍照;
#### 1.2.2.2. 相机文件
  对设备的文件进行分类显示。可下载到手机本地/删除/编辑等操作。
##### 1.2.2.2.1. 文件分类
1. PIR触发图片/视频;
2. 手动抓拍图片/视频;
3. 定时抓拍图片/视频;
4. 全部文件;
**文件分类整改方案:**
  目前APP支持的四种协议类型显示循环/拍照/紧急/停车。打猎相机的分类定义为全部/PIR/手动/定时,根据协议进行一一对应回复,全部-循环PIR-紧急,手动-拍照,定时-停车在不修改协议的情况下只需要修改APP的显示文字即可实现APP定制开发。
##### 1.2.2.2.2. 相机设置
  对设备的参数进行读取/修改。目前基于记录仪产品的设置内容无法满足打猎机产品需求。
**记录仪当前参数列表:**
| 参数名称 | 数据类型 | 取值说明 | 备注 |
| ---- | ---- | ---- | ---- |
| 记录仪WiFi名称 | ---- | ---- | ---- |
| 记录仪WiFi密码 | ---- | ---- | ---- |
| 固件版本 | ---- | ---- | ---- |
| 格式化存储卡 | ---- | ---- | ---- |
| 恢复出厂设置 | ---- | ---- | ---- |
**打猎机参数需求列表:**
| 参数名称 | 数据类型 | 取值说明 | 备注 |
| ---- | ---- | ---- | ---- |
| 记录仪WiFi名称 | ---- | ---- | ---- |
| 记录仪WiFi密码 | ---- | ---- | ---- |
| 固件版本 | ---- | ---- | 仅显示 |
| ---- | ---- | ---- | ---- |
| 工作模式 | 数字 | 0图片<br>1图片+视频 | ---- |
| 连拍|数字 | 1/2/3 | 单位P |
| 连拍间隔 | 数字 | 0~60 | 单位s |
| 图片大小 | 数字 | 8/16/24/32/40 | 单位M |
| 视频长度 | 数字 | 10/15 | 单位s |
| PIR延时 | 数字 | 0~60 | 单位s |
| 工作时间 | 时间 | 起始的时间设置<br>例如起点2000至终点600 | ---- |
| 循环存储 | 数字 | 0OFF<br>1ON | ---- |
| 红外灯功率 | 数字 | 0/1/2 | 低/中/高 |
| PIR灵敏度 | 数字 | 0~9 | ---- |
| 恢复出厂 | ---- | ---- | 功能 |
| 格式化SD卡 | ---- | ---- | 功能 |
| 重启 | ---- | ---- | 功能 |
#### 1.2.2.3. 问题列表
1. 针对软件迭代需求除了一些和APP业务逻辑相关的参数需要特殊处理外是否可以通过协议来获取设备自定义的参数设置方便设备可以随意的增加/删除设置参数。
2. 没发现升级功能。
## 1.3. APP定制整改总结
1. “记录仪”统一修改为“相机”;
2. 本地相册-“紧急”分类改为“PIR”
3. APP连接设备后自动录像改为默认不录像可手动录像
4. APP上的“循环”改成“全部”“拍照”改成“手动”“紧急”改成“PIR”“停车”改成“定时”
5. 相机设置需要实现设备自定义设置项功能;

View File

@ -70,10 +70,12 @@ TEST_F(AppManagerTest, INTEGRATION_AppManager_EXAMPLE_Demo0)
std::this_thread::sleep_for(std::chrono::milliseconds(2000));
IAppManager::GetInstance()->UnInit();
}
// ../output_files/test/bin/AppManagerTest --gtest_filter=AppManagerTest.INTEGRATION_AppManager_EXAMPLE_Demo
TEST_F(AppManagerTest, INTEGRATION_AppManager_EXAMPLE_Demo)
// ../output_files/test/bin/AppManagerTest --gtest_filter=AppManagerTest.INTEGRATION_AppManager_EXAMPLE_AUTO_Demo
TEST_F(AppManagerTest, INTEGRATION_AppManager_EXAMPLE_AUTO_Demo)
{
std::shared_ptr<VAppMonitor> monitor = AppManagerTestTool::MakeMonitorMock();
IAppManager::GetInstance()->Init(mAppParam);
IAppManager::GetInstance()->SetAppMonitor(monitor);
std::this_thread::sleep_for(std::chrono::milliseconds(100));
MockGetProductInfo();
std::this_thread::sleep_for(std::chrono::milliseconds(1000));