Files
marte-debug/specs.md
Martino Ferrari 5ef0efe7d6 Initial commit
2026-02-21 00:58:56 +01:00

1.9 KiB

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.

  1. 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.
  1. 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.
  1. 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.