bit-monitor-gui

Qt6-based graphical monitor with real-time test result display.

Prerequisites

The target system must be running bit-manager with Zenoh enabled:

# On the target system
bit-manager --zenoh

Environment Variables

  • BIT_HOSTNAME - Override hostname for remote monitoring (default: system hostname)
  • ZENOH_CONFIG - Optional path to Zenoh YAML configuration file

Usage

Monitor the local system:

bit-monitor-gui

Or monitor a remote system:

bit-monitor-gui --hostname=<target-hostname>

Interface Layout

The GUI window displays three tabs:

  • PBIT - Power-On Built-In Tests
  • CBIT - Continuous Built-In Tests
  • FBIT - Factory Built-In Tests

Each tab contains:

Test Results Table

Columns:

  • Hostname - Target system hostname
  • Time - Timestamp of test result (click to sort)
  • Test - Human-readable test name (click to sort)
  • Result - PASS (green) or FAIL (red)
  • Details - Test-specific output and markers

Control Buttons

  • Enable All - Enable all tests in current tab
  • Disable All - Disable all tests in current tab
  • Enable Selected - Enable only selected tests (multi-select with Ctrl/Shift)
  • Disable Selected - Disable only selected tests
  • Run All - Run all tests in current tab once (marked "manual run")
  • Run Selected - Run only selected tests once (marked "manual run")

Statistics Panel

Bottom of each tab shows:

  • Total tests passed (green counter)
  • Total tests failed (red counter)
  • Live updates as results arrive

Screenshots

PBIT Tab:

PBIT Tab

CBIT Tab:

CBIT Tab

Remote Control Features

The GUI provides comprehensive remote control of bit-manager test execution.

Control Button Reference

Button Description Multi-Select
Enable All Enable all tests in the current tab (PBIT/CBIT/FBIT) N/A
Disable All Disable all tests in the current tab N/A
Enable Selected Enable only the selected tests Yes
Disable Selected Disable only the selected tests Yes
Run All Run all tests in current tab once N/A
Run Selected Run only selected tests once Yes

Usage Examples

Disable Unnecessary Tests Before Deployment

  1. Start GUI: bit-monitor-gui --hostname=production-device
  2. Switch to CBIT tab
  3. Select tests you want to disable (Ctrl+Click for multiple, Shift+Click for range)
  4. Click Disable Selected
  5. Verify tests no longer run periodically in the table

Run Diagnostic Test On-Demand

  1. Connect to remote device: bit-monitor-gui --hostname=test-device
  2. Find test in appropriate tab (PBIT/CBIT/FBIT)
  3. Click test row to select it
  4. Click Run Selected
  5. Watch for result with "(manual run)" in Details column

Enable All Tests After Maintenance

  1. Switch to each tab (PBIT, CBIT, FBIT)
  2. Click Enable All in each tab
  3. Observe tests resume periodic execution

Run All Enabled Tests Without Waiting

  1. Switch to desired test type tab
  2. Click Run All
  3. All tests execute immediately with "(manual run)" marker
  4. Periodic tests continue on their normal schedule

Interface Features

Multi-Selection:

  • Ctrl+Click - Select multiple individual tests
  • Shift+Click - Select a range of tests
  • Click empty area to deselect all

Sorting:

  • Click column headers to sort by: Hostname, Time, Test name, or Result
  • Click again to reverse sort order
  • Sorting does not affect control button behavior

Color Coding:

  • Green rows indicate PASS results
  • Red rows indicate FAIL results
  • Helps quickly identify issues

Manual Run Markers:

  • Test results from Run buttons show "(manual run)" in Details column
  • Distinguishes on-demand execution from scheduled periodic tests
  • Manual runs do not affect normal test scheduling

Persistent State:

  • Enable/disable changes persist to config files on target system
  • Changes survive bit-manager restarts and system reboots
  • Test enabled state is independent for each test

Real-Time Updates:

  • Table refreshes automatically as test results arrive via Zenoh
  • No manual refresh needed
  • Statistics counters update live

Thread-Safe Operation:

  • Zenoh callbacks run on background thread
  • GUI updates happen on main thread via QTimer
  • No blocking or UI freezes during network operations

Monitoring Multiple Hosts

Launch multiple GUI instances to monitor different systems:

./bit-monitor-gui --hostname=device-1 &
./bit-monitor-gui --hostname=device-2 &
./bit-monitor-gui --hostname=device-3 &

Troubleshooting

See Troubleshooting Guide for common monitor connectivity issues.

Next Steps