diff --git a/internal/cat/icomserial.go b/internal/cat/icomserial.go index 77699b1..5b4fc3a 100644 --- a/internal/cat/icomserial.go +++ b/internal/cat/icomserial.go @@ -347,7 +347,12 @@ func (b *IcomSerial) ReadState() (RigState, error) { case readerGone: debugLog.Printf("icom net: the CI-V reader has exited — the connection is dead however alive the control link looks → reconnecting") case at.Alive(): - debugLog.Printf("icom net: control link answers but no CI-V reply for %s → reconnecting. Another program (WSJT-X/OmniRig, the Remote Utility) has most likely taken the CI-V session.", silentFor.Round(time.Second)) + // No verdict on WHY: this fires for a session taken by another + // program (WSJT-X, the Remote Utility) AND for a rig that simply + // stopped answering — a real IC-7760 did exactly that once with + // nothing else on the network. Blaming a hijacker sent that + // operator hunting software that was not installed. + debugLog.Printf("icom net: control link answers but no CI-V reply for %s → reconnecting. Either another program took the CI-V session (WSJT-X/OmniRig/Remote Utility), or the rig stopped answering on its own.", silentFor.Round(time.Second)) default: debugLog.Printf("icom net: control link went quiet (no rig packets for >6 s) → reconnecting. If this recurs every ~2-3 min, the rig is invalidating the session (token renewal rejected).") }