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 є великою внутрішньою модернізацією і не зачіпає проєкти користувачів; деякі типові поведінки й визначення плат змінились (див. Breaking changes).

Основні можливості

  • Реbase на Qt Creator 10.0.1. IDE переходить з Qt Creator 4.0.2 на 10.0.1: upstream Qt Creator скорочено до мінімуму для збирання (98b95fd3b), а повний плагін OpenMV повторно додано на новій основі (0e8047372).

  • Теми Flat Light і Flat Dark. Відшліфована пара світлої/темної тем поставляється з відповідними стилями підсвічування синтаксису редактора; вибір теми знову доступний у загальних налаштуваннях, обмежений лише цими двома варіантами, а типовою темою стала flat-dark (21348924b, 13c3849e8).

  • Серійний термінал Raw-REPL. Термінал тепер запускає, перериває, перезавантажує та вставляє скрипти через справжній raw-REPL (CTRL-A/CTRL-D) кінцевий автомат MicroPython, надійно обробляючи великі скрипти (a7241079c).

  • Редагування Python з підтримкою OpenMV. Модулі, класи, функції, методи та аргументи OpenMV підсвічуються синтаксисом на основі вбудованої документації, з покращеним автодоповненням та автовідступником, що розуміє дужки й двокрапки (801eab8a8, 8e9f967e7, 9fdff9c6d).

  • Уніфікований діалог завантаження мікропрограми. Прошивка тепер відображає єдиний контекстний діалог (Erasing Disk / Flashing Firmware / Flashing Bootloader) з індикатором виконання та журналом Show/Hide Details, що згортається і запам’ятовує стан (5b51356f8).

  • Підтримка OpenMV Cam RT1062. Мікропрограму, DFU/flash-завантажувачі, перерахування SDP/blhost та крок програмування eFuse додано для нової плати класу i.MX RT1060 (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).

  • Підсвічування синтаксису OpenMV Python виділяє кольором відомі модулі, класи, дані, функції, методи та аргументи OpenMV за допомогою списків ключових слів, заповнених із вбудованої документації (801eab8a8, b4d481bf5).

  • ~300 визначень мов KSyntaxHighlighting постачаються з редактором, тому вихідні файли багатьох мов підсвічуються «з коробки» (39674a4dc).

  • Вбудовані приклади скриптів OpenMV (Hello World, знімок, запис відео, оптичний потік, камери подій, глобальний затвор, FLIR Lepton тощо) тепер зафіксовані та постачаються разом із IDE (938ac6bbe).

  • Редактор бінарних/hex-файлів увімкнено, щоб користувачі могли відкривати та переглядати бінарні файли; панель інструментів скорочено для відповідності UI 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).

Інші зміни та покращення

  • Фонове сканування серійних портів. Перерахування портів перенесено з потоку UI до окремого робочого потоку ScanSerialPortsThread, щоб IDE залишався чуйним під час сканування (7be4dab26).

  • Ширше виявлення пристроїв. Сканування портів перероблено у допоміжну функцію filterPorts(), яка охоплює пристрої picotool і i.MX DFU та перекласифіковує відомі серійні порти завантажувача Arduino (NRF/RPI старі та завантажувальні PID) як DFU-пристрої (25a5d30fd).

  • Більше резервних терміналів. При запуску вбудованих інструментів відтворення відео (Play Video File / Play RTSP Stream) на Linux IDE тепер перебирає lxterminal, konsole і xfce4-terminal на додаток до xterm та gnome-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).

  • Покращене автодоповнення. Завершення розрізняє класи, методи та функції з окремими підказками аргументів, використовує правильні іконки моделі коду та враховує рівень доступу (публічний/захищений/приватний) за префіксом підкреслення; процесор завершення ключових слів також пропускає початкові пробіли перед курсором при явно (вручну) викликаному завершенні (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 у діалозі «Про програму», кольори підказок для темного режиму та правильні кольори іконок автодоповнення (d85fdeb19, 9895a8395, f45ceaaea, 7f3e1f383).

  • Очищення переглядача зображень. Дії «поділитися», «фон», «контур» та «встановити за замовчуванням» приховано, додано дію «вписати в екран», виправлено розміри анімованих зображень (b37c55e25).

  • Очищення контекстного меню. Пункти «Show in File System View», «Open Terminal», «File Properties» та «Add/Delete UTF-8 BOM on Save» приховано (5d862c78e).

  • Темний серійний термінал. Окремий термінал використовує правильну темну тему зі стильними смугами прокрутки, оновленими іконками панелі інструментів та коректним перезавантаженням іконок смуг прокрутки при зміні масштабу HiDPI між екранами (5c3af6880).

  • Очищення пошуку/знаходження. Панель результатів отримала темну тему, селектор пошукового рушія приховано, підписи спрощено, а Find-in-Files тепер за замовчуванням відкривається в теці Documents/OpenMV (20a806550).

  • Ідентичність застосунку. IDE тепер відображає правильну іконку OpenMV на робочому столі, у заголовку та на панелі завдань (з підтримкою HiDPI на Windows), а ідентифікатор IDE змінено на openmvide (8ad1eed1f).

  • Заставка HiDPI відображає зображення 2x на екранах Retina/200% масштабу (626ff673e).

  • Ремонт панелі дій. Ліву панель дій (New File, Open, Save, Undo, Redo, Cut, Copy, Paste) відремонтовано та забезпечено власними іконками OpenMV (b8479b5d0).

  • Логотипи в діалозі «Про програму». Обидва логотипи партнерів — Arduino та Edge Impulse — тепер відображаються (Edge Impulse раніше був прихований) з варіантами 2x для HiDPI, а вбудована графіка заставки оновлена (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, коментар-опис та ключові слова пошуку (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).

  • Косметичне очищення UI стрілок смуг прокрутки, рядка стану, кнопок закриття вкладок документів та ширини прокрутника редактора; індикатор «Display File Line Ending» редактора тепер вимкнено за замовчуванням (e0c4d2325, 6a26f4430, e130988fb).

Виправлення помилок

  • Виправлено виявлення VID/PID на Linux шляхом зчитування /sys/class/tty/<port>/device/uevent для отримання реального VID/PID пристрою, що обходить повернення QSerialPortInfo ідентифікаторів USB-хаба, тому камери за хабами виявляються коректно (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/search та забезпечено резервний варіант дій із результатами пошуку/відкриття файлів на перший видимий редактор, коли поточного редактора немає (48c402dfc).

  • Виправлено діалог завантажувача мікропрограми: попереджувальний текст тепер очищається, а вікно правильно змінює розмір після завершення операції прошивки (c505c6ade).

  • Виправлено кілька помилок UI на 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 та ключі конфігурації blhost для захищеного завантажувача/eFuse додано до теки мікропрограми 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: вбудований aarch64 dfu-util разом із виявленням 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 (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, плюс мікропрограма WiFi WINC1500), із мікропрограмою та, де застосовно, образами завантажувача/uvc (fbfa4903a).

Зворотно несумісні зміни

Це видимі користувачеві зміни робочого процесу та поведінки; перебазування на Qt Creator 10.0.1 саме по собі не ламає проєкти та скрипти користувачів.

  • Визначення плати i.MX RT1060 змінено. Записи EVKBMIMXRT1060 та OPENMV5 замінено єдиною платою OPENMV_RT1060 (OpenMV Cam RT1062 плюс варіант SBL), а старі теки мікропрограм видалено (d2b11c6c8).

  • Типовий тайм-аут команда-відповідь становить 10000 мс (у 4.0.0 було 5000 мс); текст довідки -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).