{
  "projectId": 83,
  "generationId": "codegen_6d86f8e27b034f19a3c48454544db10c",
  "language": "C++",
  "status": "completed",
  "fileIds": [
    1226
  ],
  "outputDir": "D:\\workspace\\agent\\DocumentGenerateAgent\\agents\\ai_agents\\project-files\\codegen-runs\\codegen_6d86f8e27b034f19a3c48454544db10c",
  "relativeOutputDir": "codegen-runs/codegen_6d86f8e27b034f19a3c48454544db10c",
  "generatedFiles": [
    "CMakeLists.txt",
    "README.md",
    "events.ndjson",
    "include/app.hpp",
    "src/app.cpp",
    "src/main.cpp",
    "tests/basic_test.cpp"
  ],
  "analysisSummary": "好的，作为需求分析助手，我已根据您提供的《软件设计说明书》文档，提炼出代码工程生成所需的关键信息。以下为结构化分析结果。\n\n### 业务目标\n\n设计并实现一个“总线网络测试验证软件 (BNTVS_SW)”，作为“机载总线网络测试验证系统”的核心控制与数据处理软件。该软件运行在总线节点计算机和存储服务计算机上，旨在通过统一的用户界面，提供对机载通信总线（以太网、RS422、CAN、模拟量/离散量）的实时监听、协议解析、数据存储、故障诊断、故障注入、性能测试及数据管理与回放等功能，用于在地面环境中验证机载通信设备的功能、性能、可靠性及兼容性。\n\n### 功能清单\n\n根据文档第5章“CSCI详细设计”，软件包含以下9个核心功能单元：\n\n1.  **基础通用通信单元 (SU-COM)**：实现以太网、RS422、CAN、模拟量和离散量的多总线并发基础通信，支持帧解析、ID过滤、波特率适配、错误帧处理、睡眠唤醒及总线负载监控。\n2.  **协议兼容单元 (SU-PROT)**：实现CAN2.0与CANFD协议的自动识别、切换适配，以及标准帧/扩展帧的格式兼容转换，确保数据转发一致性。\n3.  **数据存储单元 (SU-STOR)**：根据用户策略，将总线通信数据按时间顺序持久化存储到文件系统，支持自动分段存储，监控磁盘容量并在满时触发告警及覆盖最旧数据。\n4.  **数据管理与回放单元 (SU-REPLAY)**：提供历史数据的检索、删除、导出等管理功能，并能按原始时序、可调速度将存储数据回放到总线分析单元。\n5.  **总线路由单元 (SU-ROUTE)**：实现以太网与CAN网络间的数据转发交换和路由寻址（支持静态/动态路由），以及以太网-CAN协议的转换适配。\n6.  **总线分析单元 (SU-ANALY)**：提供总线实时监听、协议解析（CANFD/CAN2.0）、故障诊断（位错误、CRC错误等）、网络状态监视（刷新率≥1Hz）及数据统计回放等功能。\n7.  **故障注入单元 (SU-FAULT)**：支持向目标总线注入短路/断路、电磁干扰、错误帧、节点离线/异常接入及波特率异常波动等故障，以测试系统容错能力。\n8.  **信号转换单元 (SU-CONV)**：将离散量和模拟量信号进行数字化处理，并转换为网络总线、RS422或CAN总线信号，支持接口扩展。\n9.  **总线测试分析单元 (SU-TEST)**：执行40m内及40m以上总线的传输延迟、吞吐量、丢包率等性能测试，以及长时间满负荷（≥24小时）的稳定性测试，并生成报告。\n\n### 数据结构\n\n**业务数据存储方案**：使用MySQL关系数据库管理结构化业务数据，采用对象存储系统管理非结构化文件数据。\n\n**核心数据库表设计**：\n\n1.  **总线数据记录表 (业务流程)**:\n    - 记录ID (record_id): BIGINT, Private\n    - 总线类型 (bus_type): VARCHAR(20), Private\n    - 时间戳 (timestamp): DATETIME(6), Private\n    - 帧ID (frame_id): INT, Private\n    - 数据长度 (data_length): INT, Private\n    - 数据内容 (data_content): BLOB, Private\n    - 协议类型 (protocol_type): VARCHAR(20), Private\n    - 采集节点 (node_id): VARCHAR(50), Private\n    - 创建时间 (create_time): DATETIME, Private\n\n2.  **路由表 (总线路由单元)**:\n    - 路由ID (route_id): INT, Private\n    - 目标网络 (dest_network): VARCHAR(20), Private\n    - 子网掩码 (netmask): VARCHAR(20), Private\n    - 下一跳地址 (next_hop): VARCHAR(20), Private\n    - 出接口 (out_interface): VARCHAR(20), Private\n    - 路由优先级 (priority): INT, Private\n    - 路由类型 (route_type): VARCHAR(10), Private\n\n**文件数据存储目录结构**：\n- 一级 `/data/`\n- 二级 `/YYYYMMDD/`\n- 三级 `/BUS_TYPE/`\n- 文件 `/HHMMSS_SEQ.bin`\n\n### 接口或命令\n\n**外部接口**：\n\n- **IFC-ETH-001 (以太网接口)**：与以太网设备通信，使用TCP/IP、UDP协议，全双工，千兆速率，支持IEEE 802.3标准。\n- **IFC-RS422-001 (RS422接口)**：与RS422设备通信，使用RS422异步串行协议，全双工，波特率自适应。\n- **IFC-CAN-001 (CAN接口)**：与CAN总线设备通信，使用CAN2.0B/CANFD协议，半双工，波特率5K~1Mbps可调。\n- **IFC-AN-DI-001 (信号采集接口)**：与模拟量/离散量设备交互，模拟量0~10V，12位精度；离散量0/5V TTL电平，支持48路I/O。\n- **IFC-COM-STOR-001 (数据通信接口)**：与存储服务计算机通信，使用以太网TCP/IP，全双工，千兆速率。\n- **IFC-GUI-001 (图形用户界面接口)**：与用户交互，遵循Windows/Linux窗口系统协议，事件驱动。\n\n**内部命令/接口**（数据流/控制流）：\n\n- 各单元间通过内部接口传递数据或命令，如 `IFC-DATA-OUT`（基础通用通信单元输出）、`IFC-LISTEN-CMD`（启动/停止监听命令）、`IFC-INJECT-CMD`（故障注入指令）、`IFC-REQ-QUERY`（查询条件）、`IFC-REQ-REPLAY`（回放指令）等。\n\n### 约束\n\n1.  **运行环境**：部署在Windows 11 Pro和Ubuntu 20.04 LTS双系统上，硬件要求≥Intel Core i7-14700K CPU、≥64GB DDR5 4800MHz内存、≥2TB NVMe SSD + 8TB HDD存储、NVIDIA RTX5070显卡。存储服务计算机配置相同。\n2.  **性能约束**：\n    - 基础通用通信：多总线并发处理延迟 ≤ 1ms。\n    - 协议转换：总线路由协议转换时延 ≤ 1μs。\n    - 以太网交换容量：千兆，≥24口，全线速无阻塞转发。\n    - CAN接口：≥8路CANFD接口。\n    - 网络状态监视刷新率 ≥ 1Hz。\n    - 信号转换延迟 ≤ 1ms。\n    - 长时间满负荷测试时长 ≥ 24h。\n3.  **安全性约束**：遵循纵深防御原则，实施身份认证、基于角色的访问控制、输入数据格式校验、会话管理（超时自动注销）。\n4.  **质量约束**：需满足可靠性（故障隔离、参数校验、错误日志）、维护性（模块化、统一编码规范、日志记录、健康检查）、测试性（内置测试模式、模块测试接口、硬件在环测试支持）和环境适应性（抗高温/低温/震动/腐蚀/粉尘）要求。\n5.  **技术标准**：遵循GJB438C-2021《军用软件开发文档通用要求》及ARINC825等规范。\n\n### 测试建议\n\n根据文档第3.5节“软件性能设计决策”和第3.6.4节“测试性设计决策”，测试建议如下：\n\n- **测试方向**：聚焦于多总线并发处理能力、数据存储与回放性能、总线监听捕获速率、路由转发性能、故障注入响应时间、长时间满负荷运行稳定性。\n- **测试场景**：\n    - **单元测试**：对每个软件单元（SU-COM至SU-TEST）进行独立测试，通过模块测试接口输入预设数据，验证输出结果的正确性。\n    - **集成测试**：测试单元间接口（如基础通信单元与协议兼容单元、数据存储单元的交互）和数据流是否正确。\n    - **系统测试**：\n        - 性能测试：使用LoadRunner或Apache JMeter模拟高并发场景，验证性能指标是否达标。\n        - 压力测试：进行长时间（≥24小时）满负荷运行，观察系统稳定性。\n        - 安全测试：验证身份认证、权限验证、输入校验等安全机制是否生效。\n        - 故障注入测试：利用系统自身的故障注入单元或外部设备，模拟各种总线故障，验证系统的容错和告警能力。\n- **测试工具**：推荐使用LoadRunner（企业级负载测试）或Apache JMeter（开源接口/稳定性测试）。\n- **测试性设计配合**：利用系统内置的“测试模式”，通过序列化接口获取详细日志和中间结果，辅助问题定位。\n\n---\n\n### 需求可追踪性明细\n\n以下为严格依据文档“表23 软件设计说明–软件需求规格说明追踪表”提取的需求追踪信息，确保每个需求标识均取自“CSCI需求标识（SRS-F-…）”列。\n\n| 需求标识 | 需求名称 | 需求描述 | 来源文档 | 建议实现/验证层 |\n| :--- | :--- | :--- | :--- | :--- |\n| **SRS-F-01-001** | 基础通用通讯功能 | 实现以太网、RS422、CAN、模拟量、离散量的基本通讯。 | 文档 1226：软件设计说明书.docx | 系统集成/系统测试 |\n| **SRS-F-01-002** | 协议兼容功能 | 实现CAN2.0与CANFD协议兼容、切换和转发一致性。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-01-003** | CPU配置要求 | 总线节点计算机CPU配置要求。 | 文档 1226：软件设计说明书.docx | 系统部署/验证 |\n| **SRS-F-01-004** | 内存配置要求 | 总线节点计算机内存配置要求。 | 文档 1226：软件设计说明书.docx | 系统部署/验证 |\n| **SRS-F-01-005** | 硬盘配置要求 | 总线节点计算机硬盘配置要求。 | 文档 1226：软件设计说明书.docx | 系统部署/验证 |\n| **SRS-F-01-006** | 显卡配置要求 | 总线节点计算机显卡配置要求。 | 文档 1226：软件设计说明书.docx | 系统部署/验证 |\n| **SRS-F-01-007** | 接口配置要求 | 总线节点计算机接口配置要求。 | 文档 1226：软件设计说明书.docx | 系统部署/验证 |\n| **SRS-F-01-008** | 显示器配置要求 | 总线节点计算机显示器配置要求。 | 文档 1226：软件设计说明书.docx | 系统部署/验证 |\n| **SRS-F-01-009** | 系统部署要求 | 总线节点计算机系统部署要求。 | 文档 1226：软件设计说明书.docx | 系统部署/验证 |\n| **SRS-F-02-001** | 数据存储功能 | 实现通信数据的持久化存储和管理。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-02-002** | 数据管理与数据回放功能 | 支持历史数据的检索、管理和按需回放。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-02-003** | CPU配置要求（存储服务） | 存储服务计算机CPU配置要求。 | 文档 1226：软件设计说明书.docx | 系统部署/验证 |\n| **SRS-F-02-004** | 内存配置要求（存储服务） | 存储服务计算机内存配置要求。 | 文档 1226：软件设计说明书.docx | 系统部署/验证 |\n| **SRS-F-02-005** | 硬盘配置要求（存储服务） | 存储服务计算机硬盘配置要求。 | 文档 1226：软件设计说明书.docx | 系统部署/验证 |\n| **SRS-F-02-006** | 显卡配置要求（存储服务） | 存储服务计算机显卡配置要求。 | 文档 1226：软件设计说明书.docx | 系统部署/验证 |\n| **SRS-F-02-007** | 接口配置要求（存储服务） | 存储服务计算机接口配置要求。 | 文档 1226：软件设计说明书.docx | 系统部署/验证 |\n| **SRS-F-02-008** | 显示器配置要求（存储服务） | 存储服务计算机显示器配置要求。 | 文档 1226：软件设计说明书.docx | 系统部署/验证 |\n| **SRS-F-02-009** | 系统部署要求（存储服务） | 存储服务计算机系统部署要求。 | 文档 1226：软件设计说明书.docx | 系统部署/验证 |\n| **SRS-F-06-001** | 信号转换功能 | 将离散量和模拟量信号转换为总线信号。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-06-002** | 离散量接入数量要求 | 离散量接入数量要求。 | 文档 1226：软件设计说明书.docx | 系统验证 |\n| **SRS-F-06-003** | 模拟量接入数量要求 | 模拟量接入数量要求。 | 文档 1226：软件设计说明书.docx | 系统验证 |\n| **SRS-F-06-004** | 总线接口数量要求 | 总线接口数量要求。 | 文档 1226：软件设计说明书.docx | 系统验证 |\n| **SRS-F-06-005** | 模拟量离散量转总线信号功能 | 实现模拟量/离散量向总线信号的转换。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-06-006** | 接口扩展功能 | 支持未来更多接口的需求扩展。 | 文档 1226：软件设计说明书.docx | 设计评审 |\n| **SRS-F-07-001** | 数据转发交换功能 | 实现数据转发交换功能。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-07-002** | 路由寻址功能 | 实现路由寻址功能。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-07-003** | 以太网-CAN协议转换适配功能 | 实现以太网与CAN协议间的转换适配。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-07-004** | 以太网交换容量要求 | 以太网交换容量要求。 | 文档 1226：软件设计说明书.docx | 系统验证 |\n| **SRS-F-07-005** | 网络端口速率要求 | 网络端口速率要求。 | 文档 1226：软件设计说明书.docx | 系统验证 |\n| **SRS-F-07-006** | CAN接口要求 | CAN接口要求。 | 文档 1226：软件设计说明书.docx | 系统验证 |\n| **SRS-F-07-007** | 路由功能要求 | 支持静态路由和动态路由协议。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-07-008** | 转发时延要求 | 协议转换时延要求。 | 文档 1226：软件设计说明书.docx | 系统测试/验证 |\n| **SRS-F-09-001** | 总线实时监听功能 | 实现总线实时监听。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-09-002** | 协议解析解码功能 | 实现协议解析解码。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-09-003** | 故障诊断分析功能 | 实现故障诊断分析。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-09-004** | 波形与时序分析功能 | 实现波形与时序分析。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-09-005** | 数据统计回放功能 | 实现数据统计回放。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-09-006** | 网络状态监视功能 | 实现网络状态监视。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-09-007** | 支持协议要求 | 支持CANFD和CAN2.0协议。 | 文档 1226：软件设计说明书.docx | 系统验证 |\n| **SRS-F-09-008** | 波特率范围要求 | 支持的波特率范围要求。 | 文档 1226：软件设计说明书.docx | 系统验证 |\n| **SRS-F-09-009** | 采样精度要求 | 采样精度要求。 | 文档 1226：软件设计说明书.docx | 系统验证 |\n| **SRS-F-09-010** | 报文捕获速率要求 | 报文捕获速率要求。 | 文档 1226：软件设计说明书.docx | 系统测试/验证 |\n| **SRS-F-09-011** | 错误帧识别要求 | 要求识别位错误、CRC错误等。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-09-012** | 数据回放精度要求 | 数据回放精度要求。 | 文档 1226：软件设计说明书.docx | 系统测试/验证 |\n| **SRS-F-10-001** | 40m内总线测试分析功能 | 实现40m内总线传输性能测试分析。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-10-002** | 40m以上总线测试分析功能 | 实现40m以上含中继总线的测试分析。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-10-003** | 长时间满负荷测试分析功能 | 实现长时间满负荷运行、重复启停等测试分析。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-12-001** | 总线短路/断路注入 | 实现总线短路、断路故障注入。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-12-002** | 电磁干扰注入 | 实现电磁干扰故障注入。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-12-003** | 错误帧注入 | 实现错误帧故障注入。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-12-004** | 节点离线/异常接入 | 实现节点离线、异常接入故障注入。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |\n| **SRS-F-12-005** | 波特率异常波动注入 | 实现波特率异常波动故障注入。 | 文档 1226：软件设计说明书.docx | 单元/集成/系统测试 |",
  "eventLogFile": "D:\\workspace\\agent\\DocumentGenerateAgent\\agents\\ai_agents\\project-files\\codegen-runs\\codegen_6d86f8e27b034f19a3c48454544db10c\\events.ndjson",
  "repoSettings": {
    "username": "root",
    "password": "pAssW0rd",
    "repoUrl": "http://47.108.255.216:3000/root/document_generate.git",
    "branch": "main"
  },
  "repoUrl": "http://47.108.255.216:3000/root/document_generate.git",
  "branch": "main"
}