42 lines
1.9 KiB
Markdown
42 lines
1.9 KiB
Markdown
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.
|