fix(antenna,udp): name the reason tracking is off; infer the remote-tune unit
The SteppIR report was not a SteppIR fault. In the log the antenna starts, answers every poll, and sits at 21050 kHz while the rig works 21074 — and the status line only prints when the frame CHANGES, so a link that is alive and parked looks identical to one that died. The one line that explained it said "ultrabeam: follow loop stopped", which covers two quite different situations and, at startup where nothing was running, reads as a fault. Tracking was simply switched off. It now says which of the two it is, names the antenna type, and states the consequence — that the antenna will not follow the rig. Same log, a second and unrelated fault: every launch failed a tune request from DXHunter with "frequency 2107400000000 out of the 11-digit CAT range". <FREQ> was read as MHz, but DXHunter had echoed back the value OpsLog itself published in the N1MM RadioInfo broadcast, whose <Freq> is in tens of Hz. Both units come from the same peer, so the unit is now inferred: try MHz, kHz, Hz, tens of Hz, and keep the first that lands on an amateur band — anything a station is asked to tune to is in one. Hz before tens of Hz because their only overlap, 40 m against 4 m, is far more likely to be 40 m. Nothing plausible tunes nothing and says so, rather than sending the rig to a wrong band.
This commit is contained in:
@@ -15900,13 +15900,24 @@ func (a *App) restartMotorFollow(s UltrabeamSettings) {
|
||||
close(a.ubFollowStop)
|
||||
a.ubFollowStop = nil
|
||||
}
|
||||
if !s.Follow || a.motorAnt == nil {
|
||||
applog.Printf("ultrabeam: follow loop stopped")
|
||||
// Say WHICH of the two reasons it is. "follow loop stopped" covered both, and
|
||||
// at startup — where nothing was running to stop — it read as a fault. An
|
||||
// operator whose antenna sat at 21050 while the rig worked 21074 sent a log
|
||||
// that said the antenna had started, answered every poll, and had its follow
|
||||
// loop "stopped": three lines that together looked like a link going dead,
|
||||
// when tracking was simply switched off and the antenna was waiting to be
|
||||
// tuned by hand.
|
||||
if a.motorAnt == nil {
|
||||
applog.Printf("antenna: tracking not started — no antenna connected")
|
||||
return
|
||||
}
|
||||
if !s.Follow {
|
||||
applog.Printf("antenna: %s connected, but TRACKING IS OFF in Settings — it will not follow the rig, and only moves when you tune it by hand", s.Type)
|
||||
return
|
||||
}
|
||||
stop := make(chan struct{})
|
||||
a.ubFollowStop = stop
|
||||
applog.Printf("ultrabeam: follow loop restarting — covered bands %v, mode %s, step %d kHz", s.Bands, normMotorTrackMode(s.TrackMode), s.StepKHz)
|
||||
applog.Printf("antenna: %s tracking the rig — covered bands %v, mode %s, step %d kHz", s.Type, s.Bands, normMotorTrackMode(s.TrackMode), s.StepKHz)
|
||||
go a.ultrabeamFollowLoop(a.motorAnt, s.TrackMode, s.StepKHz, s.Bands, stop)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user