Skip to content

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):

ColumnWhat it shows
Date / TimeStart time of the flight (dd MMM yyyy + HH:mm).
DroneDrone ID or resolved name.
DurationTotal flight time formatted as m:ss or h:mm:ss.
DistanceTotal travelled distance + max distance from home (m).
AltitudeMax altitude reached (m).
SpeedMax ground speed (m/s).
BatteryStart % → End % with a coloured drain bar between them.
ActionsCount 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:

  • LifecycleTAKEOFF, LANDING, RTH_START, RTH_END.
  • Mode changesFLIGHT_MODE_CHANGE with before / after modes.
  • HMS alertsHMS_ALERT with severity + code + message.
  • Operator actionsRECALL (operator hit the Recall button), LAND (operator hit Land), PAUSE_MISSION, RESUME_MISSION.
  • CameraSTART_RECORDING, STOP_RECORDING, PHOTO.
  • Battery thresholds crossedLOW_BATTERY, SERIOUS_LOW_BATTERY.
  • CommsSIGNAL_LOSS, SIGNAL_RECOVERED.

Each event shows a timestamp, icon, and summary. Hover for the full event payload.

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.