# 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 | 是 | 要导出的路径列表 | | Format | ExportFormat | 是 | 导出格式 | | ExportOptions | ExportOptions | 否 | 导出选项 | #### 输出字段 | 字段名 | 类型 | 说明 | |-------|------|------| | FilePath | string | 导出文件路径 | | ExportedCount | int | 导出的路径数量 | | FileSize | long | 文件大小 | ### 2. 界面交互输入输出 #### 界面输入 - 导出格式选择 - 字段选择勾选 - 文件路径选择 - DELMIA兼容选项 #### 界面输出 - 导出进度显示 - 文件大小信息 - 导出结果提示 - 文件预览 ## 2.4.3.5. 算法 ### XML导出算法 ``` 算法:导出路径为XML格式 输入:路径列表,导出选项 输出:XML文件 1. 创建XML文档 2. 添加根元素 3. 对于每条路径: 4. 创建元素 5. 添加路径属性(ID、名称、长度等) 6. 添加子元素 7. 对于每个路径点: 8. 创建元素 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 /// /// 导出路径命令 /// public class ExportPathCommand { /// /// 执行导出 /// /// 路径列表 /// 导出格式 /// 文件路径 /// 导出结果 public ExportResult Execute(List routes, ExportFormat format, string filePath); } /// /// 导出格式枚举 /// public enum ExportFormat { XML, JSON, CSV, DELMIA } /// /// 导出选项 /// 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 /// /// DELMIA导出配置 /// 用于生成DELMIA兼容的路径数据 /// public class DelmiaExportConfig { /// /// 坐标系类型 /// DELMIA使用特定的坐标系约定 /// public CoordinateSystemType CoordinateSystem { get; set; } /// /// 是否包含速度信息 /// public bool IncludeVelocity { get; set; } /// /// 采样间隔(秒) /// 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 125.5 156.9 10.0 20.0 0.0 ``` ### 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 ```