Просмотр лога полётника
⚗️ Экспериментально · предальфа. Экран показывает то, что записано в
вашем файле, и ничего не выдумывает: если лог разобран не целиком, об этом
сказано прямо.
Инструмент /tools/flight-log открывает лог полётного контроллера и рисует
по нему графики: INAV и Betaflight (blackbox — файл с SD-карты или из флеш-памяти
платы) и ArduPilot (журнал DataFlash, файл .BIN). Вход не нужен.
Файл остаётся у вас
Лог разбирается прямо в браузере, на этом устройстве, и никуда не
загружается: ни на сервер, ни в сторонние сервисы. Поэтому можно открыть лог
с любой записью, не боясь, что координаты вашего поля или маршрута окажутся в
чужих руках. Закрыли вкладку — файла в памяти больше нет.
Как открыть
- Перетащите файл на рамку «Открыть лог» или нажмите «Выбрать файл».
- Дождитесь разбора: полоса показывает чтение файла и расшифровку. Лог в
десятки мегабайт разбирается за секунды, страница в это время не зависает. - Откроются графики первого подходящего набора. Если в файле несколько
записей (контроллер включали несколько раз), нужную выбирают списком
«Запись».
Файл крупнее 150 МБ открывается с предупреждением (разбор долгий и занимает
много памяти); слишком большой отклоняется сразу, до чтения, с указанием
допустимого размера.
Наборы кривых
Шесть кнопок собирают набор из полей этого лога: «Положение», «Управление и
газ», «Высота», «Скорость», «Питание», «Связь и GPS». Имена полей у INAV/Betaflight
и ArduPilot разные, поэтому набор подбирается под формат. Если чего-то из набора
в логе нет, экран называет это («Не записано в этом логе: …»), а не рисует пустой
график.
В разделе «Свой набор кривых» — все поля лога по группам; выбрать можно до
двенадцати кривых за раз.
Напряжение и ток INAV (
vbat,amperage) показываются сырыми значениями
декодера — их единицы пока не сверены с реальными логами. Положение INAV
(attitude) записано в десятых долях градуса.
Курсор и масштаб
- Курсор — общий для всех графиков: проведите мышью по любому, и над
графиками появятся значения всех кривых в этот момент. Стрелки ← и → шагают
курсором по отсчётам, сShift— на десять. - Масштаб по времени общий для всех графиков: протяните мышью по графику,
чтобы приблизить выбранный интервал;Ctrl(на Mac —⌘) и колесо мыши
приближают и отдаляют вокруг курсора; двойной щелчок или кнопка «Весь полёт»
возвращает целиком. Кнопки «Приблизить», «Отдалить» и стрелки панорамы делают
то же без мыши. - При приближении кривые пересчитываются под окно: узкий интервал показывает
больше деталей вплоть до отдельных отсчётов, а короткий выброс в один отсчёт
не теряется (непрерывный сигнал рисуется полосой «минимум–максимум» с линией
среднего, дискретный — ступенькой по реальным значениям).
Режимы и события
Над графиками стоят две полосы на той же шкале времени. Верхняя — режимы
полёта (название режима по типу аппарата стоит рядом с его номером —
«RTL · 11»; если названия нет, остаётся «Режим 11»), нижняя — события (включение, ошибки, сообщения
контроллера); подсказка у отметки содержит текст сообщения. Если событий в окне
слишком много, часть не рисуется, и это сказано числом («и ещё N событий»).
Когда показана не вся запись
Две РАЗНЫЕ пометки, и смешивать их нельзя:
- «Показана часть полёта» — разбор остановлен пределом страницы: лог длиннее,
чем она способна держать в памяти. Графики покрывают начало записи, конец не
читался. Предел задаётся в конфигурации и у форматов считается по-разному: - INAV/Betaflight — по числу значений (отсчёт × сигнал), 320 млн: это около
двух часов записи на логе с ~44 тыс. значений в секунду; - ArduPilot
.BIN— по числу сообщений, 8 млн: около двух часов при ~1050
сообщениях в секунду (замер на логе основателя). Прежний собственный предел
декодера (3 млн) давал бы только ~48 минут.
Темп записи у разных бортов и настроек разный, поэтому «два часа» — ориентир,
а не обещание: плотный лог обрежется раньше, и пометка об этом скажет.
- «Лог повреждён» — часть кадров не читается (обрезанный хвост, битые кадры,
потеря синхронизации); показано всё, что удалось прочитать.
Обе пометки означают, что обрубок не выдаётся за целый лог. Отсутствие времени
в UTC или единиц измерения в логе ArduPilot — не повреждение и пометки не даёт.
Память: два часа записи — это около 1,9 ГБ у INAV и около 0,8 ГБ у ArduPilot в
настольном браузере. Для телефона это много: на нём длинные логи могут не
открыться.
Если файл не открылся
Экран называет причину: неподдерживаемый формат (текстовые журналы ArduPilot
.log пока не разбираются — нужен бинарный .BIN), пустой файл, лог без
описания полей, повреждённый файл. Причины приходят из разбора кодами; сам файл
и его содержимое в сообщениях об ошибках не фигурируют.
Что дальше
Карта маршрута с курсором по времени, открытие логов прямо из карточки борта и
сохранение разбора в Ангар — в планах следующих версий.