@springfield/ham-radio-registry 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -26,12 +26,36 @@ export interface RadioCapabilities {
26
26
  }
27
27
  /**
28
28
  * How live control talks on the PC port. Present when `capabilities.liveControl` is true.
29
+ *
30
+ * Kenwood command layout, mode names, and power labels belong here so HamBench
31
+ * does not special-case radio models.
29
32
  */
30
33
  export interface RadioCatConfig {
31
34
  /** Command family, for example `kenwood`. */
32
35
  protocol: string;
33
- /** Protocol-specific dialect, for example Kenwood `th-f6` or `fm-mobile`. */
34
- dialect?: string;
36
+ /** Send a wake CR and discard buffered replies before `ID`. */
37
+ wakeCr?: boolean;
38
+ /** How many VFOs to poll. Default 1. */
39
+ vfoCount?: number;
40
+ /** Frequency commands to try in order, for example `["FQ","FO"]` or `["FO"]`. */
41
+ frequencyCommands?: string[];
42
+ /** Digit width of the frequency field. Kenwood handhelds use 11; TM-D710 `FO` uses 10. */
43
+ frequencyWidth?: number;
44
+ /**
45
+ * When true, the frequency command is a multi-field VFO channel (`FO n` → 13 fields).
46
+ * Mode is the last field. There is no separate `MD` command.
47
+ */
48
+ vfoChannel?: boolean;
49
+ /** Mode names in CAT code order. */
50
+ modes?: string[];
51
+ /** Power names in CAT code order, as shown on the radio. */
52
+ powers?: string[];
53
+ /** Separate mode command, for example `MD`. Omit when `vfoChannel` is true. */
54
+ modeCommand?: string;
55
+ /** Pass the band index to `PC` (`PC n` / `PC n,x`). */
56
+ powerBandIndex?: boolean;
57
+ /** Read `BC` (no args) for CTRL/PTT band. */
58
+ bandControl?: boolean;
35
59
  }
36
60
  /**
37
61
  * Codec configuration
@@ -1 +1 @@
1
- {"version":3,"file":"radio-config.d.ts","sourceRoot":"","sources":["../../src/types/radio-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,iBAAiB,CAAC;IAChC,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,iBAAiB,CAAC;IAChC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"radio-config.d.ts","sourceRoot":"","sources":["../../src/types/radio-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,0FAA0F;IAC1F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,iBAAiB,CAAC;IAChC,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,iBAAiB,CAAC;IAChC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@springfield/ham-radio-registry",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "author": "Bryan Hunt",
5
5
  "license": "MIT",
6
6
  "readme": "README.md",
@@ -29,12 +29,36 @@ export interface RadioCapabilities {
29
29
 
30
30
  /**
31
31
  * How live control talks on the PC port. Present when `capabilities.liveControl` is true.
32
+ *
33
+ * Kenwood command layout, mode names, and power labels belong here so HamBench
34
+ * does not special-case radio models.
32
35
  */
33
36
  export interface RadioCatConfig {
34
37
  /** Command family, for example `kenwood`. */
35
38
  protocol: string;
36
- /** Protocol-specific dialect, for example Kenwood `th-f6` or `fm-mobile`. */
37
- dialect?: string;
39
+ /** Send a wake CR and discard buffered replies before `ID`. */
40
+ wakeCr?: boolean;
41
+ /** How many VFOs to poll. Default 1. */
42
+ vfoCount?: number;
43
+ /** Frequency commands to try in order, for example `["FQ","FO"]` or `["FO"]`. */
44
+ frequencyCommands?: string[];
45
+ /** Digit width of the frequency field. Kenwood handhelds use 11; TM-D710 `FO` uses 10. */
46
+ frequencyWidth?: number;
47
+ /**
48
+ * When true, the frequency command is a multi-field VFO channel (`FO n` → 13 fields).
49
+ * Mode is the last field. There is no separate `MD` command.
50
+ */
51
+ vfoChannel?: boolean;
52
+ /** Mode names in CAT code order. */
53
+ modes?: string[];
54
+ /** Power names in CAT code order, as shown on the radio. */
55
+ powers?: string[];
56
+ /** Separate mode command, for example `MD`. Omit when `vfoChannel` is true. */
57
+ modeCommand?: string;
58
+ /** Pass the band index to `PC` (`PC n` / `PC n,x`). */
59
+ powerBandIndex?: boolean;
60
+ /** Read `BC` (no args) for CTRL/PTT band. */
61
+ bandControl?: boolean;
38
62
  }
39
63
 
40
64
  /**