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 <ruv@ruv.net>
This commit is contained in:
ruv 2026-03-12 21:16:29 -04:00
parent 7c1351fd5d
commit e5e3d42ca2
3 changed files with 9 additions and 3 deletions

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WiFi-DensePose — Dual-Modal Pose Estimation</title> <title>WiFi-DensePose — Dual-Modal Pose Estimation</title>
<link rel="stylesheet" href="pose-fusion/css/style.css?v=12"> <link rel="stylesheet" href="pose-fusion/css/style.css?v=13">
</head> </head>
<body> <body>
@ -196,6 +196,6 @@
</div><!-- /main-grid --> </div><!-- /main-grid -->
<script type="module" src="pose-fusion/js/main.js?v=12"></script> <script type="module" src="pose-fusion/js/main.js?v=13"></script>
</body> </body>
</html> </html>

View File

@ -267,6 +267,12 @@ export class CsiSimulator {
return; 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) // Handle binary ArrayBuffer frames (ADR-018 format)
if (!(data instanceof ArrayBuffer)) return; if (!(data instanceof ArrayBuffer)) return;
const view = new DataView(data); const view = new DataView(data);

View File

@ -361,7 +361,7 @@ function mainLoop(timestamp) {
// One-time diagnostic // One-time diagnostic
if (!_diagDone) { if (!_diagDone) {
_diagDone = true; _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) { } catch (err) {