82 lines
2.2 KiB
Markdown
82 lines
2.2 KiB
Markdown
# 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
|
||
|
||
```bash
|
||
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`)
|
||
|
||
```bash
|
||
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.
|