Architecture¶
High-Level Architecture¶
LoopCheck intentionally separates GUI, simulation core, and evaluation to keep tests reproducible and maintainable.
Modules and Responsibilities¶
GUI Layer¶
- File: sim_worker.py
- Responsibilities: user interaction, signal display, scenario start, live interaction
Simulation Layer¶
- Files: sim_process.py, sim_helper.py
- Responsibilities: time-step processing, signal data flow, history generation
Runner Layer¶
- Files: xprt_runner.py, xprt_serial_runner.py
- Responsibilities: connection to local runtime and serial execution
Scenario and Assertion Layer¶
- Files: scenario_builder.py, assertion_evaluator.py, scenario_report_generator.py
- Responsibilities: scenario definition, result validation, report output
Data Flow¶
- GUI creates runtime configuration
- Simulation process handles inputs and model execution
- Measurements and status are sent back to the GUI
- Assertions are evaluated offline or during execution
- Results are persisted in reports
Extension Points¶
- New scenario blocks in the Scenario Builder
- Additional assertion types in the evaluator
- Alternative runners for new target systems
- Additional report export formats