Files
OpsLog/internal
rouggy bd5f9c0746 fix: Icom over LAN froze on the last frequency after WSJT-X released the rig
The network backend treated "control link alive but no CI-V reply" as the rig
being in standby, and tolerated it WITHOUT BOUND. When another program takes the
CI-V session — WSJT-X through OmniRig, or the Remote Utility — the rig goes on
answering pings on the control stream while sending us nothing at all. Alive()
stayed true, so ReadState returned the cached frequency with err == nil, the
Manager never saw a failure, never reconnected, and re-published a frozen number
with a fresh timestamp on every poll. Only restarting OpsLog cleared it.

Bounded now, on the last SUCCESSFUL read. Past the grace the error is reported so
the Manager tears the session down and reconnects, which re-takes the CI-V
stream. Also fatal immediately: the CI-V reader goroutine having exited — no read
can ever succeed after that, however healthy the control link looks.

The grace backs off to minutes when the silence persists, because the two cases
pull opposite ways: a stolen session recovers on the first attempt, while a rig
switched OFF is silent for hours and re-tearing its session every 30 s would
blink the panel — and its ON button — away continuously. A good read resets it.

The decision table is pinned by a test; the standby case (never answered since
connect) keeps the old tolerate-for-ever behaviour.
2026-07-28 22:24:32 +02:00
..
2026-07-21 18:26:34 +02:00
2026-07-03 19:08:50 +02:00
up
2026-06-14 01:35:40 +02:00
2026-07-04 11:39:33 +02:00
2026-07-27 00:16:17 +02:00
up
2026-06-15 23:45:14 +02:00
2026-06-07 01:11:37 +02:00
2026-07-21 21:48:23 +02:00
2026-06-11 21:54:35 +02:00
up
2026-06-15 23:45:14 +02:00
2026-07-09 17:32:13 +02:00
2026-07-26 16:57:19 +02:00
2026-07-26 16:57:19 +02:00
2026-07-26 16:57:19 +02:00