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):
| Columna | Qué muestra |
|---|---|
| Date / Time | Hora de inicio del vuelo (dd MMM yyyy + HH:mm). |
| Drone | Drone ID o nombre resuelto. |
| Duration | Tiempo total de vuelo formateado como m:ss o h:mm:ss. |
| Distance | Distancia total recorrida + distancia máxima desde casa (m). |
| Altitude | Altitud máxima alcanzada (m). |
| Speed | Velocidad máxima sobre el suelo (m/s). |
| Battery | % inicial → % final con una barra de drenaje coloreada entre ambos. |
| Actions | Recuento 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:
- Lifecycle —
TAKEOFF,LANDING,RTH_START,RTH_END. - Cambios de modo —
FLIGHT_MODE_CHANGEcon modos antes / después. - Alertas HMS —
HMS_ALERTcon severidad + código + mensaje. - Acciones del operador —
RECALL(operador pulsó el botón Recall),LAND(operador pulsó Land),PAUSE_MISSION,RESUME_MISSION. - Cámara —
START_RECORDING,STOP_RECORDING,PHOTO. - Umbrales de batería cruzados —
LOW_BATTERY,SERIOUS_LOW_BATTERY. - Comms —
SIGNAL_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
- Tile de telemetría
- Tile de replay — la superficie de replay scrubbable en la que se cablearán estos eventos.
- Informe de misión — usa eventos de flight-log como parte del borrador AI.