PFD CDI softkey cycles nav source; demo reflects dataref writes
The CDI softkey was in the PFD root row but had no handler — it never cycled the HSI/CDI source (GPS↔VLOC1↔VLOC2). Wire it to write cdiSrc (HSI_source_select_pilot, now writable), cycling GPS→NAV1→NAV2. Also fix a latent demo bug: the 'needs a live sim socket' guard sat above the setDataref/command handlers, so in DEMO (no sim socket) every dataref write (transponder code, baro, AP bugs, CDI) was silently dropped. Reflect writes locally before that guard so cockpit controls respond without a sim. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+13
-2
@@ -180,6 +180,16 @@ function handleClientMessage(msg) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Demo / no-sim: reflect dataref writes locally so cockpit controls (CDI,
|
||||
// transponder, baro, AP bugs …) still respond, then stop — there's no sim to
|
||||
// forward to. Must run BEFORE the live-socket guard below.
|
||||
if (msg.type === 'setDataref' && (process.env.DEMO || !state.xpSocket)) {
|
||||
const name = WRITABLE_DATAREFS[msg.name];
|
||||
if (!name) return log(`! unknown writable dataref alias: ${msg.name}`);
|
||||
state.values[msg.name] = Number(msg.value);
|
||||
return broadcast({ type: 'values', data: { [msg.name]: Number(msg.value) } });
|
||||
}
|
||||
|
||||
// --- everything below talks to X-Plane; needs a live sim socket ---
|
||||
if (!state.xpSocket || state.xpSocket.readyState !== WsClient.OPEN) return;
|
||||
|
||||
@@ -196,8 +206,9 @@ function handleClientMessage(msg) {
|
||||
);
|
||||
} else if (msg.type === 'setDataref') {
|
||||
const name = WRITABLE_DATAREFS[msg.name];
|
||||
const id = name && state.drefNameToId.get(name);
|
||||
if (id == null) return log(`! unknown writable dataref alias: ${msg.name}`);
|
||||
if (!name) return log(`! unknown writable dataref alias: ${msg.name}`);
|
||||
const id = state.drefNameToId.get(name);
|
||||
if (id == null) return log(`! writable dataref not resolved yet: ${msg.name}`);
|
||||
state.xpSocket.send(
|
||||
JSON.stringify({
|
||||
req_id: state.reqId++,
|
||||
|
||||
Reference in New Issue
Block a user