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, 仿真, 传感器, 卫星, 实时系统, 嵌入式, 嵌入式系统, 开源框架, 异常检测, 异常识别, 报告, 持续集成, 数据擦除, 数据流, 无后门, 日志, 星链, 测试框架, 状态机, 硬件在环, 空间系统, 系统设计, 航天, 观测, 调试, 运行态, 逆向工具, 遥测