Files
marte-debug/DEMO.md
T
2026-05-07 10:49:24 +02:00

2.2 KiB
Raw Blame History

Demo Walkthrough: High-Speed Tracing

This demo traces a Timer.Counter signal at 100 Hz, tests execution control, and verifies signal forcing. It works with either transport — choose the option that matches your setup.


1. Build and Launch the Test Environment

source env.sh
make -f Makefile.gcc
./Build/x86-linux/Test/Integration/IntegrationTests

The integration test starts a MARTe2 application with DebugService or WebDebugService already configured and waits for client interaction.


2. Connect a Client

Option A — Web Browser (WebDebugService)

Open http://localhost:8090 in any browser. The UI appears instantly with the live object tree already loaded.

Option B — Rust GUI (DebugService)

cd Tools/gui_client
cargo run --release

3. Explore the Tree

  1. In the Application Tree, expand Root → App → Data → Timer.
  2. Click Info (web UI) or Info (Rust GUI) on the Timer node.
  3. Verify the config panel shows SleepTime: 10000 (100 Hz cycle).

4. Activate Trace

  1. Locate the Counter signal under Timer.
  2. Click Trace (web UI) or 📈 Trace (Rust GUI).
  3. The real-time plot begins with a monotonically increasing counter.
  4. Confirm telemetry is flowing:
    • Web UI: {"type":"trace",…} events appear in the browser DevTools Network tab.
    • Rust GUI: The UDP Packets counter in the top bar increments rapidly.

5. Test Execution Control

  1. Click Pause (⏸).
  2. Observe that the plot freezes and the counter holds steady.
  3. Click Step with count = 5.
  4. The counter advances exactly 5 units then stops.
  5. Click Resume (▶) to continue normal execution.

6. Test Signal Forcing

  1. Locate Root.App.Data.DDB.Counter.
  2. Click Force and enter 99999.
  3. Observe the oscilloscope plot jump to and hold at 99999.
  4. Click Unforce to release — the counter resumes its normal value.

7. Test a Breakpoint

  1. Click Break on Root.App.Data.DDB.Counter.
  2. Set operator > and threshold 500.
  3. Wait for the counter to exceed 500 — the application pauses automatically.
  4. The status shows PAUSED at the GAM that triggered the break.
  5. Click Break OFF then Resume to continue.