Files
oneapp_docs/app_car/app_composer.md
2025-09-24 14:08:54 +08:00

338 lines
7.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# App Composer 车辆编排模块
## 模块概述
`app_composer` 是 OneApp 车联网生态中的车辆编排模块,负责车辆功能的组合编排、自定义场景设置、智能控制流程等功能。该模块为用户提供个性化的车辆控制体验,通过可视化的方式让用户自定义车辆操作流程。
### 基本信息
- **模块名称**: app_composer
- **版本**: 0.2.9+21
- **描述**: 车辆功能编排应用模块
- **Flutter 版本**: >=2.5.0
- **Dart 版本**: >=2.17.0 <4.0.0
## 功能特性
### 核心功能
1. **场景编排**
- 自定义车辆控制场景
- 多步骤操作流程设计
- 条件触发逻辑设置
- 场景模板管理
2. **智能控制**
- 基于时间的自动控制
- 基于位置的触发控制
- 基于状态的条件控制
- 多设备联动控制
3. **可视化编辑**
- 拖拽式流程设计
- 可视化逻辑编排
- 实时预览效果
- 错误检查提示
4. **场景执行**
- 场景一键执行
- 执行状态监控
- 执行结果反馈
- 异常处理机制
## 技术架构
### 目录结构
```
lib/
├── app_composer.dart # 模块入口文件
├── src/ # 源代码目录
│ ├── config/ # 配置管理
│ ├── constants/ # 常量定义
│ ├── global/ # 全局状态管理
│ ├── pages/ # 页面组件
│ ├── router/ # 路由配置
│ ├── util/ # 工具类
│ └── widgets/ # 自定义组件
├── const/ # 模块常量
├── generated/ # 代码生成文件
└── l10n/ # 国际化文件
```
### 依赖关系
#### 核心依赖
- `basic_modular: ^0.2.1` - 模块化框架
- `basic_modular_route: ^0.2.0` - 路由管理
- `basic_intl: ^0.2.0` - 国际化支持
- `basic_logger: ^0.2.0` - 日志系统
#### 业务依赖
- `ui_basic: ^0.2.43+5` - 基础UI组件
- `clr_composer: ^0.2.6+7` - 编排服务SDK
- `clr_account: ^0.2.8` - 账户服务SDK
#### 第三方依赖
- `json_annotation: ^4.6.0` - JSON序列化
- `dartz: ^0.10.1` - 函数式编程
- `uuid: ^3.0.7` - UUID生成
- `crypto: ^3.0.3` - 加密功能
- `path_provider: ^2.0.15` - 文件路径
- `bottom_sheet: ^4.0.0` - 底部弹窗
## 核心模块分析
### 1. 模块入口 (`app_composer.dart`)
**功能职责**:
- 模块对外接口统一导出
- 核心组件和服务暴露
### 2. 配置管理 (`src/config/`)
**功能职责**:
- 编排引擎配置
- 场景模板配置
- 执行策略配置
- 性能参数配置
**主要配置**:
- `ComposerConfig` - 编排引擎配置
- `SceneConfig` - 场景配置
- `ExecutionConfig` - 执行配置
- `TemplateConfig` - 模板配置
### 3. 常量定义 (`src/constants/`)
**功能职责**:
- 编排常量定义
- 操作类型枚举
- 状态码定义
- 错误消息常量
**主要常量**:
- 操作类型常量
- 触发条件常量
- 执行状态常量
- UI配置常量
### 4. 全局状态管理 (`src/global/`)
**功能职责**:
- 编排状态全局管理
- 场景数据缓存
- 执行状态监控
- 数据同步协调
**主要状态**:
- `ComposerState` - 编排器状态
- `SceneState` - 场景状态
- `ExecutionState` - 执行状态
- `TemplateState` - 模板状态
### 5. 页面组件 (`src/pages/`)
**功能职责**:
- 用户界面展示
- 用户交互处理
- 编排操作界面
**主要页面**:
- `ComposerHomePage` - 编排主页
- `SceneEditorPage` - 场景编辑页
- `SceneListPage` - 场景列表页
- `ExecutionMonitorPage` - 执行监控页
- `TemplateGalleryPage` - 模板库页面
### 6. 路由配置 (`src/router/`)
**功能职责**:
- 模块内部路由定义
- 页面导航管理
- 路由参数传递
- 导航守卫设置
### 7. 工具类 (`src/util/`)
**功能职责**:
- 编排逻辑工具
- 数据处理辅助
- 文件操作工具
- 加密解密工具
**主要工具**:
- `SceneBuilder` - 场景构建器
- `ExecutionEngine` - 执行引擎
- `DataConverter` - 数据转换器
- `FileManager` - 文件管理器
### 8. 自定义组件 (`src/widgets/`)
**功能职责**:
- 编排专用UI组件
- 可视化编辑组件
- 交互控制组件
- 状态展示组件
**主要组件**:
- `FlowChart` - 流程图组件
- `NodeEditor` - 节点编辑器
- `ConditionBuilder` - 条件构建器
- `ExecutionProgress` - 执行进度组件
## 业务流程
### 场景编排流程
```mermaid
graph TD
A[创建场景] --> B[选择模板]
B --> C[添加操作节点]
C --> D[设置节点参数]
D --> E[配置触发条件]
E --> F[连接节点关系]
F --> G[预览场景流程]
G --> H{验证是否通过}
H -->|是| I[保存场景]
H -->|否| J[修正错误]
J --> F
I --> K[场景测试]
K --> L{测试是否通过}
L -->|是| M[发布场景]
L -->|否| N[调试修改]
N --> G
```
### 场景执行流程
```mermaid
graph TD
A[触发场景] --> B[验证执行条件]
B --> C{条件是否满足}
C -->|是| D[开始执行]
C -->|否| E[等待或跳过]
D --> F[执行当前节点]
F --> G[检查执行结果]
G --> H{是否成功}
H -->|是| I[执行下一节点]
H -->|否| J[执行错误处理]
J --> K{是否继续}
K -->|是| I
K -->|否| L[终止执行]
I --> M{是否还有节点}
M -->|是| F
M -->|否| N[执行完成]
E --> O[记录日志]
L --> O
N --> O
```
## 编排引擎设计
### 节点类型
1. **控制节点**
- 车辆解锁/上锁
- 车窗控制
- 空调控制
- 灯光控制
2. **条件节点**
- 时间条件
- 位置条件
- 状态条件
- 传感器条件
3. **逻辑节点**
- 分支判断
- 循环控制
- 延时等待
- 并行执行
4. **通知节点**
- 推送通知
- 短信通知
- 邮件通知
- 语音提醒
### 执行策略
- **串行执行**: 按顺序逐个执行
- **并行执行**: 同时执行多个操作
- **条件执行**: 基于条件判断执行
- **循环执行**: 重复执行指定次数
## 安全特性
### 权限控制
- 操作权限验证
- 用户身份认证
- 设备授权检查
- 场景访问控制
### 数据安全
- 场景数据加密
- 执行日志保护
- 敏感信息脱敏
- 数据传输安全
## 性能优化
### 执行优化
- 节点缓存机制
- 批量操作优化
- 异步执行策略
- 资源复用设计
### 内存管理
- 场景数据懒加载
- 执行上下文管理
- 内存泄漏防护
- 大场景分片处理
## 扩展性设计
### 插件化架构
- 自定义节点插件
- 第三方服务集成
- 扩展操作类型
- 自定义触发器
### 模板系统
- 预设场景模板
- 用户自定义模板
- 模板分享机制
- 模板版本管理
## 测试策略
### 单元测试
- 节点逻辑测试
- 执行引擎测试
- 数据模型测试
- 工具类测试
### 集成测试
- 场景执行测试
- 服务集成测试
- 数据流测试
- 权限流程测试
### 场景测试
- 复杂场景测试
- 异常场景测试
- 性能压力测试
- 用户体验测试
## 部署和维护
### 配置管理
- 环境配置分离
- 功能开关控制
- 性能参数调优
- 错误恢复策略
### 监控指标
- 场景执行成功率
- 执行响应时间
- 用户使用频率
- 异常错误统计
## 总结
`app_composer` 模块作为 OneApp 的智能编排中心为用户提供了强大的车辆功能定制能力通过可视化的编排界面灵活的执行引擎和丰富的节点类型用户可以创建个性化的车辆控制场景提升用车体验的智能化水平模块具有良好的扩展性和可维护性能够适应不断变化的智能车联网需求