# MARTe2 Debug Suite Specifications ## 1. Goal Implement a "Zero-Code-Change" observability layer for the MARTe2 real-time framework, providing live telemetry, signal forcing, and execution control without modifying existing application source code. ## 2. Requirements ### 2.1 Functional Requirements (FR) - **FR-01 (Discovery):** Discover the full MARTe2 object hierarchy at runtime. - **FR-02 (Telemetry):** Stream high-frequency signal data (verified up to 100Hz) to a remote client. - **FR-03 (Forcing):** Allow manual override of signal values in memory during execution. - **FR-04 (Logs):** Stream global framework logs to a dedicated terminal via a standalone `TcpLogger` service. - **FR-05 (Execution Control):** Pause and resume the real-time execution threads via scheduler injection. - **FR-06 (UI):** Provide a native, immediate-mode GUI for visualization (Oscilloscope). ### 2.2 Technical Constraints (TC) - **TC-01:** No modifications allowed to the MARTe2 core library or component source code. - **TC-02:** Instrumentation must use Runtime Class Registry Patching. - **TC-03:** Real-time threads must remain lock-free; use `FastPollingMutexSem` or atomic operations for synchronization. - **TC-04:** Telemetry must be delivered via UDP to minimize impact on real-time jitter. ## 3. Performance Metrics - **Latency:** Telemetry dispatch overhead < 5 microseconds per signal. - **Throughput:** Support for 100Hz+ sampling rates with zero packet loss on local networks. - **Scalability:** Handle up to 4096 unique signals and 16 simultaneous client connections.