feat: amplifier band-follow — answer the amp's frequency polls

On its CAT/AUX connector an ACOM is the MASTER: it polls a transceiver and
changes band from the reply, so nothing can be pushed to it. internal/catemu
answers those polls on a second serial port, in ACOM command set 5 (Kenwood /
Elecraft): FA;, FB;, IF; and ID;, and nothing else — a wrong-length reply is
worse than none, it desynchronises the amp's parser for the following poll.

Also offered for SPE. Some amps do not poll at all but read the radio↔PC CAT
line in parallel; those never hear a responder, so an optional unprompted send
(500/1000 ms) covers them.

The TX frequency is what is sent: in split the amp must be tuned where we
transmit. Frame lengths are pinned by tests — the failure they guard against is
silent and only shows up as an amp that mistunes.

Untested on hardware.
This commit is contained in:
2026-07-27 11:56:30 +02:00
parent 05d64024ef
commit 5394b55bb7
8 changed files with 573 additions and 7 deletions
+8
View File
@@ -1442,6 +1442,10 @@ export namespace main {
port: number;
com_port: string;
baud: number;
freq_out: boolean;
freq_com_port: string;
freq_baud: number;
freq_broadcast_ms: number;
static createFrom(source: any = {}) {
return new AmpConfig(source);
@@ -1458,6 +1462,10 @@ export namespace main {
this.port = source["port"];
this.com_port = source["com_port"];
this.baud = source["baud"];
this.freq_out = source["freq_out"];
this.freq_com_port = source["freq_com_port"];
this.freq_baud = source["freq_baud"];
this.freq_broadcast_ms = source["freq_broadcast_ms"];
}
}
export class AmpStatus {