Fleet tile
The Fleet tile is the multi-drone command console. Every aircraft in the operation — handhelds and DJI docks alike — appears here. Three tabs give you three different read-outs on the same roster.
The three tabs
Video Grid (default)
A thumbnail grid showing each drone’s live video. Each card:
- Live thumbnail of the current FPV stream.
- Drone name + current status (RTH, LANDING, DISCONNECTED badges as applicable).
- Altitude (m), ground speed (m/s).
- Battery % with colour-coded bar.
- Per-row actions (recall / cancel recall / land / focus on map).
Battery Dashboard
A tabular view optimised for energy management:
- Drone name.
- Battery bar with gradient colour and a vertical tick marking the RTH threshold.
- Voltage (V).
- ETA-to-return-home (seconds or mm:ss).
- Estimated remaining flight time.
- Current flight mode (MANUAL / POSITION / RTH / etc.).
Status Overview
A 10-column grid designed for quick at-a-glance multi-drone reads:
Battery | Altitude | Speed | Heading | Vertical speed | GPS satellites | Signal quality | Flight mode | ETA RTH | Remaining flight time.
What’s in the roster
Every source merges into one list:
- Handheld Android drones (via TACLINK peers).
- DJI dock aircraft (via their DJI Cloud bindings).
- Any other drone type integrated via the transport factory.
The peerId uniquely identifies each source — the tile doesn’t care about the
source type at render time; it just reads the unified FleetService.drones()
signal.
Per-row actions
The button set depends on the drone’s current state:
- Recall — only when flying and not already returning home. Sends the RTH command to the drone’s transport.
- Cancel Recall — only when already returning home. Sends cancel-RTH.
- Land — only when flying and not already landing. Sends the land command.
- Focus on Map — always visible. Emits
focusLocationwhich the map tile listens for and pans to the drone’s current position.
No “open stream” button here — stream selection flows from the streams tile or by clicking the video preview inside the fleet-tile card.
The “Recall All” safety bar
Above the roster, when any drone is airborne, a gated confirmation bar offers Recall All flying drones. The bar is two-step on purpose:
- Click the bar to arm it.
- A confirm button appears; click again within a few seconds to actually recall.
Two clicks prevents an accidental fleet-wide RTH mid-operation.
Battery colour coding
The battery bar colours shift at hard thresholds:
| Battery | Colour |
|---|---|
| < 15 % | Red |
| < 25 % | Orange |
| < 50 % | Yellow |
| ≥ 50 % | Green |
Identical thresholds are used on the HUD overlay and the dashboard cards.
Filtering & sorting
The current build has no filter/search UI. Every drone visible to the mission always renders. Sort order is the FleetService’s natural order (typically join-time ascending).
If you have more than a dozen simultaneous aircraft, the Status Overview tab packs densely; Video Grid starts to feel cramped at that count and you’ll want to use individual drone-stream tiles for the active few.
Offline drones
Disconnected drones render with a DISCONNECTED badge and appear greyed out.
They still count toward the roster — the tile doesn’t auto-hide them. To remove
them entirely, unassign them from the mission in its detail page.
Interactions with other tiles
- Clicking Focus on Map → emits a
focusLocationevent the map tile picks up → map pans + re-frames on the drone’s position. - Clicking a drone’s thumbnail → opens that drone in the drone stream tile.
- Drone-stream tile, HUD overlay, telemetry tile, flight-log tile all re-bind to whatever drone you last focused.
Known limitations
- No filter / search.
- No drag-to-reorder.
- “Recall All” ignores team scopes — it recalls every flying drone in the mission, not just drones on your team. Use the single-drone Recall buttons if you need team-scoped control.