feat(cat): MY_RIG follows the radio that is connected
With one rig, MY_RIG belonged in Operating conditions and nowhere else. With several, that becomes the wrong place: operating conditions describe a PLAN — 'on 20 m I use the beam and the 7300' — while the question a logged QSO asks is which radio was keying. So each saved radio carries its own MY_RIG, consulted BEFORE the per-band station. When the two disagree — a second rig borrowed for one evening on 20 m — the one that is transmitting is the true answer. Left empty it changes nothing at all: the old chain (band default, then the profile's rig) answers exactly as it did, which is what every single-radio station will keep doing without touching a setting.
This commit is contained in:
@@ -43,6 +43,14 @@ type RadioConfig struct {
|
||||
// the CAT panel has always edited, so a saved radio is exactly "what the
|
||||
// settings said the day it was saved".
|
||||
Settings CATSettings `json:"settings"`
|
||||
// MyRig is what goes into MY_RIG on a QSO made with this radio.
|
||||
//
|
||||
// It belongs here rather than in Operating conditions once there is more
|
||||
// than one rig: the operating conditions describe a PLAN — "on 20 m I use
|
||||
// the beam and the 7300" — while this is the fact of which radio is keying.
|
||||
// Left empty, nothing changes: the old chain (band default, then the
|
||||
// profile's rig) answers exactly as it did.
|
||||
MyRig string `json:"my_rig"`
|
||||
}
|
||||
|
||||
// radioLabel is what the status bar shows when the operator never named one.
|
||||
@@ -204,3 +212,26 @@ func (a *App) syncActiveRadio(s CATSettings) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// activeRadioMyRig is the MY_RIG of the radio currently connected, or "".
|
||||
//
|
||||
// Consulted BEFORE the per-band default, and deliberately: the band default is
|
||||
// what the operator planned to use on that band, this is which radio is
|
||||
// actually on the air. When they disagree — a second rig borrowed for one
|
||||
// evening on 20 m — the one that is transmitting is the true answer.
|
||||
func (a *App) activeRadioMyRig() string {
|
||||
if a.settings == nil || strings.TrimSpace(a.settingOr(keyRadiosList, "")) == "" {
|
||||
return "" // no list was ever made: nothing to say, nothing changes
|
||||
}
|
||||
list, err := a.GetRadios()
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
id := a.ActiveRadioID()
|
||||
for _, r := range list {
|
||||
if r.ID == id {
|
||||
return strings.TrimSpace(r.MyRig)
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user