feat: ESM (Enter Sends Message) for CW keyers, N1MM-style

With ESM enabled (Settings → CW Keyer), the keyer active and mode CW, Enter in
the entry strip fires a macro by QSO stage instead of logging:
- callsign field empty            → F1 (CQ)
- callsign entered (in call field) → F2 (report), then focus jumps to RST-sent
- Enter in RST-sent / RST-rcvd     → F3 (TU), which logs via its own <LOGQSO>

Works for every keyer engine (WinKeyer / serial DTR-RTS / Flex CWX / Icom CI-V)
since it routes through the shared macro sender. Enter in other fields still logs
normally, and ESM off keeps the classic Enter-to-log behaviour.

Backend: new `esm` flag on WinkeyerSettings (winkeyer.esm). Frontend: esmHandleEnter
state machine keyed off data-esm markers on the call/RST blocks, a Settings
checkbox + hint, and i18n EN/FR.
This commit is contained in:
2026-07-25 12:38:09 +02:00
parent e5ff30823d
commit 370fde42f7
6 changed files with 58 additions and 6 deletions
+2
View File
@@ -3085,6 +3085,7 @@ export namespace main {
engine: string;
esc_clears_call: boolean;
send_on_type: boolean;
esm: boolean;
macros: WKMacro[];
static createFrom(source: any = {}) {
@@ -3114,6 +3115,7 @@ export namespace main {
this.engine = source["engine"];
this.esc_clears_call = source["esc_clears_call"];
this.send_on_type = source["send_on_type"];
this.esm = source["esm"];
this.macros = this.convertValues(source["macros"], WKMacro);
}