v4.4.0¶
v4.4.0 — це великий реліз з модернізацією, який переводить OpenMV IDE з давньої бази Qt Creator 10.0.1 на Qt Creator 14.0.2, повторно застосовуючи повний плагін OpenMV та всі форк-налаштування поверх нової бази. Крім того, цей реліз включає вбудований мовний сервер Python для автодоповнення коду в офлайн-режимі, вмикає GitHub Copilot на всіх платформах, представляє новий власний завантажувач OpenMV DFU та переводить камери OpenMV на новий USB-ідентифікатор виробника 37C5. Зміна бази є великою внутрішньою модернізацією і не порушує роботу користувацьких проектів; дивіться Критичні зміни щодо невеликої кількості видимих для користувача змін у робочому процесі.
Основні можливості¶
Перехід на Qt Creator 14.0.2. IDE переходить з Qt Creator 10.0.1 на 14.0.2, з повним плагіном OpenMV та всіма
// OPENMV-DIFF //налаштуваннями, перенесеними на нову базу (d6c895be8, 1fa75b397).Вбудований мовний сервер Python. IDE тепер включає та автоматично використовує вбудований
pylsp(з astroid 3.3.5), забезпечуючи автодоповнення коду Python/MicroPython в офлайн-режимі без окремого встановлення через pip на Windows, macOS та Linux x86_64 (257addee0, 5a2b3e72f, 94470798d).GitHub Copilot на всіх платформах. Copilot інтегровано та увімкнено за замовчуванням, з вбудованим середовищем виконання Node.js 20.18.0 для Windows, macOS та Linux, тож він більше не обмежений окремими машинами; також додано діалог запуску для його активації (bb07d582b, 1cb967c5a, b37e48040).
Новий завантажувач OpenMV DFU. Повністю реалізований власний завантажувач
openmv_dfuкерує оновленнями мікропрограми зsettings.json, включаючи діалог «виявлено плату в режимі DFU» з варіантами встановлення останнього релізу, завантаження конкретної мікропрограми та очищення файлової системи, а також резервний шлях завантажувача для відновлення пошкоджених камер (08b9d0676, 6a6a9351d, 6d78d6571).Підтримка нових камер. Додано підтримку плат OpenMV Cam N6, RT1062 та AE3; камери переведено на новий USB-ідентифікатор виробника
37C5з оновленими драйверами DFU та правилами udev (000ed8a87, f453bc945, 4a16e04c2, 6d78d6571).Надійніша послідовна передача даних. Суттєві виправлення послідовного зв’язку усувають спотворення тексту в терміналі та випадкові відключення з камерами на базі TinyUSB (caeba6a16, 6cf122a3c).
Нові можливості¶
Завантажувач OpenMV DFU. Нова система завантажувача
openmv_dfuз виділеними драйверами DFU та механізмом резервного завантажувача відновлює пошкоджені камери для різних типів мікропрограм (6a6a9351d, 6d78d6571). Процес керує оновленнями мікропрограми зsettings.jsonта показує діалог «виявлено плату в режимі DFU» з варіантами встановлення останнього релізу, завантаження конкретної мікропрограми та очищення файлової системи (08b9d0676, ef19133b6, 9c59d113c).Назва плати у виборі порту. Діалог вибору послідовного порту тепер перевіряє кожен порт і показує виявлену назву плати поруч із портом (наприклад,
COM3: OpenMV Cam H7) замість голої назви порту (9837d6cb5).Редактор із вкладками. Плагін редактора із вкладками відновлено: додано рядок вкладок документів над областю редактора для перемикання між відкритими файлами (c8519c09f); тепер також зберігається та відновлюється порядок вкладок між сеансами (55ccfb207).
Підсвічування синтаксису Python. Додано спеціальне визначення підсвічування синтаксису Python для редактора з правилами для форматування рядків, чисел з плаваючою комою та ключових слів (9be46c0c3).
Інші зміни та покращення¶
Рефакторинг завантаження мікропрограми. Код завантаження мікропрограми розділено на окремі обробники завантажувача для кожного типу (OpenMV DFU, Arduino DFU, BOSSAC, i.MX, picotool), з додаванням обробки PID для touch-to-reset для плат Arduino DFU та явних варіантів «Legacy» для пристроїв з альтернативними VID/PID (9f465f9f8).
Захист завантажувача ROM STM32. IDE тепер попереджає або блокує завантаження
firmware.dfu/openmv.dfuна завантажувач відновлення ROM STM32, рекомендуючи лишеbootloader.dfuдля уникнення «цеглинізації» плат STM32H7, уражених помилкою завантажувача ROM мікросхеми (c5ce0ae1a, e7cde1ec1).Автоматичне, тихе налаштування Python LSP. Мовний сервер Python тепер встановлюється та оновлюється автоматично без запитів інформаційної панелі або спаму повідомлень у консолі (d89f5985f); систему автодоповнення/підказок документації Python переписано у спеціальний рушій документації OpenMV, який аналізує вбудовану HTML-документацію бібліотек для підсвічування ключових слів і підказок (47e02873b, 4f9853f21, 82cefc931).
Виявлення інтерпретатора Python на Linux. Виявлення інтерпретатора на Linux тепер автоматичне: враховуються лише інтерпретатори Python 3 з
PATH, і найновіший вибирається як єдиний стандартний (214fdc758).Очищення налаштувань Python. Група керування інтерпретаторами та сторінка «Інтерпретатори» приховані; «Конфігурація мовного сервера» перенесена до категорії
Python; кнопки REPL та вибору інтерпретатора на панелі інструментів приховані в редакторі Python (d89f5985f). На Windows IDE тепер автоматично реєструє вбудованийpython.exeяк стандартний інтерпретатор, а вбудований мовний сервер вважається вже встановленим (1d9ca003e, d89f5985f).Чистіший каталог профілю. IDE більше не записує невикористовувані файли налаштувань Qt Creator (пристрої, набори інструментів, ланцюжки, версії Qt) і відкриває файли безпосередньо в редакторі (3771b0107), більше не сканує систему на наявність qmake/Qt (42807f25f) та уникає завантаження невикористовуваних пристроїв/ланцюжків/наборів і зайвого шуму під час запуску (902a357de, b2666a35b).
Безпечніші оновлення. Оновлення IDE більше не перезаписує ресурси користувача: видаляються та копіюються лише керовані папки ресурсів (examples, firmware, html, models), причому
micropython-headersтакож видаляється (встановлюється окремо, а не копіюється через цей шлях); додано чіткіше повідомлення про помилку, якщоfirmware/settings.jsonвідсутній або недійсний (b4b8c208d, 3255ba4fb).Швидше підключення DFU. Час очікування з’єднання DFU скорочено, завдяки чому прошивка та підключення відбуваються швидше (11d8c9fe3, 4700bf678).
Відновлено меню OpenMV та налаштування інтерфейсу. Спрощений макет меню OpenMV відновлено: приховано меню «Збірка» та «Налагодження» і видалено дії керування проектами (7503f2bec); рушій автодоповнення коду знову розуміє класи/методи та публічні/приватні ключові слова для MicroPython (55fc348ea); відображення кольорів ANSI у терміналі відновлено з урахуванням теми (яскраві/тьмяні значення) та підтримкою escape-послідовності переміщення курсору назад (c6787a27a); панель інструментів переглядача зображень налаштовано з підказками роздільної здатності/масштабу та переміщеною дією «Вмістити на екрані» (734fec693).
Відновлено вбудовані ресурси. Інструменти прошивки, драйвери DFU, мікропрограма та повне дерево прикладів/скриптів відновлено в ресурси share після очищення під час переходу на нову базу (33c8354bc); логіка запуску програми OpenMV також відновлена: суворо вимагається плагін
TextEditor(перевірки плагінів OpenMV та TabbedEditor присутні, але відключені), встановлюється власний обробник повідомлень Qt, видаляються параметри командного рядка-client/-pid/-blockта примусово встановлюється однопримірникова поведінка (06c788f3d).Збій при відсутності плагіна. Програма тепер аварійно завершується з чітким повідомленням про помилку, якщо необхідні плагіни відсутні або вимкнені; плагін OpenMV отримав залежність від Copilot; деякі параметри текстового редактора (
Prefer single line commentsі вибір позиції коментарів в налаштуваннях «Поведінка», а такожHighlight selectionв налаштуваннях «Відображення») приховано (1bc02b1f3).Коротші тайм-аути послідовного зв’язку. Тайм-аути протоколу послідовного зв’язку скорочено (читання з 10000 до 5000 мс, запис з 6000 до 3000 мс) для швидшого отримання зворотного зв’язку про помилки; задокументоване значення за замовчуванням
-override_read_timeoutоновлено відповідно (641385af4).Відновлення зависших портів. Послідовні порти, що зависли в середині команди, тепер відновлюються за допомогою запиту
GET_STATE(налаштовується через параметр get-state) замість запиту виконання скрипту (a8598f550).Порядок у діалозі налаштувань. Діалог налаштувань приховує прапорець алфавітного сортування категорій, щоб список сторінок залишався в порядку, визначеному OpenMV (1cb967c5a).
Спрощені налаштування Copilot. Сторінка налаштувань Copilot скорочена до лише елементів входу/аутентифікації та керування проксі; параметри «увімкнути Copilot», «шлях до Node.js», «шлях до dist» та «автодоповнення» приховано (1cb967c5a).
Виправлення помилок¶
Виправлено серйозні проблеми послідовного зв’язку шляхом десятикратного збільшення тайм-ауту зупинки читання послідовного порту та відключення шляху розблокування на основі
GET_STATE, який спотворював текст у послідовному терміналі (caeba6a16).Виправлено випадкові відключення з камерами на базі TinyUSB шляхом видачі команди розблокування дампу кадру та перероблення обробки зупинки читання замість відключення (6cf122a3c).
Зроблено обробку
get_stateкамери стійкою до коротких/часткових відповідей та забезпечено очищення буферизованого тексту послідовного терміналу під час відновлення після помилок, щоб виведення журналу не губилося (c8b4248a6, 247a779dd).Виправлено номери розділів флеш-пам’яті/альтернативних налаштувань завантажувача DFU для завантаження мікропрограми OpenMV Cam (a8700d12d).
Відновлено всі завантажувачі шляхом підтримки нового прапорця плати
hidden, зміни фільтрування за серійним номером на зворотні фільтри та надання запису UF2 Arduino Nano RP2040 Connect робочої конфігурації picotool (63cee629b).Виправлено запам’ятовування неправильного значення в діалозі вибору типу плати завантажувача шляхом використання окремих ключів історії для читабельного та IMX вибору типу плати (a3325af32).
Виправлено обчислення мітки часу/частоти кадрів при перекодуванні відео (Save Video) шляхом обчислення середнього інтервалу між кадрами в мікросекундах, підтримки нового формату часу
ImageWriterv21 та захисту від нульових піксельних карт під час конвертації (f5c75c749, f8f762b3e).Виправлено збій у вікні гістограми/кадрового буфера при отриманні порожньої (нульової) піксельної карти шляхом захисту
pixmapUpdate()від нульових даних (622cf5ea8).Відновлено підказки з анотаціями при наведенні курсора в текстовому редакторі: при наведенні на текстові мітки знову відображається відповідна підказка (1852d18e1).
Заблоковано появу інформаційних діалогів GitHub Copilot та кольорів LED під час підключення або прошивки IDE (f8f762b3e).
Додано захист від збоїв у мовному клієнті: обробка змін вмісту документа більше не призводить до аварійного завершення IDE в граничних випадках (7926ffe4c).
Виправлено блокування завершення роботи IDE перевірками мовного сервера Python шляхом переходу плагіна Python на асинхронне очікування поточних перевірок перед виходом (9ff6c7936).
Виправлено автодоповнення Python на Linux: мовний клієнт тепер базується на вбудованому
micropython-headers, а зайва дія спливаючого автодоповнення на панелі інструментів редактора прихована (d37f66a9a, 56e748f9d, 016fa73eb).Виправлено обробку тимчасових/незбережених файлів: «Зберегти як» тепер використовує початковий каталог файлового діалогу; діалог «Зберегти елементи» та редактор Diff більше не показують шляхи до внутрішніх тимчасових файлів (b7f0bb378, c8e7b6b8f, 6b128c34c).
При збереженні безіменного/тимчасового буфера діалог «Зберегти як» тепер пропонує належне ім’я файлу
.pyзамість порожнього імені (3001fdfff).Тимчасові/безіменні документи тепер пропонуються для збереження при модифікації, виключаються з автозбереження та правильно перенаправляються через «Зберегти як» (f87b71cf0).
Виправлено порядок у меню «Недавні файли»: повторне відкриття вже наявного файлу більше не змінює його позицію; файловий діалог тепер відкривається в каталозі проектів (d49c0c993).
Виправлено відображення тексту в діалогах повідомлень: більше не примусово встановлюється формат RTF для перевірюваних діалогів повідомлень, тому звичайний текст відображається коректно (0c565502f).
Виправлено кольори підказок: підказки тепер правильно відображаються у світлій темі (35cbf077b).
Загальні виправлення стабільності та очищення Qt Creator в основних налаштуваннях, мовному клієнті, ланцюжку MSVC, провіднику проектів та плагінах Python (836b163dc, 134f43cb8).
Виправлено назву папки з вбудованою мікропрограмою для Arduino Nano 33 BLE Sense (b1d8ac227); виправлено правило udev Linux для ідентифікатора продукту завантажувача DFU AE3:
96E3замінено на малі96e3, оскількиidProductу udev чутливий до регістру (2cd43c96b). Правило udev Linux для завантажувача DFU AE3 також оновлено до ідентифікатора продукту37c5:afe3для символічного посиланняopenmvdfu(b99555637).
Підтримка платформ та інструментів¶
База Qt Creator: 14.0.2 (перехід з 10.0.1).
OpenMV Cam N6 тепер підтримується (VID:PID 37C5:1206, завантажувач DFU 37C5:9206), включаючи налаштування мікропрограми, драйвер DFU для Windows та правило udev для Linux (000ed8a87, 1b950c8c6).
OpenMV Cam RT1062 тепер підтримується з новим власним USB VID/PID (37C5:1060), включаючи драйвери DFU, правила udev та збережені записи Legacy 1209:ABD1 для старіших пристроїв (f453bc945, d55d6441f).
OpenMV Cam AE3 тепер підтримується, включаючи драйвери DFU для Windows, дерево зображень мікропрограми/конфігурації та USB VID/PID (оновлено до 37C5:16E3 для режиму виконання / 37C5:96E3 для завантажувача) (4a16e04c2, cc52e76f5, 3f75e7de4, 8eb80b129).
Нова система USB VID/PID: камери OpenMV переходять на ідентифікатор виробника
37C5з новими ідентифікаторами завантажувача/DFU (наприклад, 37C5:1202/9202 M4, 1203/9203 M7, 1204/9204 H7, 124A/924A H7 Plus, 1205/9205), старі плати 1209:ABD1 перейменовано в Legacy з підтримкою як старої, так і нової мікропрограми (6d78d6571, 6a6a9351d, 500b1a0bf).PAG7936 — датчик зображення додано до списку розпізнаних датчиків (f9e3f3461).
Вбудований Python 3.13 включено для macOS, Linux x86_64, Linux arm64 та Linux arm (9133b1516), з нативними бібліотеками
libpython3.13таujson(d3aa663d8, a2cb24e74).Вбудований мовний сервер:
pylspз astroid 3.3.5 для Windows, macOS та Linux x86_64 (257addee0). Збірка для Windows включає вбудований CPython з python-lsp-server 1.12.0, jedi 0.17.2, docstring_to_markdown 0.15, pip 24.2 та distlib 0.3.9 (9b6434602, 069807cd3, 5f2e45196, 3b6c6c312).Вбудований Node.js 20.18.0 «Iron» LTS для Windows, macOS, Linux arm64, Linux x64 та Linux armv7 для увімкнення GitHub Copilot на всіх платформах (bb07d582b, 6db78bf45, 1cb967c5a).
Alif Security Toolkit — підписані бінарні файли завантаження/системних пакетів та посібник користувача включено для Windows, macOS та Linux x86_64 для підготовки камер OpenMV на основі Alif (наприклад, AE3) (f63851be3).
Інтеграція з робочим столом Linux відновлена: встановлюється запис робочого столу програми та метадані AppStream, а також реєструється MIME-тип Python (
.py) (3fa25f571).
Критичні зміни¶
Жодних змін у API скриптів не відбулося. Можуть спостерігатися такі зміни у видимому для користувача робочому процесі та поведінці:
Новий USB-ідентифікатор виробника. Камери OpenMV переходять на ідентифікатор виробника
37C5з новими ідентифікаторами продукту та завантажувача DFU; плати зі старим VID1209:ABD1тепер позначаються як «Legacy». IDE підтримує одночасно стару і нову мікропрограму, але користувачам Linux потрібно перевстановити оновлені правила udev для розпізнавання нових ідентифікаторів.Приховано записи Legacy плат. Варіанти Legacy для плат OpenMV Cam M4/M7/H7/H7 Plus/Pure Thermal тепер приховано зі списку вибору мікропрограми/плати за допомогою нового прапорця
legacy(окремо від існуючого прапорцяhidden), тож користувачі, яким конкретно потрібен запис Legacy, більше не бачитимуть його у випадаючому списку (6d78d6571).Коротші тайм-аути послідовного зв’язку. Стандартний тайм-аут читання відповіді скорочено з 10000 мс до 5000 мс, а тайм-аут запису — з 6000 мс до 3000 мс (значення за замовчуванням
-override_read_timeoutтепер задокументовано як 5000). Повільні плати/з’єднання, що розраховували на довші стандартні тайм-аути, можуть завершуватися раніше.
Перехід бази на Qt Creator 14.0.2 є великою внутрішньою модернізацією, але не є критичним для користувацьких проектів.