Saltearse al contenido

Tile de flight log

El tile de Flight log es una vista histórica de cada vuelo que los drones de la misión han completado. Se alimenta de Firestore (listMissionFlightLogs()) para que las misiones pasadas puedan revisarse incluso después de que los drones se hayan desconectado.

La tabla

Ocho columnas, paginada (10 / 25 / 50 por página):

ColumnaQué muestra
Date / TimeHora de inicio del vuelo (dd MMM yyyy + HH:mm).
DroneDrone ID o nombre resuelto.
DurationTiempo total de vuelo formateado como m:ss o h:mm:ss.
DistanceDistancia total recorrida + distancia máxima desde casa (m).
AltitudeAltitud máxima alcanzada (m).
SpeedVelocidad máxima sobre el suelo (m/s).
Battery% inicial → % final con una barra de drenaje coloreada entre ambos.
ActionsRecuento de eventos de vuelo + botón de expandir.

Expandir una fila

Haz clic en cualquier fila. La fila se expande para mostrar una línea de tiempo de movimiento inline que renderiza cada evento que ocurrió durante ese vuelo:

Tipos de evento mostrados

Del enum FlightActionType:

  • LifecycleTAKEOFF, LANDING, RTH_START, RTH_END.
  • Cambios de modoFLIGHT_MODE_CHANGE con modos antes / después.
  • Alertas HMSHMS_ALERT con severidad + código + mensaje.
  • Acciones del operadorRECALL (operador pulsó el botón Recall), LAND (operador pulsó Land), PAUSE_MISSION, RESUME_MISSION.
  • CámaraSTART_RECORDING, STOP_RECORDING, PHOTO.
  • Umbrales de batería cruzadosLOW_BATTERY, SERIOUS_LOW_BATTERY.
  • CommsSIGNAL_LOSS, SIGNAL_RECOVERED.

Cada evento muestra un timestamp, icono y resumen. Haz hover para el payload completo del evento.

Filtros + búsqueda

La build actual no tiene UI de filtro o búsqueda. Cada fila se renderiza dentro de la paginación. Si necesitas encontrar un vuelo específico, ordena por fecha (descendente por defecto) y desplázate.

Comportamiento de click-jump

  • Hacer clic en una fila alterna la expansión (no salta fuera).
  • Hacer clic en un evento dentro de la fila expandida actualmente NO panoramea el mapa ni hace scrub del replay — es un componente sólo de visualización.

Una mejora planificada cableará click-en-evento para hacer scrub del tile de replay a ese timestamp.

Export

La build actual no tiene botón de export. Los datos están en Firestore y son accesibles vía API si un operador necesita un informe offline, pero no hay CSV de un clic en la UI.

Planificado:

  • Download CSV de la página visible.
  • Copy row to clipboard para compartir rápido.
  • Append to AI report — incluir filas seleccionadas en el informe de misión post-acción.

Fuente de datos

Cada vuelo se lee desde Firestore (sub-colección flightLogs de la misión). Los logs se escriben continuamente durante el vuelo por el gateway del drone (handhelds Android) o por nuestro puente DJI (aeronaves de dock). Los datos sobreviven a la finalización de la misión y viven durante la ventana de retención de la misión.

Selección de drone + binding del flight log

A diferencia del HUD o del settings drawer, el tile de flight-log muestra todos los vuelos de la misión, no sólo el drone actualmente seleccionado. Si quieres historial por drone, ordena + filtra por la columna drone (el orden funciona; el filtro está planificado).

Limitaciones conocidas

  • Sin filtro / búsqueda.
  • Sin export.
  • Sin jump-to por evento.
  • Sin fusión entre misiones — cada misión tiene su propio log; no hay vista a nivel de operador “todos los vuelos entre todas las misiones”.

Relacionado