13.1.7. Представления панели#

Панель под просмотрщиком буфера кадра показывает не только гистограмму. Селектор слева в её заголовке переключает её между пятью представлениями, каждое из которых – отдельный инструмент, направленный на подключённую камеру:

  • Histogram – статистика пикселей текущего кадра; описана на отдельной странице.

  • Board Info – что представляет собой подключённая камера.

  • Memory – сколько своей RAM использует скрипт, в реальном времени.

  • Channels – значения и элементы управления, которые публикует скрипт; описаны на отдельной странице.

  • Statistics – что происходит на линии связи между IDE и камерой.

Выбор запоминается между сеансами. Работу выполняет только то представление, которое показывается: переключитесь с гистограммы – и её вычисления останавливаются, пока вы не вернётесь, поэтому оставленная на Memory или Channels панель ничего не стоит предпросмотру. Каждое представление объясняет себя, когда ему нечего показать – камера не подключена или прошивка камеры не сообщает данные, – а представлениям Board Info, Memory и Statistics нужна камера с протоколом отладки v2 (прошивка 5.0.0 или новее).

13.1.7.1. Представление Board Info#

Board Info – это удостоверение личности камеры: тип платы и подключённый датчик, последовательный порт, версии прошивки, протокола и загрузчика, идентификаторы CPU и устройства, идентификаторы поставщика и продукта USB, размеры буфера потока, буфера кадра, флеш-памяти и RAM, а также строка возможностей «да / нет» – GPU, NPU, ISP, видеокодер, кодек JPEG, DRAM, CRC, счётчики производительности, поддержка профилировщика, Wi-Fi, Bluetooth, SD-карта, Ethernet, высокоскоростной USB и несколько ядер. Это первое место, куда стоит заглянуть, когда вопрос в поддержку начинается с «какая это именно плата», а текст выделяется, поэтому всё это можно скопировать в отчёт об ошибке.

The Board Info view listing an OpenMV N6 with a Lepton sensor: board, sensor, port, firmware, protocol and bootloader versions, CPU and device ids, USB id, buffer sizes, and the yes / no capability rows

Board Info для OpenMV N6 с тепловизионным датчиком.#

13.1.7.2. Представление Memory#

Memory строит графики использования памяти камерой во время работы скрипта: один график для кучи MicroPython со сборкой мусора и по одному для каждого пула памяти прошивки, под каждым – его показатели занято / всего, свободно и пик, а также линия, отмечающая наибольшее использование с момента подключения. Графики прокручиваются во времени, поэтому обычная «пила» кучи – выделения растут, пока не сработает сборщик мусора – видна с первого взгляда, медленная утечка выглядит как лестница, а выделение размером с кадр – как всплеск на каждой итерации цикла. Пулы также сообщают Persist – память, занятую долгоживущими выделениями, такими как буферы кадров, в отличие от того, что скрипт постоянно перерабатывает.

The Memory view with the GC heap graph showing a sawtooth of allocations and collections, and a memory pool graph below, each with used / total, free, persist, and peak figures

Представление Memory: «пила» кучи и пул памяти с их показателями.#

13.1.7.3. Представление Statistics#

Statistics – это приборная панель самого протокола отладки. Разделы Device и Host считают пакеты, отправленные и принятые с каждой стороны, ошибки контрольных сумм и последовательности, повторные передачи и ошибки транспорта, а таблица Channels между ними перечисляет каждый канал, зарегистрированный камерой, с числом и частотой его событий. Это диагностическое представление для соединения, которое ведёт себя неправильно: поток, который зависает, камера, теряющая кадры на длинном кабеле, или скрипт, публикующий так быстро, что линия связи не успевает, – счётчики показывают, какая сторона теряет и насколько сильно.

The Statistics view with the device counters, the per-channel event table, and the host counters stacked in the pane

Представление Statistics: счётчики протокола для каждой стороны и частоты событий по каналам.#