isacantarerom/orion

GitHub: isacantarerom/orion

一个用 C++ 实现的硬件在环测试框架,模拟卫星遥测并驱动异常检测与 CI 友好报告,解决星链类系统的集成验证难题。

Stars: 0 | Forks: 0

# ORION 🛰️ ### 轨道运行时集成与观测节点 一个用 C++ 编写的硬件在环(HIL)测试框架,灵感来源于实际卫星软件开发中使用的 测试基础设施。 作为一个学习项目而构建,旨在深入理解:测试系统设计、异常检测、CI 流水线,以及 嵌入式/空间系统的调试直觉。 ## 功能 ORION 模拟一组卫星遥测数据(功率、热控、姿态、通信、推进),针对这些数据运行测试引擎, 检测异常、记录结果并生成结构化报告——所有功能均可通过一个对 CI 友好的脚本触发。 ``` [Telemetry Simulator] → [Test Engine] → [Anomaly Detector] → [Logger] → [Python Reporter] ↑ ↑ (fake hardware) (human report) ``` ## 项目结构 ``` orion/ ├── CMakeLists.txt # Build system ├── run_tests.sh # CI entry point — run this to do everything ├── include/ # Interfaces (.hpp) — the WHAT │ ├── telemetry.hpp │ ├── simulator.hpp │ ├── test_engine.hpp │ ├── anomaly_detector.hpp │ └── logger.hpp ├── src/ # Implementations (.cpp) — the HOW │ ├── simulator.cpp │ ├── test_engine.cpp │ ├── anomaly_detector.cpp │ └── logger.cpp ├── tests/ │ └── main.cpp # Test entry point └── reporter/ └── report.py # Python analysis layer ``` ## 如何构建与运行 ``` # 构建 mkdir build && cd build cmake .. make # 运行 ./orion_tests # 或者通过 CI 脚本一次性运行所有内容(wip) ./run_tests.sh ``` ## 涵盖的概念 | 概念 | 对应文件 | |---|---| | HIL 测试框架设计 | `simulator.hpp`, `test_engine.hpp` | | 异常检测 + 状态机 | `anomaly_detector.cpp` | | 结构化日志(JSON 输出) | `logger.cpp` | | CI 流水线设计 | `run_tests.sh` + GitHub Actions | | 数据分析与报告 | `reporter/report.py` | | 依赖注入与可测试性 | `simulator.hpp` 接口模式 | ## 里程碑 - [x] 第一天 — 搭建脚手架 + 遥测数据模型 - [ ] 第二天 — 遥测模拟器(虚拟硬件) - [ ] 第三天 — 测试引擎 + 断言 - [ ] 第四天 — 异常检测器 - [ ] 第五天 — 日志记录器 + JSON 输出 - [ ] 第六天 — Python 报告器 + Bash CI 脚本 - [ ] 第七天 — 混沌模式 + 面试演练 [Test Your Knowledge QA](test-your-knowledge.md)
标签:Bash脚本, C++, CI, CMake, HIL, Python, 仿真, 传感器, 卫星, 实时系统, 嵌入式, 嵌入式系统, 开源框架, 异常检测, 异常识别, 报告, 持续集成, 数据擦除, 数据流, 无后门, 日志, 星链, 测试框架, 状态机, 硬件在环, 空间系统, 系统设计, 航天, 观测, 调试, 运行态, 逆向工具, 遥测