From e5e3d42ca20023c279a8d98587cbbb133c65f451 Mon Sep 17 00:00:00 2001 From: ruv Date: Thu, 12 Mar 2026 21:16:29 -0400 Subject: [PATCH] fix(demo): guard toFixed on undefined rssiDbm and handle Blob WebSocket data - Add null-safe optional chaining for embPoints and rssiDbm in diagnostic log - Handle Blob data in _handleLiveFrame (convert to ArrayBuffer before processing) - Bump cache busters to v=13 Co-Authored-By: claude-flow --- ui/pose-fusion.html | 4 ++-- ui/pose-fusion/js/csi-simulator.js | 6 ++++++ ui/pose-fusion/js/main.js | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ui/pose-fusion.html b/ui/pose-fusion.html index 326da3ce..08ff952a 100644 --- a/ui/pose-fusion.html +++ b/ui/pose-fusion.html @@ -4,7 +4,7 @@ WiFi-DensePose — Dual-Modal Pose Estimation - + @@ -196,6 +196,6 @@ - + diff --git a/ui/pose-fusion/js/csi-simulator.js b/ui/pose-fusion/js/csi-simulator.js index fe1e48b1..f234d593 100644 --- a/ui/pose-fusion/js/csi-simulator.js +++ b/ui/pose-fusion/js/csi-simulator.js @@ -267,6 +267,12 @@ export class CsiSimulator { return; } + // Handle Blob data (convert to ArrayBuffer and re-process) + if (data instanceof Blob) { + data.arrayBuffer().then(ab => this._handleLiveFrame(ab)).catch(() => {}); + return; + } + // Handle binary ArrayBuffer frames (ADR-018 format) if (!(data instanceof ArrayBuffer)) return; const view = new DataView(data); diff --git a/ui/pose-fusion/js/main.js b/ui/pose-fusion/js/main.js index 1001d636..88608930 100644 --- a/ui/pose-fusion/js/main.js +++ b/ui/pose-fusion/js/main.js @@ -361,7 +361,7 @@ function mainLoop(timestamp) { // One-time diagnostic if (!_diagDone) { _diagDone = true; - console.log(`[PoseFusion] frame 1 OK — mode=${mode}, csi.bufLen=${csiSimulator.amplitudeBuffer.length}, embPts=${embPoints.fused.length}, rssi=${csiSimulator.rssiDbm.toFixed(1)}`); + console.log(`[PoseFusion] frame 1 OK — mode=${mode}, csi.bufLen=${csiSimulator.amplitudeBuffer.length}, embPts=${embPoints?.fused?.length ?? 0}, rssi=${(csiSimulator.rssiDbm ?? -99).toFixed(1)}`); } } catch (err) {