fix(icom): sidebands by name, model-aware controls, address 0x00
From an IC-7300 report, four faults and one addition. USB and LSB could not be commanded at all: modeCode knew 'SSB' — which resolves the sideband from the band — and answered 'unsupported mode' to the sideband names themselves. So an operator wanting USB on 40 m had no way to say it, from the console or from anywhere else. They are separate buttons now, and a rig reporting the folded ADIF 'SSB' still lights the side its frequency implies. The console offered controls the radio does not have: ANT1/ANT2 on a rig with one socket, and a PSK button every non-7610-class Icom NAKs. Both now follow the model, as the band buttons and attenuator steps already did. Mic gain stops being phone-only — on USB-D it still sets what the radio transmits at, so an operator who lives in FT8 had none. CI-V address 0x00 was refused by a 'n > 0' test and silently replaced by the IC-7610 default; an EMPTY setting is what means unconfigured, so the parse error decides now, not the value. Plus the 60 m band button that was missing.
This commit is contained in:
@@ -8330,8 +8330,15 @@ func (a *App) GetCATSettings() (CATSettings, error) {
|
||||
if n, _ := strconv.Atoi(m[keyCATIcomBaud]); n > 0 {
|
||||
out.IcomBaud = n
|
||||
}
|
||||
if n, _ := strconv.Atoi(m[keyCATIcomAddr]); n > 0 && n <= 0xFF {
|
||||
out.IcomAddr = n
|
||||
// 0x00 is a real CI-V address an operator may need (a bare interface, a rig
|
||||
// left at its factory broadcast address), and "> 0" silently sent them back
|
||||
// to the IC-7610 default with no way to say what they meant. An EMPTY
|
||||
// setting is what means "never configured" — so the error is what decides,
|
||||
// not the value.
|
||||
if v := strings.TrimSpace(m[keyCATIcomAddr]); v != "" {
|
||||
if n, err := strconv.Atoi(v); err == nil && n >= 0 && n <= 0xFF {
|
||||
out.IcomAddr = n
|
||||
}
|
||||
}
|
||||
if out.Backend == "" {
|
||||
out.Backend = "omnirig"
|
||||
|
||||
Reference in New Issue
Block a user