net_env_project/generation.json

32 lines
7.4 KiB
JSON
Raw 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.

{
"projectId": 75,
"generationId": "codegen_dde59ff85c1e4e4797ab9a9c6483a125",
"language": "C++",
"status": "completed",
"fileIds": [
1076
],
"outputDir": "D:\\workspace\\agent\\DocumentGenerateAgent\\agents\\ai_agents\\project-files\\codegen-runs\\codegen_dde59ff85c1e4e4797ab9a9c6483a125",
"relativeOutputDir": "codegen-runs/codegen_dde59ff85c1e4e4797ab9a9c6483a125",
"generatedFiles": [
"CMakeLists.txt",
"README.md",
"events.ndjson",
"include/app.hpp",
"src/dau.cpp",
"src/dsu.cpp",
"src/main.cpp",
"src/ppu.cpp",
"tests/basic_test.cpp"
],
"analysisSummary": "### **业务目标** \n构建一个高可靠、实时性强的机载系统网络通信环境支持多协议总线CAN/CANFD/Ethernet/RS422的数据采集、协议转换、数据存储与回放、路由转发及故障注入功能。系统需满足军用标准要求在Win11和Ubuntu 20.04双操作系统环境下稳定运行,服务于实验室测试与未来机载部署场景。\n\n---\n\n### **功能清单** \n1. **基础通用通讯功能**接收并处理来自多种总线和信号类型的原始数据帧完成ID过滤、波特率适配、错误处理及总线状态监控。 \n2. **协议兼容与互通信功能**实现CAN2.0与CANFD之间的协议识别与转换遵循ARINC825标准确保跨协议设备间通信一致性。 \n3. **数据存储功能**:将实时总线数据流进行缓冲预处理后持久化写入高速存储介质,具备磁盘故障告警与路径切换能力。 \n4. **数据管理与回放功能**:支持基于时间戳或事件索引的存储数据查询检索,并按原始时序精准回放数据流。 \n\n---\n\n### **数据结构** \n- **原始数据帧**字节数组Byte Array大小可变范围064字节来源于硬件平台由DAU接收。 \n- **CAN报文结构体**包含ID、数据域、时间戳等字段格式为864字节Hex编码用于总线收发。 \n- **控制指令与状态数据**JSON字符串格式通过TCP/IP传输用于上位机与系统的双向交互。 \n- **配置信息表SQLite**\n - `config_id` (int)\n - `config_name` (string)\n - `config_value` (string)\n - `create_time` (datetime) \n- **存储文件组织**:二进制文件存储原始报文,按时间戳+通道ID分类索引信息存于SQLite数据库中供快速检索。\n\n---\n\n### **接口或命令** \n| 接口标识 | 类型 | 方向 | 数据类型 | 描述 |\n|--------|------|-------|----------|------|\n| IF-HW-001 | 物理信号接口 | 输入 | Byte Array / Integer | 接收硬件平台的原始数据帧和状态信号 |\n| IF-CTRL-001 | 网络套接字TCP/IP | 双向 | JSON String | 上位机发送控制指令,系统返回状态数据 |\n| IF-BUS-001 | CAN/CANFD总线接口 | 双向 | Struct (CAN Frame) | 与外部被测设备进行报文收发 |\n\n**关键内部接口**\n- `RawDataIn`输入接收原始数据帧Byte[]\n- `ValidDataOut`输出输出经过滤的有效数据Struct\n- `CanFrameIn`输入接收CAN/CANFD帧\n- `CompatibleFrameOut`(输出):输出兼容格式帧\n- `DataStreamIn`(输入):接收待存储的数据流\n- `StorageStatus`输出返回当前存储状态Enum\n- `QueryCmd`(输入):接收查询条件结构体\n- `ReplayData`(输出):输出用于回放的字节流\n\n---\n\n### **约束** \n1. 运行环境限定为 **Windows 11** 和 **Ubuntu 20.04** 双盘系统。 \n2. 必须符合 **GJB 2786A-2009**、**GJB 438C-2021** 等军用软件开发标准。 \n3. 存储使用本地NVMe SSD不采用分布式存储方案。 \n4. 所有外部输入必须经过严格校验,防止注入攻击。 \n5. 软件模块必须支持独立测试与替换,耦合度低。 \n6. 关键操作需记录日志,支持审计追溯。 \n7. 支持宽温、抗振动、电磁兼容等机载环境适应性要求。\n\n---\n\n### **测试建议** \n1. **单元测试**对每个软件单元如DAU-001、PPU-001编写测试用例验证其输入输出行为是否符合设计说明。 \n2. **集成测试**:模拟完整数据流路径(采集→解析→存储/回放),检查各模块间接口协同是否正常。 \n3. **性能测试**使用LoadRunner或自定义脚本施加高负载数据流测量延迟、吞吐量、CPU/内存占用率结合Wireshark分析网络报文。 \n4. **容错测试**:人为制造磁盘满、断网、错误帧等异常情况,验证系统告警、恢复机制是否有效。 \n5. **安全性测试**尝试注入非法JSON指令或畸形CAN帧确认系统具备输入验证和异常拦截能力。 \n6. **环境适应性测试**在高低温、振动台、EMC实验室中运行系统验证稳定性。 \n7. **回归测试**:每次版本变更后,执行全量自动化测试套件,确保已有功能不受影响。\n\n---\n\n### **需求可追踪性明细**\n\n| 需求标识 | 需求名称 | 需求描述 | 来源文档 | 实现/验证方法 |\n|--------|--------|---------|----------|----------------|\n| SRS-F-01-001 | 基础通用通讯功能 | 系统应能接收以太网、RS422、CAN总线、模拟量和离散量的基本通讯数据并进行ID过滤、波特率适配、错误帧处理、睡眠/唤醒管理及总线负载监控。 | SRS-XXX-2026《XX机载系统网络通信环境软件需求规格说明书》 | 由 DAU-001 模块中的 `DAU_Process` 方法实现通过注入多类型原始数据帧并观察ValidDataOut输出与ErrorLog日志进行验证。 |\n| SRS-F-01-002 | 协议兼容与互通信功能 | 系统应支持CAN2.0与CANFD设备间的互通信依据ARINC825标准进行协议转换或适配兼容标准帧与扩展帧格式若格式不支持则记录日志并丢弃。 | SRS-XXX-2026《XX机载系统网络通信环境软件需求规格说明书》 | 由 PPU-001 模块中的 `PPU_Convert` 和 `PPU_Check` 方法实现通过输入不同协议类型的CAN帧并检测输出兼容性及日志记录情况进行验证。 |\n| SRS-F-02-001 | 数据存储功能 | 系统应能将总线数据持久化保存,接收实时数据流并进行缓冲预处理,按时间戳或事件索引写入存储介质;当发生磁盘故障时,应发出告警并尝试切换至备用存储路径。 | SRS-XXX-2026《XX机载系统网络通信环境软件需求规格说明书》 | 由 DSU-001 模块中的 `DSU_Write` 和 `DSU_CheckDisk` 方法实现;通过模拟大流量写入及磁盘拔出操作,验证数据完整性与故障切换机制。 |\n| SRS-F-02-002 | 数据管理与回放功能 | 系统应支持对已存储数据的查询、检索,并能够按照原始时序精确回放;若数据损坏,应跳过坏块并记录日志;回放过程需保持原始时间戳间隔。 | SRS-XXX-2026《XX机载系统网络通信环境软件需求规格说明书》 | 由 DSU-002 模块中的 `DSU_Query` 和 `DSU_Replay` 方法实现;通过界面触发回放请求,比对输出数据的时间戳序列与原始记录的一致性进行验证。 |",
"eventLogFile": "D:\\workspace\\agent\\DocumentGenerateAgent\\agents\\ai_agents\\project-files\\codegen-runs\\codegen_dde59ff85c1e4e4797ab9a9c6483a125\\events.ndjson",
"repoSettings": {
"username": "root",
"password": "pAssW0rd",
"repoUrl": "http://47.108.255.216:3000/root/net_env_project.git",
"branch": "main"
},
"repoUrl": "http://47.108.255.216:3000/root/net_env_project.git",
"branch": "main"
}