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:
@@ -1543,6 +1543,14 @@ func (b *IcomSerial) modeCode(mode string) (code byte, data bool, err error) {
|
||||
return civ.ModeCW, false, nil
|
||||
case "SSB":
|
||||
return usb, false, nil
|
||||
case "USB":
|
||||
// The SIDEBAND, asked for by name. "SSB" resolves to whichever side the
|
||||
// band convention wants, which is right for a logged mode and useless
|
||||
// when the operator means "put this radio in USB" — on 40 m there was no
|
||||
// way to say it at all, and the console's own button could not either.
|
||||
return civ.ModeUSB, false, nil
|
||||
case "LSB":
|
||||
return civ.ModeLSB, false, nil
|
||||
case "AM":
|
||||
return civ.ModeAM, false, nil
|
||||
case "FM":
|
||||
|
||||
Reference in New Issue
Block a user