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:
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:
Or monitor a remote system:
Interface Layout¶
Welcome Tab¶

The initial Welcome tab displays the Astute Systems branding and BIT Monitor logo. At the bottom of the window, live counters show the current pass/fail statistics for each test type (PBIT, CBIT, FBIT) across all monitored hosts.
Config Tab - Host Configuration¶

The Config tab manages which hosts to monitor in a multi-host environment. Key features:
- Host Discovery - Automatically detects bit-manager instances on the network via Zenoh wildcard subscriptions
- Manual Host Addition - Enter a hostname in the text field and click "Add Custom Host" to monitor a specific system
- Monitor All Hosts - Check this checkbox to enable monitoring of all discovered hosts simultaneously
- Individual Host Selection - Check/uncheck individual hosts in the table to control which systems to monitor
- Host List Table - Displays all discovered hosts with:
- Checkbox to enable/disable monitoring for that host
- Hostname
- Connection status (Active/Inactive)
Multi-Host Monitoring
The GUI can monitor multiple hosts simultaneously. Test results from all checked hosts appear together in the PBIT, CBIT, and FBIT tabs. Use the Hostname column and sorting to organize results.
Tab Locking Behavior
Test tabs (PBIT, CBIT, FBIT) remain locked until at least one host is:
- Checked in the Config tab, AND
- Has sent its test list (indicating active connection)
This prevents confusion when no valid test data is available.

Unlocking Test Tabs: Check one or more hosts in the Config table. Once a checked host sends its test list, the PBIT, CBIT, and FBIT tabs become accessible, showing test results from all monitored hosts.
Host Filtering: Test results are filtered based on Config tab selections:
- Only checked hosts appear in test result tables
- Unchecking a host removes its results from view (but doesn't stop it from running)
- "Monitor All Hosts" checkbox enables all discovered hosts automatically
PBIT Tab - Power-On Built-In Test¶

The PBIT tab shows tests that run at system startup to verify operability. The example above shows a typical scenario after connecting mid-session:
- Disabled Tests (Run) - Tests like "Addition Test", "BSP version verification test", and "CAN bus status test" show No in the Enabled column but have PASS results with timestamps. These were manually disabled after running at startup.
- Disabled Tests (Not Run) - Tests like "Disk health verification", "Dmesg Check", and "Ethernet Interface Status" show No and PENDING status—they have been disabled and haven't run yet.
- Enabled Tests (Pending) - Tests like "File checksum verification test", "Firewall Configuration Test", and "GPIO Pin State" show Yes in the Enabled column but have PENDING status. The monitor connected after startup, so these tests haven't reported results yet.
The control buttons allow you to enable/disable tests or trigger manual runs. The bottom counters show live statistics (e.g., 5 PBIT passes with 0 failures).
Table Columns:
- Test - Human-readable test name (click to sort)
- Hostname - Target system hostname
- Enabled - Whether test is currently enabled (Yes/No)
- Result - PASS (green), FAIL (red), or PENDING
- Time - Timestamp of test result (click to sort)
- Details - Test-specific output and markers
CBIT Tab - Continuous Built-In Test¶

The CBIT tab displays ongoing system monitoring tests that run periodically. This example shows:
- All Tests Enabled - Every test shows Yes in the Enabled column, indicating active continuous monitoring
- Mixed Results - Tests like "CAN interface status monitoring" and "Continuous PCI whitelist monitoring" show PASS with timestamps, confirming successful execution
- Pending Tests - Many tests show PENDING status—either they haven't completed their first run cycle yet, or the monitor connected between test intervals
- Active Monitoring - The counters at the bottom (e.g., 15 CBIT passes and 3 failures) indicate continuous operation, with tests running on their configured intervals
CBIT tests are designed for runtime system health monitoring and typically run every few seconds to minutes depending on configuration.
FBIT Tab - Factory Built-In Test¶

The FBIT tab contains specialized factory and environmental qualification tests. As shown:
- All Tests Disabled - Every test shows No in the Enabled column with PENDING status
- Factory Use Only - FBIT tests are typically disabled in production deployments. They're only enabled during:
- Initial factory testing before deployment
- Environmental qualification procedures
- Hardware validation after repairs
- Specialized diagnostic scenarios
Examples include "CAN loop back test", "GPIO loop back test", "Serial loop back test", and "USB Factory test". These require special hardware configurations or test equipment and would interfere with normal system operation.
The bottom counter shows 0 FBIT results, which is expected for a production system.
Control Buttons¶
Each test tab (PBIT, CBIT, FBIT) provides control buttons that operate on monitored hosts:
Multi-Host Behavior:
-
"All" buttons (Enable All, Disable All, Run All) affect all currently monitored hosts
- Example: "Enable All" in CBIT tab enables all CBIT tests on every checked host
- Commands are sent to each monitored host simultaneously
- Useful for fleet-wide configuration changes
-
"Selected" buttons (Enable Selected, Disable Selected, Run Selected) work within the visible filtered results
- Select rows using Ctrl+Click (individual) or Shift+Click (range)
- Commands only affect tests on the hosts shown in selected rows
- Example: If you select 3 tests from host-A and 2 tests from host-B, the command affects both hosts
Button Reference:
- Enable All - Enable all tests in current tab on all monitored hosts
- Disable All - Disable all tests in current tab on all monitored hosts
- 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 on all monitored hosts (marked "manual run")
- Run Selected - Run only selected tests once (marked "manual run")
Filtering by Host
To operate on a single host:
- Sort by Hostname column (click header)
- Select range of tests for that host (Shift+Click)
- Use "Enable/Disable/Run Selected" buttons
Or go to Config tab and uncheck other hosts temporarily.
Statistics Panel¶
Bottom of each tab shows live counters:
- Total tests passed (green counter)
- Total tests failed (red counter)
- Updates automatically as results arrive
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¶
Monitor Multiple Production Systems¶
- Start GUI:
bit-monitor-gui - GUI automatically discovers all bit-manager instances on network
- Go to Config tab
- Check hosts you want to monitor (or enable "Monitor All Hosts")
- Switch to test tabs to see results from all checked hosts
- Sort by Hostname column to organize results by system
Disable Unnecessary Tests Fleet-Wide¶
- Ensure all target hosts are checked in Config tab
- Switch to CBIT tab
- Click Disable All to disable all CBIT tests on every monitored host
- Or select specific tests (Ctrl+Click) and use Disable Selected
Disable Tests on Single Host¶
- Go to Config tab and uncheck all hosts except your target
- Switch to appropriate test tab (PBIT/CBIT/FBIT)
- Click Disable All or select and use Disable Selected
- Re-enable other hosts in Config tab when done
Run Diagnostic Test On Multiple Devices¶
- Sort test table by Hostname (click column header)
- Select test rows from target hosts (use Shift+Click for ranges)
- Click Run Selected
- Watch for results with "(manual run)" marker
Enable All Tests After Maintenance¶
- Ensure target hosts are checked in Config tab
- Switch to each tab (PBIT, CBIT, FBIT)
- Click Enable All in each tab
- Observe tests resume periodic execution on all hosts
Interface Features¶
Multi-Selection:
Ctrl+Click- Select multiple individual testsShift+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¶
The GUI natively supports multi-host monitoring through the Config tab. Simply check the hosts you want to monitor, and results from all selected hosts appear together in the test tabs.
Troubleshooting¶
See Troubleshooting Guide for common monitor connectivity issues.
Next Steps¶
- bit-monitor-cli - Command-line monitor alternative
- Running Tests - Understanding test execution
- Test Types - PBIT, CBIT, and FBIT explained