Flight log tile
The Flight log tile is a historical view of every flight the mission’s
drones have completed. It’s sourced from Firestore (listMissionFlightLogs())
so past missions can be reviewed even after the drones have disconnected.
The table
Eight columns, paginated (10 / 25 / 50 per page):
| Column | What it shows |
|---|---|
| Date / Time | Start time of the flight (dd MMM yyyy + HH:mm). |
| Drone | Drone ID or resolved name. |
| Duration | Total flight time formatted as m:ss or h:mm:ss. |
| Distance | Total travelled distance + max distance from home (m). |
| Altitude | Max altitude reached (m). |
| Speed | Max ground speed (m/s). |
| Battery | Start % → End % with a coloured drain bar between them. |
| Actions | Count of flight events + expand button. |
Expanding a row
Click any row. The row expands to show an inline motion timeline rendering every event that happened during that flight:
Event types shown
From the FlightActionType enum:
- Lifecycle —
TAKEOFF,LANDING,RTH_START,RTH_END. - Mode changes —
FLIGHT_MODE_CHANGEwith before / after modes. - HMS alerts —
HMS_ALERTwith severity + code + message. - Operator actions —
RECALL(operator hit the Recall button),LAND(operator hit Land),PAUSE_MISSION,RESUME_MISSION. - Camera —
START_RECORDING,STOP_RECORDING,PHOTO. - Battery thresholds crossed —
LOW_BATTERY,SERIOUS_LOW_BATTERY. - Comms —
SIGNAL_LOSS,SIGNAL_RECOVERED.
Each event shows a timestamp, icon, and summary. Hover for the full event payload.
Filters + search
The current build has no filter or search UI. Every row renders within pagination. If you need to find a specific flight, sort by date (default descending) and scroll.
Click-jump behaviour
- Clicking a row toggles expansion (not jump-away).
- Clicking an event inside the expanded row does NOT currently pan the map or scrub the replay — it’s a display-only component.
A planned enhancement will wire event-click to scrub the replay tile to that timestamp.
Export
The current build has no export button. The data is in Firestore and accessible via API if an operator needs an offline report, but there’s no one-click CSV in the UI.
Planned:
- Download CSV of the visible page.
- Copy row to clipboard for quick sharing.
- Append to AI report — include selected rows in the after-action mission report.
Data source
Each flight is read from Firestore (flightLogs sub-collection of the
mission). The logs are written continuously during flight by the drone’s
gateway (Android handhelds) or by our DJI bridge (dock aircraft). Data
survives mission completion and lives for the mission’s retention window.
Drone selection + flight log binding
Unlike the HUD or settings drawer, the flight-log tile shows all flights for the mission, not just the currently-selected drone. If you want per-drone history, sort + filter by the drone column (sort works; filter is planned).
Known limitations
- No filter / search.
- No export.
- No per-event jump-to.
- No merge across missions — each mission has its own log; there’s no operator-level “all flights across all missions” view.
Related
- Telemetry tile
- Replay tile — the scrubbable replay surface these events will wire into.
- Mission report — uses flight-log events as part of the AI draft.