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 <1/0> [Decimation]: Telemetry control. - FORCE : Persistent signal override. - UNFORCE : Remove override. - LOG : Port 8082 streaming format.