diff --git a/app.go b/app.go index 743cdda..ce91d0e 100644 --- a/app.go +++ b/app.go @@ -18285,7 +18285,12 @@ func (a *App) feedAmpBandFollow(s cat.RigState) { // neither a second serial port nor a pretend rig. Sent from a goroutine // because this runs on the CAT state-change path, and nothing about the // rig should wait on an amplifier's link. - if inst.kpa != nil && s.Band != "" { + // Asked for, like every other write to somebody's station. The option is + // the same one an Acom uses — "keep the amplifier on the radio's band" is + // one idea to an operator, whatever it takes underneath — and it is off + // for the operator who has wired the amplifier straight to the rig and + // does not want a second voice telling it where to be. + if inst.kpa != nil && inst.cfg.FreqOut && s.Band != "" { k, band := inst.kpa, s.Band go func() { _ = k.SetBand(band) }() } diff --git a/frontend/src/components/SettingsModal.tsx b/frontend/src/components/SettingsModal.tsx index d7a168a..eaada39 100644 --- a/frontend/src/components/SettingsModal.tsx +++ b/frontend/src/components/SettingsModal.tsx @@ -4177,6 +4177,7 @@ function SettingsModalImpl({ onClose, onSaved, initialSection, onMainPaneChanged // could never connect. const applyType = (i: number, v: string) => patchAmp(i, { type: v, + freq_out: v.startsWith('kpa') ? true : amps[i].freq_out, transport: v === 'pgxl' ? 'tcp' : v === 'kpa500' ? 'serial' : amps[i].transport, baud: v.startsWith('acom') ? 9600 : v.startsWith('spe') ? 115200 : v.startsWith('kpa') ? 38400 : amps[i].baud, port: v === 'kpa1500' ? 1500 : amps[i].port, @@ -4323,6 +4324,18 @@ function SettingsModalImpl({ onClose, onSaved, initialSection, onMainPaneChanged Offering a second serial port and a transceiver emulator for that would be a workaround for a problem this amplifier does not have. */} + {isKPA && ( +
+ +

{t('amp.kpaBandFollowHint')}

+
+ )} {!isPGXL && !isKPA && (