Summary
Problem statement
When running Rigplane in web mode connected to an Icom IC-9700 over LAN, Rigplane automatically enables the radio's waterfall display (Spectrum Scope). If I manually turn the scope off by pressing the M.SCOPE button on the radio, Rigplane automatically forces the waterfall back on after approximately a 30-second delay.
While this behavior is completely understandable when a user is actively viewing the Rigplane Web UI in a browser, it is problematic when the Web UI is not being accessed. The overriding of the radio's physical state prevents manual control of the radio's display when running Rigplane as a headless or background service.
Describe the solution you'd like
I would like Rigplane's web mode backend to dynamically manage the IC-9700's scope state based on client connectivity. Specifically:
- Scope On: Only send the CI-V commands to enable and poll the spectrum scope when there is at least one active, authenticated browser/WebSocket session open to the Web UI.
- Scope Off/Idle: When all browser sessions are closed (no active clients connected to the web server), Rigplane should stop forcing the scope state, allowing the radio's physical display settings to be controlled manually without being overridden by the 30-second background polling loop.
Describe alternatives you've considered
- Manually turning off the scope repeatedly: This is ineffective as the background sync loop overrides the manual change every 30 seconds.
Additional context
- Rig: Icom IC-9700 connected via LAN.
- Observed Behavior: The 30-second reset cycle strongly points to a background state-enforcement or hydration loop that assumes the Web UI always requires scope data, regardless of whether a client is actually connected to ingest the stream.
Log output
WARNING scope-health: all-zero frames for 14s, re-enabling scope (attempt 1/3)
INFO radio-poller: scope enabled
INFO radio-poller: scope controls fetched (receiver=0)
WARNING scope-health: all-zero frames for 15s, re-enabling scope (attempt 1/3)
INFO radio-poller: scope enabled
INFO radio-poller: scope controls fetched (receiver=0)
WARNING scope-health: all-zero frames for 18s, re-enabling scope (attempt 1/3)
INFO radio-poller: scope enabled
INFO radio-poller: scope controls fetched (receiver=0)
Summary
Problem statement
When running Rigplane in web mode connected to an Icom IC-9700 over LAN, Rigplane automatically enables the radio's waterfall display (Spectrum Scope). If I manually turn the scope off by pressing the M.SCOPE button on the radio, Rigplane automatically forces the waterfall back on after approximately a 30-second delay.
While this behavior is completely understandable when a user is actively viewing the Rigplane Web UI in a browser, it is problematic when the Web UI is not being accessed. The overriding of the radio's physical state prevents manual control of the radio's display when running Rigplane as a headless or background service.
Describe the solution you'd like
I would like Rigplane's web mode backend to dynamically manage the IC-9700's scope state based on client connectivity. Specifically:
Describe alternatives you've considered
Additional context
Log output