()
| 3121 | } |
| 3122 | // Label the selection at the left edge of the band. |
| 3123 | const nm = sel.name || sel.vendor || sel.mac; |
| 3124 | const tag = `${nm.length > 18 ? nm.slice(0, 17) + '…' : nm} ${sel.rssi} dBm ${isLE ? '(BLE adv)' : '(Classic · hops band)'}`; |
| 3125 | ctx.fillStyle = '#fff'; ctx.font = 'bold 10px sans-serif'; ctx.textAlign = 'left'; |
| 3126 | ctx.fillText(tag, r24.x0 + 3, yR - 5); |
| 3127 | } else if (sel) { |
| 3128 | // Selected but no RSSI heard this scan. |
| 3129 | ctx.fillStyle = '#e2e8f0'; ctx.font = 'bold 10px sans-serif'; ctx.textAlign = 'left'; |
| 3130 | ctx.fillText(`${sel.name || sel.mac} — RSSI not heard this scan`, r24.x0 + 3, g.padT + 14); |
| 3131 | } |
| 3132 | } |
| 3133 | |
| 3134 | // ============================================================================ |
| 3135 | // Full-screen spectrum console |
| 3136 | // ---------------------------------------------------------------------------- |
| 3137 | // The same survey, the same _wifiState — but the whole viewport: a large |
| 3138 | // hit-testable spectrum, the AP list underneath it, and an inspector that |
| 3139 | // shows every field the scan produced for whatever is selected. |
| 3140 | // ============================================================================ |
| 3141 | |
| 3142 | function wifiToggleFullscreen() { |
no test coverage detected