fix: PGXL meters/auth/fan, TCI spots+click, PTT-over-CAT, CW <LOGQSO>
- PGXL: remote AUTH password; direct-link meter fallback (VITA-first) with 250 ms poll + peak-hold; fan mode uses bare "fanmode=" (was ignored). - TCI: spot colour sent as decimal ARGB (ExpertSDR dropped the hex string); spot click handled via CLICKED_ON_SPOT / RX_CLICKED_ON_SPOT to fill the entry. - FlexRadio: clicking an OpsLog spot on the panadapter now applies the mode too. - Filter presets: the trash icon deletes again (Radix pointer-down intercept). - PTT hotkey: keys over CAT when a backend is active (was hijacked by a stale Audio-tab RTS/DTR serial setting); AltGr keys allowed; presses logged. - CW macro <LOGQSO>: logs after the preceding CW is sent, not on the first letter.
This commit is contained in:
@@ -8984,15 +8984,21 @@ func (a *App) pttUnkey() {
|
||||
// configured Audio → PTT method (CAT / RTS / DTR); when that is VOX/none it
|
||||
// falls back to CAT keying so the hotkey still works with a plain CAT rig.
|
||||
func (a *App) PTTHotkeyDown() error {
|
||||
// This hotkey lives under CAT and is meant to key the rig over CAT — so prefer
|
||||
// CAT whenever a backend is active. Only a rig with no CAT link falls back to
|
||||
// the Audio-tab PTT method (RTS/DTR serial). Previously it always used the
|
||||
// Audio method, so a stale serial PTT setting (e.g. an RTS line on a COM port
|
||||
// that is no longer present) hijacked the hotkey and it failed with a serial
|
||||
// error — even though the operator only ever wanted CAT.
|
||||
if a.cat != nil {
|
||||
return a.pttKey(AudioSettings{PTTMethod: "cat"})
|
||||
}
|
||||
cfg, err := a.GetAudioSettings()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if cfg.PTTMethod == "" || cfg.PTTMethod == "none" {
|
||||
if a.cat == nil {
|
||||
return fmt.Errorf("no PTT method configured and CAT not active")
|
||||
}
|
||||
cfg.PTTMethod = "cat"
|
||||
return fmt.Errorf("no PTT method configured and CAT not active")
|
||||
}
|
||||
return a.pttKey(cfg)
|
||||
}
|
||||
@@ -14783,6 +14789,7 @@ type AmpConfig struct {
|
||||
Transport string `json:"transport"` // "tcp" | "serial"
|
||||
Host string `json:"host"`
|
||||
Port int `json:"port"`
|
||||
Password string `json:"password"` // PowerGenius XL remote-access code (blank on LAN); sent as AUTH like the Tuner/Antenna Genius
|
||||
ComPort string `json:"com_port"`
|
||||
Baud int `json:"baud"`
|
||||
|
||||
@@ -14931,7 +14938,7 @@ func (a *App) startAmps() {
|
||||
inst := &Inst{cfg: c}
|
||||
switch {
|
||||
case isPGXL:
|
||||
inst.pgxl = powergenius.New(c.Host, c.Port)
|
||||
inst.pgxl = powergenius.New(c.Host, c.Port, c.Password)
|
||||
_ = inst.pgxl.Start()
|
||||
if a.pgxl == nil {
|
||||
a.pgxl = inst.pgxl
|
||||
|
||||
Reference in New Issue
Block a user