@tx5dr/contracts 1.3.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.
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/schema/__tests__/radio-power-support.test.d.ts +2 -0
- package/dist/schema/__tests__/radio-power-support.test.d.ts.map +1 -0
- package/dist/schema/__tests__/radio-power-support.test.js +19 -0
- package/dist/schema/__tests__/radio-power-support.test.js.map +1 -0
- package/dist/schema/__tests__/realtime-settings.schema.test.d.ts +2 -0
- package/dist/schema/__tests__/realtime-settings.schema.test.d.ts.map +1 -0
- package/dist/schema/__tests__/realtime-settings.schema.test.js +34 -0
- package/dist/schema/__tests__/realtime-settings.schema.test.js.map +1 -0
- package/dist/schema/cpu-profile.schema.d.ts +95 -0
- package/dist/schema/cpu-profile.schema.d.ts.map +1 -0
- package/dist/schema/cpu-profile.schema.js +35 -0
- package/dist/schema/cpu-profile.schema.js.map +1 -0
- package/dist/schema/desktop-https.schema.d.ts +9 -0
- package/dist/schema/desktop-https.schema.d.ts.map +1 -1
- package/dist/schema/desktop-https.schema.js +3 -0
- package/dist/schema/desktop-https.schema.js.map +1 -1
- package/dist/schema/openwebrx.schema.d.ts +1 -1
- package/dist/schema/openwebrx.schema.d.ts.map +1 -1
- package/dist/schema/openwebrx.schema.js +1 -1
- package/dist/schema/openwebrx.schema.js.map +1 -1
- package/dist/schema/operator.schema.d.ts +38 -71
- package/dist/schema/operator.schema.d.ts.map +1 -1
- package/dist/schema/operator.schema.js +0 -5
- package/dist/schema/operator.schema.js.map +1 -1
- package/dist/schema/plugin.schema.d.ts +670 -136
- package/dist/schema/plugin.schema.d.ts.map +1 -1
- package/dist/schema/plugin.schema.js +37 -2
- package/dist/schema/plugin.schema.js.map +1 -1
- package/dist/schema/process-monitor.schema.d.ts +100 -0
- package/dist/schema/process-monitor.schema.d.ts.map +1 -1
- package/dist/schema/process-monitor.schema.js +8 -0
- package/dist/schema/process-monitor.schema.js.map +1 -1
- package/dist/schema/radio-capability.schema.d.ts +42 -2
- package/dist/schema/radio-capability.schema.d.ts.map +1 -1
- package/dist/schema/radio-capability.schema.js +18 -1
- package/dist/schema/radio-capability.schema.js.map +1 -1
- package/dist/schema/radio-power-support.d.ts +8 -0
- package/dist/schema/radio-power-support.d.ts.map +1 -1
- package/dist/schema/radio-power-support.js +38 -26
- package/dist/schema/radio-power-support.js.map +1 -1
- package/dist/schema/radio-power.schema.d.ts +10 -6
- package/dist/schema/radio-power.schema.d.ts.map +1 -1
- package/dist/schema/radio-power.schema.js +8 -6
- package/dist/schema/radio-power.schema.js.map +1 -1
- package/dist/schema/realtime.schema.d.ts +507 -417
- package/dist/schema/realtime.schema.d.ts.map +1 -1
- package/dist/schema/realtime.schema.js +85 -51
- package/dist/schema/realtime.schema.js.map +1 -1
- package/dist/schema/server-message-keys.d.ts +2 -2
- package/dist/schema/server-message-keys.d.ts.map +1 -1
- package/dist/schema/server-message-keys.js +2 -2
- package/dist/schema/server-message-keys.js.map +1 -1
- package/dist/schema/slot-info.schema.d.ts +6 -0
- package/dist/schema/slot-info.schema.d.ts.map +1 -1
- package/dist/schema/slot-info.schema.js +3 -1
- package/dist/schema/slot-info.schema.js.map +1 -1
- package/dist/schema/voice-keyer.schema.d.ts +164 -0
- package/dist/schema/voice-keyer.schema.d.ts.map +1 -0
- package/dist/schema/voice-keyer.schema.js +43 -0
- package/dist/schema/voice-keyer.schema.js.map +1 -0
- package/dist/schema/websocket.schema.d.ts +1565 -823
- package/dist/schema/websocket.schema.d.ts.map +1 -1
- package/dist/schema/websocket.schema.js +19 -6
- package/dist/schema/websocket.schema.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +4 -0
- package/src/schema/__tests__/radio-power-support.test.ts +26 -0
- package/src/schema/__tests__/realtime-settings.schema.test.ts +40 -0
- package/src/schema/cpu-profile.schema.ts +47 -0
- package/src/schema/desktop-https.schema.ts +3 -1
- package/src/schema/openwebrx.schema.ts +1 -1
- package/src/schema/operator.schema.ts +0 -5
- package/src/schema/plugin.schema.ts +43 -2
- package/src/schema/process-monitor.schema.ts +10 -0
- package/src/schema/radio-capability.schema.ts +25 -1
- package/src/schema/radio-power-support.ts +49 -26
- package/src/schema/radio-power.schema.ts +8 -6
- package/src/schema/realtime.schema.ts +96 -65
- package/src/schema/server-message-keys.ts +2 -2
- package/src/schema/slot-info.schema.ts +3 -1
- package/src/schema/voice-keyer.schema.ts +55 -0
- package/src/schema/websocket.schema.ts +31 -6
|
@@ -16,8 +16,14 @@ import type { HamlibConfig } from './radio.schema.js';
|
|
|
16
16
|
export interface PowerCapableRigEntry {
|
|
17
17
|
mfg: string | RegExp;
|
|
18
18
|
model: string | RegExp;
|
|
19
|
+
/**
|
|
20
|
+
* Physical powerstat targets that are safe to expose while CAT is connected.
|
|
21
|
+
* `on` is represented by canPowerOn and is not part of this connected-state list.
|
|
22
|
+
*/
|
|
23
|
+
supportedStates?: ReadonlyArray<'operate' | 'standby' | 'off'>;
|
|
19
24
|
}
|
|
20
25
|
export declare const POWER_CAPABLE_RIGS: ReadonlyArray<PowerCapableRigEntry>;
|
|
26
|
+
export declare function findPowerCapableRigEntry(mfgName: string, modelName: string): PowerCapableRigEntry | undefined;
|
|
21
27
|
export declare function isRigModelPowerCapable(mfgName: string, modelName: string): boolean;
|
|
22
28
|
export type PowerSupportReason = 'model-unsupported' | 'network-mode-no-wake' | 'none-mode';
|
|
23
29
|
export interface PowerSupportDecision {
|
|
@@ -25,6 +31,8 @@ export interface PowerSupportDecision {
|
|
|
25
31
|
canPowerOn: boolean;
|
|
26
32
|
/** Whether the UI should surface a "power off" control. */
|
|
27
33
|
canPowerOff: boolean;
|
|
34
|
+
/** Connected-state physical power targets the UI may offer. */
|
|
35
|
+
supportedStates: Array<'operate' | 'standby' | 'off'>;
|
|
28
36
|
/** Machine-readable reason when `canPowerOn` is false. */
|
|
29
37
|
reason?: PowerSupportReason;
|
|
30
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-power-support.d.ts","sourceRoot":"","sources":["../../src/schema/radio-power-support.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"radio-power-support.d.ts","sourceRoot":"","sources":["../../src/schema/radio-power-support.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB;;;OAGG;IACH,eAAe,CAAC,EAAE,aAAa,CAAC,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC,CAAC;CAChE;AAED,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,oBAAoB,CAoBlE,CAAC;AAEF,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,oBAAoB,GAAG,SAAS,CAYlC;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAElF;AAED,MAAM,MAAM,kBAAkB,GAC1B,mBAAmB,GACnB,sBAAsB,GACtB,WAAW,CAAC;AAEhB,MAAM,WAAW,oBAAoB;IACnC,0DAA0D;IAC1D,UAAU,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,WAAW,EAAE,OAAO,CAAC;IACrB,+DAA+D;IAC/D,eAAe,EAAE,KAAK,CAAC,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC,CAAC;IACtD,0DAA0D;IAC1D,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC/C,oBAAoB,CA+BtB"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
export const POWER_CAPABLE_RIGS = [
|
|
2
2
|
// Icom modern transceivers (CI-V 0x18 command)
|
|
3
|
-
{ mfg: /^icom$/i, model: /^IC-?705$/i },
|
|
4
|
-
{ mfg: /^icom$/i, model: /^IC-?7300$/i },
|
|
5
|
-
{ mfg: /^icom$/i, model: /^IC-?7610$/i },
|
|
6
|
-
{ mfg: /^icom$/i, model: /^IC-?7100$/i },
|
|
7
|
-
{ mfg: /^icom$/i, model: /^IC-?7851$/i },
|
|
8
|
-
{ mfg: /^icom$/i, model: /^IC-?9700$/i },
|
|
9
|
-
{ mfg: /^icom$/i, model: /^IC-?R8600$/i },
|
|
3
|
+
{ mfg: /^icom$/i, model: /^IC-?705$/i, supportedStates: ['off', 'standby', 'operate'] },
|
|
4
|
+
{ mfg: /^icom$/i, model: /^IC-?7300$/i, supportedStates: ['off', 'standby', 'operate'] },
|
|
5
|
+
{ mfg: /^icom$/i, model: /^IC-?7610$/i, supportedStates: ['off', 'standby', 'operate'] },
|
|
6
|
+
{ mfg: /^icom$/i, model: /^IC-?7100$/i, supportedStates: ['off', 'standby', 'operate'] },
|
|
7
|
+
{ mfg: /^icom$/i, model: /^IC-?7851$/i, supportedStates: ['off', 'standby', 'operate'] },
|
|
8
|
+
{ mfg: /^icom$/i, model: /^IC-?9700$/i, supportedStates: ['off', 'standby', 'operate'] },
|
|
9
|
+
{ mfg: /^icom$/i, model: /^IC-?R8600$/i, supportedStates: ['off', 'standby', 'operate'] },
|
|
10
10
|
// Kenwood
|
|
11
|
-
{ mfg: /^kenwood$/i, model: /^TS-590SG?$/i },
|
|
12
|
-
{ mfg: /^kenwood$/i, model: /^TS-890$/i },
|
|
13
|
-
{ mfg: /^kenwood$/i, model: /^TS-990$/i },
|
|
14
|
-
// Yaesu
|
|
15
|
-
{ mfg: /^yaesu$/i, model: /^FT-991A?$/i },
|
|
16
|
-
{ mfg: /^yaesu$/i, model: /^FTDX-?10$/i },
|
|
17
|
-
{ mfg: /^yaesu$/i, model: /^FTDX-?101(MP|D)?$/i },
|
|
18
|
-
{ mfg: /^yaesu$/i, model: /^FT-?710$/i },
|
|
11
|
+
{ mfg: /^kenwood$/i, model: /^TS-590SG?$/i, supportedStates: ['off', 'standby'] },
|
|
12
|
+
{ mfg: /^kenwood$/i, model: /^TS-890$/i, supportedStates: ['off', 'standby'] },
|
|
13
|
+
{ mfg: /^kenwood$/i, model: /^TS-990$/i, supportedStates: ['off', 'standby'] },
|
|
14
|
+
// Yaesu: FT-710 rejects powerstat(operate), so do not expose it by default.
|
|
15
|
+
{ mfg: /^yaesu$/i, model: /^FT-991A?$/i, supportedStates: ['off', 'standby'] },
|
|
16
|
+
{ mfg: /^yaesu$/i, model: /^FTDX-?10$/i, supportedStates: ['off', 'standby'] },
|
|
17
|
+
{ mfg: /^yaesu$/i, model: /^FTDX-?101(MP|D)?$/i, supportedStates: ['off', 'standby'] },
|
|
18
|
+
{ mfg: /^yaesu$/i, model: /^FT-?710$/i, supportedStates: ['off'] },
|
|
19
19
|
];
|
|
20
|
-
export function
|
|
21
|
-
return POWER_CAPABLE_RIGS.
|
|
20
|
+
export function findPowerCapableRigEntry(mfgName, modelName) {
|
|
21
|
+
return POWER_CAPABLE_RIGS.find((entry) => {
|
|
22
22
|
const mfgOk = typeof entry.mfg === 'string'
|
|
23
23
|
? entry.mfg.toLowerCase() === mfgName.toLowerCase()
|
|
24
24
|
: entry.mfg.test(mfgName);
|
|
@@ -28,6 +28,9 @@ export function isRigModelPowerCapable(mfgName, modelName) {
|
|
|
28
28
|
return mfgOk && modelOk;
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
|
+
export function isRigModelPowerCapable(mfgName, modelName) {
|
|
32
|
+
return findPowerCapableRigEntry(mfgName, modelName) !== undefined;
|
|
33
|
+
}
|
|
31
34
|
/**
|
|
32
35
|
* Decide whether power control should be surfaced for a given Profile radio config.
|
|
33
36
|
*
|
|
@@ -41,24 +44,33 @@ export function isRigModelPowerCapable(mfgName, modelName) {
|
|
|
41
44
|
export function decidePowerSupport(config, rigInfo) {
|
|
42
45
|
switch (config.type) {
|
|
43
46
|
case 'none':
|
|
44
|
-
return { canPowerOn: false, canPowerOff: false, reason: 'none-mode' };
|
|
47
|
+
return { canPowerOn: false, canPowerOff: false, supportedStates: [], reason: 'none-mode' };
|
|
45
48
|
case 'network':
|
|
46
|
-
return {
|
|
49
|
+
return {
|
|
50
|
+
canPowerOn: false,
|
|
51
|
+
canPowerOff: true,
|
|
52
|
+
supportedStates: ['off'],
|
|
53
|
+
reason: 'network-mode-no-wake',
|
|
54
|
+
};
|
|
47
55
|
case 'icom-wlan':
|
|
48
56
|
// ICOM WLAN 的 CI-V-over-UDP 通道在电台关机后无法维持;即便已连接
|
|
49
57
|
// 发送 powerstat(off) 也不能可靠恢复。整体不暴露电源控制。
|
|
50
|
-
return { canPowerOn: false, canPowerOff: false, reason: 'model-unsupported' };
|
|
58
|
+
return { canPowerOn: false, canPowerOff: false, supportedStates: [], reason: 'model-unsupported' };
|
|
51
59
|
case 'serial': {
|
|
52
60
|
if (!rigInfo) {
|
|
53
|
-
return { canPowerOn: false, canPowerOff: false, reason: 'model-unsupported' };
|
|
61
|
+
return { canPowerOn: false, canPowerOff: false, supportedStates: [], reason: 'model-unsupported' };
|
|
54
62
|
}
|
|
55
|
-
const
|
|
56
|
-
return
|
|
57
|
-
? {
|
|
58
|
-
|
|
63
|
+
const entry = findPowerCapableRigEntry(rigInfo.mfgName, rigInfo.modelName);
|
|
64
|
+
return entry
|
|
65
|
+
? {
|
|
66
|
+
canPowerOn: true,
|
|
67
|
+
canPowerOff: true,
|
|
68
|
+
supportedStates: [...(entry.supportedStates ?? ['off'])],
|
|
69
|
+
}
|
|
70
|
+
: { canPowerOn: false, canPowerOff: false, supportedStates: [], reason: 'model-unsupported' };
|
|
59
71
|
}
|
|
60
72
|
default:
|
|
61
|
-
return { canPowerOn: false, canPowerOff: false, reason: 'model-unsupported' };
|
|
73
|
+
return { canPowerOn: false, canPowerOff: false, supportedStates: [], reason: 'model-unsupported' };
|
|
62
74
|
}
|
|
63
75
|
}
|
|
64
76
|
//# sourceMappingURL=radio-power-support.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-power-support.js","sourceRoot":"","sources":["../../src/schema/radio-power-support.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"radio-power-support.js","sourceRoot":"","sources":["../../src/schema/radio-power-support.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,10 @@ import { z } from 'zod';
|
|
|
3
3
|
* High-level runtime state tracked by the RadioPowerController.
|
|
4
4
|
*
|
|
5
5
|
* - `off`: radio is known to be off (or was never connected).
|
|
6
|
-
* - `waking`: power-on command sent, waiting for the radio to respond.
|
|
7
|
-
* - `awake`: radio is responding;
|
|
8
|
-
* - `shutting_down`:
|
|
9
|
-
* - `entering_standby`:
|
|
6
|
+
* - `waking`: physical power-on command sent, waiting for the radio to respond.
|
|
7
|
+
* - `awake`: radio is physically responding; software engine startup is optional.
|
|
8
|
+
* - `shutting_down`: physical power-off command is being applied.
|
|
9
|
+
* - `entering_standby`: physical standby command is being applied.
|
|
10
10
|
* - `failed`: last transition failed; UI should show an error + retry.
|
|
11
11
|
*/
|
|
12
12
|
export declare const RadioPowerStateSchema: z.ZodEnum<["off", "waking", "awake", "shutting_down", "entering_standby", "failed"]>;
|
|
@@ -45,13 +45,14 @@ export type RadioPowerStateEvent = z.infer<typeof RadioPowerStateEventSchema>;
|
|
|
45
45
|
/**
|
|
46
46
|
* REST request body: POST /api/radio/power
|
|
47
47
|
*/
|
|
48
|
-
/** Allowed target states for a power request. */
|
|
48
|
+
/** Allowed physical radio target states for a power request. */
|
|
49
49
|
export declare const RadioPowerTargetSchema: z.ZodEnum<["on", "off", "standby", "operate"]>;
|
|
50
50
|
export type RadioPowerTarget = z.infer<typeof RadioPowerTargetSchema>;
|
|
51
51
|
export declare const RadioPowerRequestSchema: z.ZodObject<{
|
|
52
52
|
profileId: z.ZodString;
|
|
53
|
+
/** Physical radio power target. This is not the TX-5DR software engine state. */
|
|
53
54
|
state: z.ZodEnum<["on", "off", "standby", "operate"]>;
|
|
54
|
-
/** Automatically start the engine after successful power-on.
|
|
55
|
+
/** Automatically start the TX-5DR engine after successful physical power-on. */
|
|
55
56
|
autoEngine: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
56
57
|
}, "strip", z.ZodTypeAny, {
|
|
57
58
|
state: "off" | "on" | "standby" | "operate";
|
|
@@ -68,13 +69,16 @@ export type RadioPowerRequest = z.infer<typeof RadioPowerRequestSchema>;
|
|
|
68
69
|
*/
|
|
69
70
|
export declare const RadioPowerResponseSchema: z.ZodObject<{
|
|
70
71
|
success: z.ZodBoolean;
|
|
72
|
+
target: z.ZodEnum<["on", "off", "standby", "operate"]>;
|
|
71
73
|
state: z.ZodEnum<["off", "waking", "awake", "shutting_down", "entering_standby", "failed"]>;
|
|
72
74
|
}, "strip", z.ZodTypeAny, {
|
|
73
75
|
success: boolean;
|
|
74
76
|
state: "failed" | "off" | "waking" | "awake" | "shutting_down" | "entering_standby";
|
|
77
|
+
target: "off" | "on" | "standby" | "operate";
|
|
75
78
|
}, {
|
|
76
79
|
success: boolean;
|
|
77
80
|
state: "failed" | "off" | "waking" | "awake" | "shutting_down" | "entering_standby";
|
|
81
|
+
target: "off" | "on" | "standby" | "operate";
|
|
78
82
|
}>;
|
|
79
83
|
export type RadioPowerResponse = z.infer<typeof RadioPowerResponseSchema>;
|
|
80
84
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-power.schema.d.ts","sourceRoot":"","sources":["../../src/schema/radio-power.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,sFAOhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,8IAQhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;IAIrC,uFAAuF;;IAEvF,wDAAwD;;;;;;;;;;;;;;EAExD,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"radio-power.schema.d.ts","sourceRoot":"","sources":["../../src/schema/radio-power.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;;;;;;GASG;AACH,eAAO,MAAM,qBAAqB,sFAOhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,qBAAqB,8IAQhC,CAAC;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;IAIrC,uFAAuF;;IAEvF,wDAAwD;;;;;;;;;;;;;;EAExD,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;GAEG;AACH,gEAAgE;AAChE,eAAO,MAAM,sBAAsB,gDAA8C,CAAC;AAClF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB;;IAElC,iFAAiF;;IAEjF,gFAAgF;;;;;;;;;;EAEhF,CAAC;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;EAInC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E;;;GAGG;AACH,eAAO,MAAM,2BAA2B;;;;IAItC;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASH,CAAC;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,wEAAwE;AACxE,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAqB,CAAC"}
|
|
@@ -4,10 +4,10 @@ import { HamlibConfigSchema } from './radio.schema.js';
|
|
|
4
4
|
* High-level runtime state tracked by the RadioPowerController.
|
|
5
5
|
*
|
|
6
6
|
* - `off`: radio is known to be off (or was never connected).
|
|
7
|
-
* - `waking`: power-on command sent, waiting for the radio to respond.
|
|
8
|
-
* - `awake`: radio is responding;
|
|
9
|
-
* - `shutting_down`:
|
|
10
|
-
* - `entering_standby`:
|
|
7
|
+
* - `waking`: physical power-on command sent, waiting for the radio to respond.
|
|
8
|
+
* - `awake`: radio is physically responding; software engine startup is optional.
|
|
9
|
+
* - `shutting_down`: physical power-off command is being applied.
|
|
10
|
+
* - `entering_standby`: physical standby command is being applied.
|
|
11
11
|
* - `failed`: last transition failed; UI should show an error + retry.
|
|
12
12
|
*/
|
|
13
13
|
export const RadioPowerStateSchema = z.enum([
|
|
@@ -46,12 +46,13 @@ export const RadioPowerStateEventSchema = z.object({
|
|
|
46
46
|
/**
|
|
47
47
|
* REST request body: POST /api/radio/power
|
|
48
48
|
*/
|
|
49
|
-
/** Allowed target states for a power request. */
|
|
49
|
+
/** Allowed physical radio target states for a power request. */
|
|
50
50
|
export const RadioPowerTargetSchema = z.enum(['on', 'off', 'standby', 'operate']);
|
|
51
51
|
export const RadioPowerRequestSchema = z.object({
|
|
52
52
|
profileId: z.string().min(1),
|
|
53
|
+
/** Physical radio power target. This is not the TX-5DR software engine state. */
|
|
53
54
|
state: RadioPowerTargetSchema,
|
|
54
|
-
/** Automatically start the engine after successful power-on.
|
|
55
|
+
/** Automatically start the TX-5DR engine after successful physical power-on. */
|
|
55
56
|
autoEngine: z.boolean().optional().default(true),
|
|
56
57
|
});
|
|
57
58
|
/**
|
|
@@ -59,6 +60,7 @@ export const RadioPowerRequestSchema = z.object({
|
|
|
59
60
|
*/
|
|
60
61
|
export const RadioPowerResponseSchema = z.object({
|
|
61
62
|
success: z.boolean(),
|
|
63
|
+
target: RadioPowerTargetSchema,
|
|
62
64
|
state: RadioPowerStateSchema,
|
|
63
65
|
});
|
|
64
66
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-power.schema.js","sourceRoot":"","sources":["../../src/schema/radio-power.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1C,KAAK;IACL,QAAQ;IACR,OAAO;IACP,eAAe;IACf,kBAAkB;IAClB,QAAQ;CACT,CAAC,CAAC;AAGH;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1C,MAAM;IACN,iBAAiB;IACjB,eAAe;IACf,4BAA4B;IAC5B,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;CAChB,CAAC,CAAC;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,qBAAqB;IAC5B,KAAK,EAAE,qBAAqB;IAC5B,uFAAuF;IACvF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,wDAAwD;IACxD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAGH;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"radio-power.schema.js","sourceRoot":"","sources":["../../src/schema/radio-power.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1C,KAAK;IACL,QAAQ;IACR,OAAO;IACP,eAAe;IACf,kBAAkB;IAClB,QAAQ;CACT,CAAC,CAAC;AAGH;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,IAAI,CAAC;IAC1C,MAAM;IACN,iBAAiB;IACjB,eAAe;IACf,4BAA4B;IAC5B,iBAAiB;IACjB,iBAAiB;IACjB,eAAe;CAChB,CAAC,CAAC;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,KAAK,EAAE,qBAAqB;IAC5B,KAAK,EAAE,qBAAqB;IAC5B,uFAAuF;IACvF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,wDAAwD;IACxD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAGH;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAGlF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,iFAAiF;IACjF,KAAK,EAAE,sBAAsB;IAC7B,gFAAgF;IAChF,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACjD,CAAC,CAAC;AAGH;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,MAAM,EAAE,sBAAsB;IAC9B,KAAK,EAAE,qBAAqB;CAC7B,CAAC,CAAC;AAGH;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE;IACvB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE;IACxB;;;OAGG;IACH,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3E,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrF,OAAO,EAAE,CAAC;SACP,MAAM,CAAC;QACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;KACtB,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AAGH,wEAAwE;AACxE,MAAM,CAAC,MAAM,6BAA6B,GAAG,kBAAkB,CAAC"}
|