Initial commit

This commit is contained in:
Martino Ferrari
2026-02-21 00:58:56 +01:00
commit 5ef0efe7d6
26 changed files with 7999 additions and 0 deletions

41
specs.md Normal file
View File

@@ -0,0 +1,41 @@
Project Specification: MARTe2 Universal Observability & Debugging Suite
Version: 1.1
Date: 2023-10-27
Status: Active / Implemented
1. Executive Summary
This project implements a "Zero-Code-Change" observability and debugging layer for the MARTe2 real-time framework. The system allows developers to Trace, Force, and Monitor any signal in a running MARTe2 application without modifying existing source code.
2. System Architecture
- The Universal Debug Service (C++ Core): A singleton MARTe2 Object that patches the registry and manages communication.
- The Broker Injection Layer (C++ Templates): Templated wrappers that intercept Copy() calls for tracing, forcing, and execution control.
- The Remote Analyser (Rust/egui): A high-performance, multi-threaded GUI for visualization and control.
3. Functional Requirements
3.1 Execution Control
- REQ-25: Execution Control (Pause/Resume): The system SHALL provide a mechanism to pause and resume the execution of all patched real-time threads (via Brokers), allowing for static inspection of the system state.
3.2 Discovery
- REQ-24: Tree Exploration: The GUI client SHALL request the full application tree upon connection and display it in a hierarchical tree view.
- TREE Command: Returns a recursive JSON structure representing the entire application tree, including signal metadata (Type, Dimensions, Elements).
3.3 Multi-Threaded Client (REQ-23)
- Port 8080 (TCP): Commands and Metadata.
- Port 8082 (TCP): Independent Real-Time Log Stream.
- Port 8081 (UDP): High-Speed Telemetry for Oscilloscope.
4. Communication Protocol
- LS [Path]: List nodes.
- TREE: Full recursive JSON application map.
- PAUSE / RESUME: Execution control.
- TRACE <Signal> <1/0> [Decimation]: Telemetry control.
- FORCE <Signal> <Value>: Persistent signal override.
- UNFORCE <Signal>: Remove override.
- LOG <Level> <Msg>: Port 8082 streaming format.