13.1.4. Запуск скриптов¶
Кнопка запуска – зелёная стрелка под кнопкой подключения, либо Ctrl+R – отправляет скрипт из текущей вкладки редактора на подключённую камеру и запускает его. Пока скрипт выполняется, кнопка запуска превращается в кнопку остановки, которая его прерывает. Эти две кнопки – основной цикл всей разработки на камере: редактируй, запускай, наблюдай, останавливай, снова редактируй.
Важны две детали этого цикла. Во-первых, скрипт отправляется в оперативную память камеры и выполняется там – запуск скрипта ничего не записывает в хранилище камеры, и после перезагрузки скрипт исчезает. Во-вторых, выполняется именно текущая вкладка редактора, ровно в том виде, как она показана, сохранена она или нет. Здесь нет отдельного шага загрузки и нет устаревшей копии на камере, которая могла бы рассинхронизироваться с вашим редактором.
Пока скрипт выполняется, вывод его print() поступает в последовательный терминал, а каждый захваченный им кадр появляется в просмотрщике буфера кадра. Когда скрипт выбрасывает необработанное исключение, трассировка выводится в последовательный терминал, и IDE переводит редактор на проблемную строку – для приложения из нескольких файлов сначала открывается указанный файл с диска камеры.
13.1.4.1. Как сделать скрипт постоянным¶
Чтобы камера запускала скрипт без IDE – при включении питания, автономно, в полевых условиях – сохраните скрипт на камере как main.py. Tools → Save open script to OpenMV Cam (as main.py) записывает текущую вкладку редактора на диск камеры под этим именем, попутно предлагая удалить комментарии и сжать пробелы – что уменьшает файл, но создаёт нечитаемую копию – а Tools → Reset OpenMV Cam перезапускает камеру, чтобы она загрузилась с сохранённым скриптом. Вместе они образуют шаг развёртывания: с этого момента камера запускает ваш скрипт всякий раз, когда на неё подаётся питание, с IDE или без.
Пока перезагруженная камера выполняет сохранённый main.py, IDE по-прежнему может к ней подключиться – при включённой опции Stop Script on Connect/Disconnect (по умолчанию) подключение прерывает сохранённый скрипт и возвращает управление редактору.
См. также
Заморозка скриптов в прошивку – о том, что означает main.py в последовательности загрузки камеры, и о том, как полностью вынести готовое приложение из редактируемого хранилища.
13.1.4.2. Диск камеры¶
Флеш-файловая система камеры (а также SD-карта, если она вставлена) монтируется на хосте как USB-флеш-накопитель. Tools → Open OpenMV Cam Drive folder открывает его в вашем файловом менеджере. Сюда вы копируете библиотечные модули, файлы моделей и ресурсы, которые скрипт импортирует или загружает, и отсюда же извлекаете сохранённые им изображения и журналы. Путь к диску также отображается в строке состояния.
Файлы, которые создаёт скрипт, появляются на хосте не сразу: хост кэширует файловую систему с момента монтирования диска, поэтому снимок, сохранённый выполняющимся скриптом, остаётся невидимым, пока диск не будет перемонтирован. Tools → Reset OpenMV Cam перемонтирует его – быстрый способ добраться до того, что скрипт только что записал.
Одно предостережение: камера и хост совместно используют эту файловую систему, и одновременная запись с обеих сторон может её повредить. Копируйте файлы, когда никакой скрипт не пишет в хранилище, и аккуратно извлекайте карту перед тем, как её вынуть.