312 lines
8.2 KiB
Markdown
312 lines
8.2 KiB
Markdown
# 2.4.3 输出格式功能设计说明
|
||
|
||
## 2.4.3.1. 模块描述
|
||
|
||
输出格式模块是交互式导航功能的关键模块,负责支持路径规划结果结构化文件输出(XML/JSON/CSV),确保结果文件能够导入DELMIA。该模块提供了标准化的数据交换格式,使路径规划结果可以在不同的系统和软件之间进行交换和复用。
|
||
|
||
该模块与ExportPathCommand、PathDataManager和各类导出器(XML/JSON/CSV)紧密集成,实现灵活的数据导出功能。
|
||
|
||
## 2.4.3.2. 功能
|
||
|
||
### 核心功能
|
||
1. **XML格式输出**:导出为XML格式的结构化数据
|
||
2. **JSON格式输出**:导出为JSON格式的结构化数据
|
||
3. **CSV格式输出**:导出为CSV表格格式
|
||
4. **DELMIA兼容**:确保输出格式兼容DELMIA导入
|
||
5. **数据转换**:支持不同格式之间的数据转换
|
||
|
||
### 子功能
|
||
| 功能编号 | 功能名称 | 功能描述 |
|
||
|---------|---------|---------|
|
||
| 2.4.3.F1 | XML导出 | 导出路径数据为XML格式 |
|
||
| 2.4.3.F2 | JSON导出 | 导出路径数据为JSON格式 |
|
||
| 2.4.3.F3 | CSV导出 | 导出路径数据为CSV格式 |
|
||
| 2.4.3.F4 | DELMIA格式 | 生成DELMIA兼容的输出 |
|
||
| 2.4.3.F5 | 格式验证 | 验证输出格式正确性 |
|
||
| 2.4.3.F6 | 批量导出 | 批量导出多条路径 |
|
||
| 2.4.3.F7 | 字段定制 | 定制导出的字段内容 |
|
||
|
||
## 2.4.3.3. 性能
|
||
|
||
### 性能指标
|
||
| 指标名称 | 目标值 | 说明 |
|
||
|---------|-------|------|
|
||
| 导出响应时间 | < 1秒 | 导出单条路径的响应时间 |
|
||
| 批量导出速度 | > 100条/秒 | 批量导出的处理速度 |
|
||
| 文件大小优化 | < 1MB | 单条路径的导出文件大小 |
|
||
| 内存占用 | < 100MB | 导出过程的内存占用 |
|
||
|
||
### 性能优化策略
|
||
1. 流式写入大文件
|
||
2. 异步导出操作
|
||
3. 数据压缩
|
||
|
||
## 2.4.3.4. 输入输出项
|
||
|
||
### 1. 字段输入输出
|
||
|
||
#### 输入字段
|
||
| 字段名 | 类型 | 必填 | 说明 |
|
||
|-------|------|-----|------|
|
||
| Routes | List<PathRoute> | 是 | 要导出的路径列表 |
|
||
| Format | ExportFormat | 是 | 导出格式 |
|
||
| ExportOptions | ExportOptions | 否 | 导出选项 |
|
||
|
||
#### 输出字段
|
||
| 字段名 | 类型 | 说明 |
|
||
|-------|------|------|
|
||
| FilePath | string | 导出文件路径 |
|
||
| ExportedCount | int | 导出的路径数量 |
|
||
| FileSize | long | 文件大小 |
|
||
|
||
### 2. 界面交互输入输出
|
||
|
||
#### 界面输入
|
||
- 导出格式选择
|
||
- 字段选择勾选
|
||
- 文件路径选择
|
||
- DELMIA兼容选项
|
||
|
||
#### 界面输出
|
||
- 导出进度显示
|
||
- 文件大小信息
|
||
- 导出结果提示
|
||
- 文件预览
|
||
|
||
## 2.4.3.5. 算法
|
||
|
||
### XML导出算法
|
||
```
|
||
算法:导出路径为XML格式
|
||
输入:路径列表,导出选项
|
||
输出:XML文件
|
||
|
||
1. 创建XML文档
|
||
2. 添加根元素<TransportPaths>
|
||
3. 对于每条路径:
|
||
4. 创建<Path>元素
|
||
5. 添加路径属性(ID、名称、长度等)
|
||
6. 添加<Points>子元素
|
||
7. 对于每个路径点:
|
||
8. 创建<Point>元素
|
||
9. 添加坐标和属性
|
||
10. 保存XML文件
|
||
```
|
||
|
||
### JSON导出算法
|
||
```
|
||
算法:导出路径为JSON格式
|
||
输入:路径列表,导出选项
|
||
输出:JSON文件
|
||
|
||
1. 创建路径数据对象列表
|
||
2. 对于每条路径:
|
||
3. 序列化路径对象为JSON对象
|
||
4. 添加到列表
|
||
5. 序列化整个列表为JSON字符串
|
||
6. 保存到文件
|
||
```
|
||
|
||
### CSV导出算法
|
||
```
|
||
算法:导出路径为CSV格式
|
||
输入:路径列表,导出选项
|
||
输出:CSV文件
|
||
|
||
1. 写入CSV表头
|
||
2. 对于每条路径的每个点:
|
||
3. 创建数据行
|
||
4. 写入坐标、类型等信息
|
||
5. 写入CSV文件
|
||
```
|
||
|
||
## 2.4.3.6. 流程逻辑
|
||
|
||
```
|
||
开始
|
||
│
|
||
▼
|
||
┌─────────────────┐
|
||
│ 选择要导出的路径 │
|
||
└────────┬────────┘
|
||
│
|
||
▼
|
||
┌─────────────────┐
|
||
│ 选择导出格式 │
|
||
└────────┬────────┘
|
||
│
|
||
┌────┼────┬────────┐
|
||
▼ ▼ ▼ ▼
|
||
┌──────┐┌──────┐┌──────┐┌──────┐
|
||
│ XML ││ JSON ││ CSV ││DELMIA│
|
||
└──┬───┘└──┬───┘└──┬───┘└──┬───┘
|
||
│ │ │ │
|
||
└───────┼───────┼───────┘
|
||
│ │
|
||
▼ ▼
|
||
┌─────────────────────┐
|
||
│ 配置导出字段和选项 │
|
||
└──────────┬──────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────┐
|
||
│ 选择保存文件路径 │
|
||
└──────────┬──────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────┐
|
||
│ 执行导出操作 │
|
||
└──────────┬──────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────┐
|
||
│ 验证导出结果 │
|
||
└──────────┬──────────┘
|
||
│
|
||
▼
|
||
┌─────────────────────┐
|
||
│ 显示导出完成信息 │
|
||
└──────────┬──────────┘
|
||
│
|
||
▼
|
||
结束
|
||
```
|
||
|
||
## 2.4.3.7. 接口
|
||
|
||
### 公共接口
|
||
```csharp
|
||
/// <summary>
|
||
/// 导出路径命令
|
||
/// </summary>
|
||
public class ExportPathCommand
|
||
{
|
||
/// <summary>
|
||
/// 执行导出
|
||
/// </summary>
|
||
/// <param name="routes">路径列表</param>
|
||
/// <param name="format">导出格式</param>
|
||
/// <param name="filePath">文件路径</param>
|
||
/// <returns>导出结果</returns>
|
||
public ExportResult Execute(List<PathRoute> routes, ExportFormat format, string filePath);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 导出格式枚举
|
||
/// </summary>
|
||
public enum ExportFormat
|
||
{
|
||
XML,
|
||
JSON,
|
||
CSV,
|
||
DELMIA
|
||
}
|
||
|
||
/// <summary>
|
||
/// 导出选项
|
||
/// </summary>
|
||
public class ExportOptions
|
||
{
|
||
public bool IncludeCoordinates { get; set; }
|
||
public bool IncludeTiming { get; set; }
|
||
public bool IncludeProperties { get; set; }
|
||
public bool UseMeters { get; set; }
|
||
}
|
||
```
|
||
|
||
## 2.4.3.8. 注释设计
|
||
|
||
### 代码注释规范
|
||
```csharp
|
||
/// <summary>
|
||
/// DELMIA导出配置
|
||
/// 用于生成DELMIA兼容的路径数据
|
||
/// </summary>
|
||
public class DelmiaExportConfig
|
||
{
|
||
/// <summary>
|
||
/// 坐标系类型
|
||
/// DELMIA使用特定的坐标系约定
|
||
/// </summary>
|
||
public CoordinateSystemType CoordinateSystem { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否包含速度信息
|
||
/// </summary>
|
||
public bool IncludeVelocity { get; set; }
|
||
|
||
/// <summary>
|
||
/// 采样间隔(秒)
|
||
/// </summary>
|
||
public double SampleInterval { get; set; }
|
||
}
|
||
```
|
||
|
||
## 2.4.3.9. 数据结构
|
||
|
||
### ExportFormat 枚举
|
||
| 值 | 说明 |
|
||
|---|------|
|
||
| XML | XML格式 |
|
||
| JSON | JSON格式 |
|
||
| CSV | CSV格式 |
|
||
| DELMIA | DELMIA兼容格式 |
|
||
|
||
### ExportOptions 结构
|
||
| 字段名 | 类型 | 说明 |
|
||
|-------|------|------|
|
||
| IncludeCoordinates | bool | 包含坐标信息 |
|
||
| IncludeTiming | bool | 包含时间信息 |
|
||
| IncludeProperties | bool | 包含属性信息 |
|
||
| UseMeters | bool | 使用米制单位 |
|
||
| Precision | int | 坐标精度(小数位) |
|
||
|
||
### XML格式示例
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<TransportPaths>
|
||
<Path id="path001" name="主通道路径">
|
||
<Length>125.5</Length>
|
||
<EstimatedTime>156.9</EstimatedTime>
|
||
<Points>
|
||
<Point index="0" type="Start">
|
||
<X>10.0</X>
|
||
<Y>20.0</Y>
|
||
<Z>0.0</Z>
|
||
</Point>
|
||
<!-- 更多点... -->
|
||
</Points>
|
||
</Path>
|
||
</TransportPaths>
|
||
```
|
||
|
||
### JSON格式示例
|
||
```json
|
||
{
|
||
"paths": [
|
||
{
|
||
"id": "path001",
|
||
"name": "主通道路径",
|
||
"length": 125.5,
|
||
"estimatedTime": 156.9,
|
||
"points": [
|
||
{
|
||
"index": 0,
|
||
"type": "Start",
|
||
"x": 10.0,
|
||
"y": 20.0,
|
||
"z": 0.0
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### CSV格式示例
|
||
```csv
|
||
PathID,PathName,PointIndex,PointType,X,Y,Z
|
||
path001,主通道路径,0,Start,10.0,20.0,0.0
|
||
path001,主通道路径,1,WayPoint,15.0,25.0,0.0
|
||
```
|