Просмотр blackbox-логов

Обновлено: 2026-08-15 blackbox лог телеметрия failsafe события прошивки inav разбор полёта

Просмотр blackbox-логов

⚗️ Экспериментально · предальфа. Экран показывает то, что уже
декодировано из вашего лога, и ничего не выдумывает: сигнал, которого в
логе нет (например датчика тока), честно объявляется отсутствующим, а не
подставляется нулём.

Инструмент /tools/blackbox открывает blackbox-лог полёта (файл .bbl,
записанный INAV) двумя способами: как ленту событий прошивки (armed, смена
режима, failsafe, disarm, конец записи) и как графики телеметрии с общим
курсором. Это чтение уже загруженного файла — сам разбор лога и хранение
происходят при загрузке трека полёта в Ангар, здесь только просмотр.

Как открыть

  • Из карточки события — если к событию привязан blackbox-лог, на его
    странице есть кнопка «Открыть в просмотрщике blackbox».
  • Из раздела «Инструменты»/tools/blackbox без параметров открывает
    список ваших blackbox-логов по всем бортам, включая архивные: лог
    разбившегося борта — типовой предмет разбора, поэтому архивация борта его
    не прячет.

Чужой или несуществующий лог — при прямом переходе по ссылке — экран
отдаёт как «не найдено», не раскрывая, существует он вообще или нет.

Лента событий — первым экраном

Сразу под шапкой лога стоит лента событий прошивки, а не графики: разбор
обычно начинается с поиска МОМЕНТА (когда сработал failsafe, когда сменился
режим), а уже потом смотрят, что происходило вокруг него. Клик по событию в
ленте переносит курсор графиков на этот момент.

Показываются: старт записи (arm), disarm, смена режима полёта, конец лога,
возобновление записи, ошибка IMU, sync-beep и переходы фазы failsafe. Если
фаза failsafe за короткий промежуток менялась несколько раз, лента не
дробит это на отдельные строки, а показывает одну запись с интервалом
времени («0,90–1,90 с»), внутри которого произошли эти переходы: показывать
точный момент там, где известна только его нижняя и верхняя граница, было
бы неточностью, поданной как точность.

Если переходы failsafe не удалось загрузить (например разорвалась связь),
над лентой появляется отдельная пометка — событий прошивки при этом
по-прежнему видно, а не «как будто failsafe не было».

Графики телеметрии

Кривые ключуются пресетами:

Пресет Что показывает
Мощность напряжение батареи, ток, положение газа
Управление команды RC-приёмника, выходы моторов
Стабилизация гироскоп, P/I/D составляющие PID
Навигация барометрическая высота, высота и скорость по GPS, число спутников, флаги режима полёта

Сигнал пресета, которого нет в этом конкретном логе (типичный случай — лог
без датчика тока), не пропадает молча: над графиками появляется явная
строка, какая роль не записана. Раскрывающийся список «Свой набор кривых»
показывает все поля, реально записанные в этом логе, — если стандартных
пресетов недостаточно.

Непрерывный сигнал рисуется лентой минимум…максимум с линией среднего
(выброс в один отсчёт остаётся виден даже при масштабе в минуты записи);
дискретный (режимы, флаги) — ступенькой по фактическим значениям, без
интерполяции между ними.

Масштаб и курсор

Растяните мышью область на любом графике — все графики разом
перестраиваются на этот интервал более подробными данными: узкое окно
времени даёт больше отсчётов на секунду, вплоть до сырых значений из лога.
Двойной клик возвращает исходный масштаб, кнопка «Сбросить масштаб» — то
же самое.

Курсор общий для всех графиков и для ленты событий: подведите его к точке
на любом графике (или кликните по записи в ленте) — под графиками
появляются момент времени и значение каждой построенной кривой в эту
секунду.

Несколько полётов в одном файле

Один файл лога может содержать несколько сессий (несколько полётов подряд
без перезаписи карты). Если сессий больше одной, над графиками появляется
переключатель сессии — выбор пересобирает и ленту событий, и графики под
выбранный полёт.

Частичный разбор

Очень длинные записи (десятки минут на высокой частоте) разбираются не
целиком — есть бюджет на объём обрабатываемых данных. Если разбор
остановился на этом бюджете, экран честно говорит, какой участок записи
показан, и отдельно уточняет: сам файл лога при этом цел — ограничение
наше, не повреждение. Если часть кадров лога не читается (файл повреждён
или обрезан), это отдельная новость, и обе новости показываются вместе,
если применимы обе, — «уложились в бюджет» и «часть кадров повреждена» не
исключают друг друга, и одна не гасит другую.

Если в файле больше полётов (сессий), чем мы разбираем, отдельная строка
так и говорит: «показаны не все полёты этого файла».

Приватность

Разбор лога выполняется на сервере (файл уже загружен как трек полёта в
Ангар), а сам просмотрщик — обычная страница, читающая уже готовый разбор
через API; сторонних сервисов при просмотре не задействуется.

Для агента (MCP)

Отдельного MCP-инструмента для просмотра blackbox-логов пока нет — это не
CRUD над сущностью и не готовый ответ на осмысленный вопрос агента о логе,
поэтому заводить инструмент только ради выдачи «сырых» рядов для графика
было бы копированием представления экрана, а не помощью агенту.