From 17d00eaba9a29e35173f995549091d483a52f881 Mon Sep 17 00:00:00 2001 From: David Ventura Date: Tue, 7 May 2024 12:05:12 +0200 Subject: [PATCH] emit ListWifi on scan --- handlers.ts | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/handlers.ts b/handlers.ts index 86adc5d..5b57ce4 100644 --- a/handlers.ts +++ b/handlers.ts @@ -122,6 +122,7 @@ export const createResponseForControlCommand = (session: Session, dv: DataView): return []; } const items = parseListWifi(dv); + session.eventEmitter.emit("ListWifi", items); return []; case ControlCommands.StartVideoAck: logger.debug("Start video ack"); @@ -135,7 +136,7 @@ export const createResponseForControlCommand = (session: Session, dv: DataView): return []; }; -type WifiListItem = { +export type WifiListItem = { ssid: string; mac: string; security: number; @@ -146,15 +147,12 @@ type WifiListItem = { }; export const parseListWifi = (dv: DataView): WifiListItem[] => { - logger.log("trace", `payload len ${dv.byteLength}`); let startat = 0x10; const msg_len = 0x5c; // 0x58 + 0x4 of the last u32 const msg_count = dv.add(startat).readU32LE(); - logger.log("trace", `should get messages: ${msg_count} in payload`); startat += 4; let items = []; for (let i = 0; i < msg_count; i++) { - logger.log("trace", `start parsing ${i} at ${startat} - 0x${startat.toString(16)}`); if (startat + msg_len > dv.byteLength) { logger.warning("Wifi listing got cropped"); break; @@ -170,9 +168,7 @@ export const parseListWifi = (dv: DataView): WifiListItem[] => { mode: dv.add(startat + 0x54).readU32LE(), channel: dv.add(startat + 0x58).readU32LE(), }; - logger.debug(`Wifi Item: ${JSON.stringify(wifiListItem, null, 2)}`); startat += msg_len; - logger.log("trace", `ended at ${startat} - 0x${startat.toString(16)}`); items.push(wifiListItem); } return items;