feat(drone): replace freeform inputs with populated device selects

Add /drone/devices endpoint that enumerates available WiFi interfaces
(via iw/iwconfig) and RTL-SDR devices (via SDRFactory.detect_devices),
matching the pattern used by TSCM.

Sidebar WiFi interface and RTL-SDR inputs are now <select> elements
populated on init() from /drone/devices, consistent with how other
modes expose hardware selection. HackRF checkbox remains as a toggle
since it's a binary capability rather than an enumerated device list.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
James Smith
2026-05-13 09:25:21 +01:00
parent ba3ee1575e
commit 9fd60b6839
3 changed files with 140 additions and 5 deletions
+7 -3
View File
@@ -20,15 +20,19 @@
<h3>WiFi Interface</h3>
<div class="form-group">
<label for="droneWifiIface">Interface (monitor mode)</label>
<input type="text" id="droneWifiIface" placeholder="e.g. wlan0mon">
<select id="droneWifiIface">
<option value="">Loading interfaces…</option>
</select>
</div>
</div>
<div class="section">
<h3>SDR Settings</h3>
<div class="form-group">
<label for="droneRtlIndex">RTL-SDR Device Index (433 MHz)</label>
<input type="number" id="droneRtlIndex" value="0" min="0" max="7" placeholder="Device index">
<label for="droneRtlIndex">RTL-SDR Device (433 MHz)</label>
<select id="droneRtlIndex">
<option value="">Loading devices…</option>
</select>
</div>
<div class="form-group">
<label class="inline-checkbox">