v4.0.1¶
v4.0.1 – это коренная модернизация, переносящая OpenMV IDE с его давней основы Qt Creator 4.0.2 на Qt Creator 10.0.1. Весь стек плагинов OpenMV (просмотрщик буфера кадра, последовательный порт/протокол, терминал, гистограмма, редакторы порогов и ключевых точек, инструменты для работы с видео и обёртки для прошивки) заново накладывается поверх новой основы вместе с отполированной парой тем Flat Light/Flat Dark, подсветкой Python с учётом OpenMV, единым диалогом загрузки прошивки и широкой поддержкой обнаружения устройств в ARM64 Linux и macOS. Смена основы Qt Creator – это крупная внутренняя модернизация, но она не ломает пользовательские проекты; несколько поведений по умолчанию и определений плат всё же изменились (см. раздел Несовместимые изменения).
Основные изменения¶
Переход на Qt Creator 10.0.1. IDE переходит с Qt Creator 4.0.2 на 10.0.1: вышестоящий Qt Creator урезается до базовой сборки (98b95fd3b), и весь плагин OpenMV заново добавляется на новой основе (0e8047372).
Темы Flat Light и Flat Dark. Поставляется отполированная пара светлой/тёмной тем с соответствующими пользовательскими стилями подсветки синтаксиса редактора; выбор темы вновь доступен в общих настройках, но ограничен только этими двумя, а темой по умолчанию теперь является
flat-dark(21348924b, 13c3849e8).Последовательный терминал с raw-REPL. Терминал теперь запускает, прерывает, перезагружает и вставляет скрипты через полноценный конечный автомат raw-REPL MicroPython (CTRL-A/CTRL-D), надёжно обрабатывая скрипты большего размера (a7241079c).
Редактирование Python с учётом OpenMV. Модули, классы, функции, методы и аргументы OpenMV подсвечиваются на основе встроенной документации, с более умным автодополнением и автоматическим выравниванием отступов с учётом скобок и двоеточий (801eab8a8, 8e9f967e7, 9fdff9c6d).
Единый диалог загрузки прошивки. Прошивка теперь показывает единый контекстный диалог (Erasing Disk / Flashing Firmware / Flashing Bootloader) с индикатором выполнения и сворачиваемым журналом Show/Hide Details, запоминающим своё состояние (5b51356f8).
Поддержка OpenMV Cam RT1062. Для новой платы класса i.MX RT1060 добавлены прошивка, загрузчики DFU/flash, перечисление SDP/blhost и шаг программирования с прожигом eFuse (a6595f5f7), которому затем выделен отдельный вариант платы Secure Bootloader (SBL) (d2b11c6c8).
Новые возможности¶
Флаги автоматизации. Флаги
-auto_update(release/development/ путь),-auto_eraseи-auto_runпозволяют IDE при подключении загрузить/стереть прошивку и затем запустить открытый скрипт; после переподключения загрузчика IDE ждёт до 10 секунд повторного перечисления камеры, прежде чем продолжить (b54affe79, f4e03d978).Флаг ``-disable_stop`` и переключатель меню
stop on connect/disconnectпозволяют пользователям отключить остановку скрипта при подключении или отключении (02724ca7d).Переключатель Stop Script on Connect/Disconnect (включён по умолчанию) отвязывает подключение/отключение от остановки выполняемого скрипта; Auto Reconnect теперь по умолчанию выключен (a0e78057f).
Запрос типа платы. Когда подключённая плата сообщает об архитектуре, отсутствующей в сопоставлении прошивок, IDE теперь предлагает пользователю выбрать тип платы (запоминая последний выбор) вместо прерывания с ошибкой «Unsupported board architecture!» (b7165eb3d).
Подсветка синтаксиса Python для OpenMV раскрашивает известные модули, классы, данные, функции, методы и аргументы OpenMV, используя списки ключевых слов, формируемые из встроенной документации (801eab8a8, b4d481bf5).
~300 определений языков KSyntaxHighlighting поставляются с редактором, поэтому исходные файлы на многих языках подсвечиваются прямо из коробки (39674a4dc).
Встроенные примеры скриптов OpenMV (Hello World, снимок, запись видео, оптический поток, событийные камеры, глобальный затвор, FLIR Lepton и другие) теперь зафиксированы в репозитории и поставляются с IDE (938ac6bbe).
Двоичный/шестнадцатеричный редактор включён, так что пользователи могут открывать и просматривать двоичные файлы, при этом его панель инструментов урезана под интерфейс OpenMV (675bda966).
Сравнение документов в памяти. Новые файлы и доступные только для чтения примеры теперь получают резервный временный файл, чтобы можно было сравнивать несохранённые документы, а диалог сравнения внешних файлов запоминает последнюю использованную папку (5281e5f6c, 2934d5216).
Плагин редактора с вкладками вновь добавлен, что даёт IDE панель документов с вкладками; исходный код плагина миникарты был возвращён, но оставлен отключённым в сборке этого выпуска (0e8047372).
Резервная прошивка через DfuSe и pydfu восстановлена для устройств DFU, к которым нельзя обратиться по серийному номеру, с автоматической обработкой стирания без диалога при подключении (e42a5be7d).
Прожиг eFuse для i.MX RT. Программирование прошивки теперь прожигает eFuse (
efuse-program-once) для плат класса RT1060 (8053bb578, a6595f5f7).Страница мастера Linux Root Installs позволяет пользователю согласиться или отказаться от установки библиотек через apt с повышенными правами и установки правил udev вместо их безусловного выполнения (6bac80984).
Прочие изменения и улучшения¶
Фоновое сканирование последовательных портов. Перечисление портов перенесено с потока интерфейса в отдельный рабочий поток
ScanSerialPortsThread, так что IDE остаётся отзывчивой во время сканирования (7be4dab26).Более широкое обнаружение устройств. Сканирование портов переработано в переиспользуемый вспомогательный метод
filterPorts(), который учитывает устройства picotool и i.MX DFU и переклассифицирует известные последовательные порты загрузчиков Arduino (старые NRF/RPI и PID загрузчиков) как устройства DFU (25a5d30fd).Больше резервных терминалов. При запуске встроенных инструментов воспроизведения видео (Play Video File / Play RTSP Stream) в Linux IDE теперь дополнительно к
xtermиgnome-terminalпробуетlxterminal,konsoleиxfce4-terminal(df54007e0).Сообщение о ключах платы. Регистрация камеры теперь разбирает ответ «Remaining N», чтобы сообщить пользователю, сколько ключей платы осталось, и добавляет отдельное сообщение об ошибке «Invalid Board Key for Board Type» (5759e73eb).
Загрузки, размещённые на GitHub. Проверки версий и загрузки ресурсов теперь используют
raw.githubusercontent.com/openmv/openmv-ide-versionи релизыopenmv/openmv-ideвместоupload.openmv.io(994109c28).HTTPS повсюду. Все веб-запросы OpenMV (проверки версий, регистрация SWD ID, загрузки ресурсов и прошивок) теперь используют
https://(54347cad0).Автоматизация настройки Linux. Установщик обнаруживает отсутствующие библиотеки и правила udev и при необходимости генерирует исполняемый
setup.shс точными командами установки apt-get/pip и правил udev (а такжеREADME, предлагающий пользователю запустить его) (c6dc705e6).Терпимость к медленным платам. Последовательный терминал увеличивает время ожидания на чтение с 1 мс до 10 мс и выдаёт подтверждение «OK» по завершении скрипта (c935e4489).
Более плавный ход прошивки. Индикаторы выполнения загрузчика прошивки теперь сразу переключаются с неопределённого режима на 0-100 % вместо ожидания первого процентного отсчёта во всех инструментах dfu-util, bossac, picotool и i.MX (19d947308, 86d021f92).
Восстановление старого загрузчика вновь добавлено через немедленный режим загрузчика, который отправляет команды стирания/записи без дополнения для синхронизации запросов из быстрого режима (c20112c07).
Более чистые консоли инструментов. Терминалы прошивки (bossac, dfu-util, picotool, imx, инструменты для видео) теперь выполняются как самостоятельные консольные процессы с лучше отформатированным выводом команд (8053bb578).
Доработка автодополнения. Автодополнение различает классы, методы и функции с отдельными подсказками аргументов, использует надлежащие значки модели кода и учитывает область видимости public/protected/private по префиксу из подчёркивания; обработчик дополнения по ключевым словам также пропускает ведущие пробелы перед курсором при явно (вручную) вызванном дополнении (8e9f967e7, 68b26b5fc).
Объединённые диалоги. Разрозненные диалоги OpenMV с опцией «Don’t show this again» – включая стартовый информационный диалог
OpenMV Cam LED Colorsи запросы об обновлении прошивки и примерах – объединены в диалогиCheckableMessageBox«Do Not Ask/Show Again», в общие настройки добавлена кнопка «Reset Do Not Ask/Show Again Dialogs», а маркеры свёртывания кода по умолчанию отключены (9fdff9c6d).Брендинг с учётом темы. Добавлены экраны-заставки для тёмного режима, тёмные/светлые логотипы чипов ST и NXP в окне About, цвета подсказок для тёмного режима и правильные цвета значков автодополнения (d85fdeb19, 9895a8395, f45ceaaea, 7f3e1f383).
Очистка просмотрщика изображений. Действия share, background, outline и «set as default» скрыты, добавлено действие подгонки под экран, и исправлено масштабирование анимированных изображений (b37c55e25).
Очистка контекстного меню. Пункты «Show in File System View», «Open Terminal», «File Properties» и «Add/Delete UTF-8 BOM on Save» скрыты (5d862c78e).
Тёмный последовательный терминал. Самостоятельный терминал использует надлежащую тёмную тему со стилизованными полосами прокрутки, обновлёнными значками панели инструментов и корректной перезагрузкой значков полос прокрутки с высоким DPI на разных экранах (5c3af6880).
Очистка Find/Search. Панель результатов получает тёмную тему, селектор поисковой системы скрыт, метки упрощены, а Find-in-Files по умолчанию использует папку Documents/OpenMV (20a806550).
Идентичность приложения. IDE теперь показывает правильный значок OpenMV на рабочем столе, в заголовке окна и на панели задач (с обработкой высокого DPI в Windows), а идентификатор IDE изменён на
openmvide(8ad1eed1f).Заставка с высоким DPI отображает изображение заставки 2x на дисплеях Retina/с масштабом 200 % (626ff673e).
Восстановление панели действий. Левая панель действий (New File, Open, Save, Undo, Redo, Cut, Copy, Paste) была восстановлена и получила пользовательские значки OpenMV (b8479b5d0).
Логотипы в диалоге About. Теперь показываются оба партнёрских логотипа – Arduino и Edge Impulse (Edge Impulse ранее был скрыт) – с вариантами 2x для высокого DPI, а встроенная графика заставки была обновлена (
splash-small-2/splash-large-2) (5facd8d9a).Select Word Under Cursor включён; команды Go to Block Start/End (Ctrl+[ / Ctrl+]) и Select Block Up/Down были ненадолго снова включены (36ed5b1a8), но оставлены отключёнными в выпуске (626ff673e).
Запись рабочего стола Linux получает категорию Electronics, поле Comment с описанием и поисковые Keywords (embedded electronics, microcontroller, micropython, computer/machine vision) (470e5702e).
Перенос ресурсов. Пользовательские ресурсы перемещены в версионированное расположение (старая папка qtcreator удаляется при запуске), а безобидные предупреждения DirectWrite о начертании шрифтов в Windows подавляются (a04af5351, 70765dc2a).
Скрытые внутренние параметры. Внутренние параметры Core
-colorи-themeскрыты из вывода справки, а режим презентации был вновь включён (434c7b4cc).Заново применённые настройки ядра к красивой панели действий/виджету вкладок, менеджеру сообщений/окну вывода, прокси-действиям, подсветке синтаксиса и текстовому редактору (0e8047372).
QCustomPlot 2.1.1. Встроенная библиотека построения графиков обновлена для совместимости с Qt 6.4 и корректной обработки динамически меняющегося DPI дисплея (8801415fe).
Косметическая очистка интерфейса значков стрелок полос прокрутки, строки состояния, кнопок закрытия на панели вкладок документов и ширины ползунка редактора; индикатор редактора «Display File Line Ending» теперь по умолчанию выключен (e0c4d2325, 6a26f4430, e130988fb).
Исправления ошибок¶
Исправлено обнаружение VID/PID в Linux за счёт чтения
/sys/class/tty/<port>/device/ueventдля получения реальных VID/PID устройства, что обходит возврат идентификаторов USB-концентратора функциейQSerialPortInfo, так что камеры за концентраторами обнаруживаются корректно (28220b351).Исправлена прошивка через загрузчик на Mac за счёт смягчения проверок размера конечной точки и добавления пакета синхронизирующего запроса только тогда, когда размер записи в точности равен одной конечной точке USB (86d021f92).
Исправлены инструменты воспроизведения видео в Linux: Play Video File / Play RTSP Stream теперь скрыты на 32-битном и ARM Linux (нет встроенного ffplay), с резервным вариантом gnome-terminal, когда xterm недоступен, а двоичный файл ffmpeg для macOS восстановлен из заглушки (d342649cc, d896f4225).
Задержки начала/конца сброса загрузчика увеличены с 0 до 5, чтобы избежать наложения команд стирания и записи во время обновления прошивки (fabc168b6).
Упрощено восстановление загрузчика: принудительный переход в загрузчик для починки кирпича-камеры пропускает избыточные запросы, а после сброса загрузчика DFU IDE автоматически повторяет попытку обновления вместо того, чтобы просить пользователя переподключиться (12b924088).
Разрешено прерывать команды выгрузки буфера кадра/TX-буфера через последовательный порт в середине транзакции (4a4afae1b).
Удалён обходной приём с отказом при зависании чтения последовательного порта, который мог дополнять ответы нулевыми байтами, что повышает надёжность быстрой передачи по USB (0ee1d8e91).
Исправлены отладка по WiFi и автоматическое переподключение: порты WiFi обновляют свою метку времени последнего обнаружения при повторном нахождении, исправлено несколько ошибок с итератором после удаления при выводе из работы портов WiFi и обнаружении DFU/загрузчика, а автоматическое переподключение теперь ждёт, пока IDE не освободится, прежде чем переподключаться (cf0b67dc6).
Исправлен конвертер видео в MJPEG, чтобы он разбирал частоту кадров из вывода кодировщика и записывал правильную миллисекундную дельту между кадрами, так что преобразованные видео воспроизводятся с правильной скоростью (4a7ad2057).
Исправлен сбой запуска прошивки и встроенных инструментов командной строки за счёт принудительного использования бэкенда QProcess и исправления защиты цикла событий блокирующего процесса (200fe9f3c).
Исправлены значки ветвей раскрытия/свёртывания дерева в редакторе наборов данных, чтобы они корректно отображались на дисплеях HiDPI, за счёт перезагрузки таблицы стилей значков при изменении соотношения пикселей устройства (a0e78057f).
Обновления пакетов/ресурсов теперь автоматически перезапускают OpenMV IDE вместо простого выхода после установки (178ee1b8e).
Исправлена подсветка результатов Find/поиска, и действия открытия результата поиска/файла теперь возвращаются к первому видимому редактору, когда текущий редактор отсутствует (48c402dfc).
Исправлен диалог загрузки прошивки, так что его текст предупреждения очищается, а окно корректно изменяет размер по завершении операции прошивки (c505c6ade).
Исправлено несколько ошибок интерфейса в macOS: панель вкладок больше не засыпает ошибками загрузки значков и корректно отображается при открытии файла (9be8c58de, 5322cf968).
Исправлены стилизация и выравнивание по базовой линии строки состояния / панели вывода в macOS и Linux (4fc4545de, d29b2baa0, a440d5cd8).
Исправлена печать исходного кода, так что заголовок страницы с названием имеет правильные верхние и боковые поля вместо касания края страницы (786d6012c).
Поддержка платформ и инструментов¶
Основа Qt Creator: 10.0.1 (перенесена с 4.0.2).
OpenMV IDE: 4.0.0 -> 4.0.1.
OpenMV Cam RT1062 (i.MX RT1060): начальная прошивка RT1062, flash-загрузчик, подписанные образы, запись
imx.txtи ключи конфигурации secure-bootloader/eFuseblhostбыли добавлены в папку прошивкиOPENMV5(a6595f5f7); затем плата была объединена в единую папкуOPENMV_RT1060, и добавлен отдельный вариант платы Secure Bootloader (SBL) (OpenMV_Cam_RT1062_SBL) (d2b11c6c8, 5baf28c6e).Встроенный набор инструментов для прошивки (blhost, bossac, dfu-util, dfuse + драйверы STM32, picotool, sdphost, ffmpeg, драйверы FTDI/Arduino) был заново упакован для Windows/macOS/Linux, при этом двоичные файлы для Linux помечены как исполняемые (fbfa4903a, bfb6b32e2, 9551c64da).
ARM64 Linux DFU: встроенный
dfu-utilдля aarch64 вместе с обнаружением arm64 в списке устройств и загрузке прошивки обеспечивает прошивку DFU на хостах вроде Raspberry Pi (16bc6fe0f, 470e5702e).Обнаружение устройств i.MX теперь работает в Linux (разбор
lsusb) и macOS (сканированиеioreg), что позволяет загружать прошивку i.MX RT на этих платформах (e03ccbe71, 7cf505d09).Ограничение по платформам: использование i.MX ограничено Windows/macOS/Linux-x86_64 с критической ошибкой в остальных случаях, а прошивка Portenta/Nicla на ARM/ARM64 Linux показывает предупреждение «DFU Util may not be stable on this platform» (9513f6475).
Windows OpenGL: программный рендеринг восстановлен за счёт включения
opengl32sw,Qt6OpenGLи поддержки OpenGL в Qt6Gui в развёртываемый пакет (aaaa1928f).Переименованы папки/идентификаторы плат Arduino. Папки прошивок и идентификаторы плат в
boards.txtдля Portenta, Nicla Vision и Nano 33 BLE Sense были переименованы вARDUINO_PORTENTA_H7,ARDUINO_NICLA_VISIONиARDUINO_NANO_33_BLE_SENSE(a70d6562a); папка/идентификатор платы Nano 33 BLE Sense впоследствии был приведён к нижнему региструarduino_nano_33_ble_sense, чтобы соответствовать имени платы, сообщаемому устройством (22750d8c7, a801a81de).Загрузчик OPENMV_RT1060 flash-загрузчики (
blhost_flash_loader.bin,sdphost_flash_loader.bin) были обновлены (5baf28c6e).QCustomPlot: 2.1.1 (встроенная библиотека построения графиков) (8801415fe).
Образы прошивок на диске были заново упакованы для всех поддерживаемых плат OpenMV/Arduino (
OPENMV1-4P,OPENMV4_PRO,OPENMVPT,ARDUINO_NICLA_VISION,arduino_nano_33_ble_sense,ARDUINO_PORTENTA_H7,ARDUINO_NANO_RP2040_CONNECT,OPENMV_RT1060,CYW4343, плюс прошивка WiFiWINC1500), с прошивкой и, где применимо, образами загрузчика/uvc (fbfa4903a).
Несовместимые изменения¶
Это видимые пользователю изменения рабочего процесса и поведения; сам переход на Qt Creator 10.0.1 не ломает пользовательские проекты или скрипты.
Определения плат i.MX RT1060 изменились. Записи
EVKBMIMXRT1060иOPENMV5были заменены единой платойOPENMV_RT1060(OpenMV Cam RT1062, плюс вариант SBL), а старые папки прошивок были удалены (d2b11c6c8).Тайм-аут ответа на команду по умолчанию составляет 10000 мс (был 5000 мс в 4.0.0); текст справки
-override_read_timeoutбыл обновлён в соответствии (4a4afae1b).Поведение при подключении/отключении изменилось. Auto Reconnect теперь по умолчанию ВЫКЛЮЧЕН, и подключение или отключение по умолчанию больше не останавливает выполняемый скрипт, если только не включён новый переключатель «Stop Script on Connect/Disconnect» (он по умолчанию включён) (a0e78057f).
Процесс обновления перезапускает IDE. Обновления пакетов/ресурсов теперь автоматически перезапускают OpenMV IDE вместо выхода после установки (178ee1b8e).
Переименованы идентификаторы плат Arduino. Идентификаторы плат в
boards.txtи папки прошивок для Portenta, Nicla Vision и Nano 33 BLE Sense были переименованы вARDUINO_PORTENTA_H7,ARDUINO_NICLA_VISIONиARDUINO_NANO_33_BLE_SENSE(последний позднее приведён к нижнему региструarduino_nano_33_ble_sense) (a70d6562a, 22750d8c7, a801a81de).