v4.8.11

v4.8.11 — це випуск стабільності та коректності, зосереджений на надійності macOS, серіалізації зовнішніх інструментів та надійності оновлення мікропрограми. Він побудований на Qt Creator 14.0.2 (без змін порівняно з попереднім випуском) і не містить зворотньо несумісних змін для проєктів користувачів.

Основні зміни

  • Захист від збоїв на macOS — усунено переривчасте мовчазне переривання NSRangeException, спричинене оновленням виборок у деревах/списках/комбобоксах до того, як панель або спливаюче вікно було повністю побудоване або під час асинхронного оновлення — в контурному комбобоксі, ієрархіях викликів/типів, спливаючих вікнах завершення та локатора, дереві проєкту тощо.

  • Серіалізовані зовнішні інструменти — діалог прогресу завантажувача тепер є модальним для всього застосунку і призупиняє опитування пристроїв, тому запуск dfu-util, bossac, picotool та інших інструментів більше не може бути перерваний потоком з камери або автоматичним перепідключенням.

  • Надійне оновлення мікропрограми — автоматичне перепідключення більше не може захопити оновлення мікропрограми в середині прошивки, що раніше призводило до скидання реального продовження і появи хибного діалогу DFU.

  • Безпека Hello World — підключення плати більше не буде випадково перезаписувати програму Hello World, введену вами, завдяки порівнянню з незміненим знімком замість ненадійного прапорця зміни.

  • Зрозуміліші помилки DFU — помилка «no matching interface» тепер показує виявлену плату та назви файлів мікропрограми, які вона приймає, замість відображення сирого VID/PID.

Нові функції

  • ST Edge AI (STM32N6) тепер безпосередньо створює переміщуваний бінарний файл мережі через режим --relocatable компілятора, усуваючи окремий крок переміщення Python і додаткове поле Relocation CLI Options з діалогу (7613135c5).

Інші зміни та вдосконалення

  • Помилки інтерфейсу DFU тепер показують виявлену плату та перелічують назви файлів мікропрограми, які приймає ця плата, з рекомендацією перейменувати або вибрати правильний файл, замість відображення сирого VID/PID (ac509b369).

  • Навігація між вкладками на macOS тепер використовує доступні Cmd+Shift+[ / Cmd+Shift+] (попередня/наступна) та Cmd+Alt+[ / Cmd+Alt+] (переміщення) замість недоступних Ctrl+PageUp / Ctrl+PageDown; прив’язки для Windows і Linux не змінились (6c09e10b1).

  • Запити ліцензії/плати до upload.openmv.io (check.php, insert.php, register.php) тепер надсилають User-Agent у стилі браузера для кожної платформи, щоб сервер ліцензій міг ідентифікувати ОС клієнта (6bfd74b36).

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

  • Виправлено переривчастий збій на macOS (мовчазне переривання NSRangeException без діалогу збою), коли оновлення виборок у деревах/списках/комбобоксах під час того, як панель або спливаюче вікно були ще приховані або в середині асинхронного оновлення, призводило до індексування в непобудований кеш доступності Cocoa. Вибір, прокрутка та розгортання тепер відкладаються або захищаються в контурному комбобоксі, ієрархіях викликів/типів, спливаючому вікні завершення коду, спливаючому вікні локатора, діалозі Save Items, дереві проєкту, навігації по папках, Open Documents, списку Issues/Tasks та комбобоксі перегляду дерева (94c8f9def, ae40a3806, ed23b5c60, c6baf89cd, d7b6f5838, d8b70609c, 21740d9c2, 9217fc8a9, fe75924d5, 9cc247ffb, 3ca71e915, 559b6005f).

  • Виправлено окремий збій на macOS (NSRangeException/SIGABRT) у комбобоксі контуру коду, спричинений застарілим індексом поза діапазоном, коли мовний сервер Python асинхронно оновлював символи; setCurrentIndex тепер повторно перевіряє межі рядка/стовпця щодо поточної моделі (3e0ce89f1).

  • Посилено редактор моделей ROMFS та редактор наборів даних проти асинхронних перегонів QFileSystemModel шляхом відкладення попереднього розгортання дерева до завершення завантаження каталогу і вибору щойно створених файлів/папок/моделей лише після того, як модель має для них дійсний індекс (5eaa91aff).

  • Операції зовнішніх інструментів (dfu-util, bossac, picotool, alif, imx, ST Cube, mpy-cross, vela, ST Edge AI, відеоконвертер) більше не дозволяють потоку з камери або поставленій в чергу роботі повторно входити в операцію з пристроєм за запущеним інструментом: діалог прогресу завантажувача тепер є модальним для застосунку, а опитування пристрою повністю призупиняється під час його відображення (3069e8ec0).

  • Автоматичне перепідключення більше не захоплює оновлення мікропрограми в середині прошивки завдяки липкому прапорцю «оновлення мікропрограми в процесі», встановленому на всю примусову/завантажувальну/стираючу операцію, яку тепер також перевіряє таймер перепідключення (b7745484a).

  • Підключення плати більше не буде випадково перезаписувати програму Hello World, введену вами, завдяки порівнянню живого документа з незміненим знімком, захопленим при відкритті, замість використання ненадійного прапорця зміни перед автоматичною синхронізацією прикладу для кожного датчика (6f4539d44).

  • Прокручування вгору в послідовному терміналі під час швидкого безперервного виводу більше не повертає перегляд назад до низу: шляхи додавання тепер слідують липкому прапорцю наміру прокручування користувача замість повторного визначення «у низу» від позиції смуги прокрутки, яку кожен блок щойно повторно закріплював (9aea0f1a2).

  • Escape тепер надійно закриває діалог Code Profiler незалежно від того, який дочірній віджет має фокус (203ffd1e6).

  • На macOS глобальне меню та командні комбінації клавіш тепер працюють у всьому застосунку, а не лише коли редактор мав фокус, завдяки розміщенню прихованої панелі меню у головному вікні на кожній платформі (6d52cbe73).

  • Вбудований інтерпретатор Python тепер примусово встановлюється як стандартний при кожному запуску, тому застарілий збережений стандарт більше не вимикає мовний сервер Python (завершення та підказки викликів) (1d5069a52).

  • Посилено введення/виведення налаштувань OpenMV проти повторного входу: beginGroup / endGroup у спільному глобальному об’єкті налаштувань (який породжує модальні діалоги і запускає вкладені цикли подій) замінені повними шляхами ключів, тому повторний доступ до налаштувань під час модального діалогу більше не може помістити ключі до неправильної групи. Шляхи на диску байт-ідентичні, тому налаштування існуючих користувачів зберігаються точно (91e78a9e3, f4bb9f48c).

  • Виправлено регресію, коли кілька діалогів і допоміжних елементів, що отримують спільний об’єкт налаштувань, виконували введення/виведення за голими ключами в корені налаштувань замість OpenMV/, втрачаючи геометрію вікна, розподільник та стан розгортання зоопарку моделей, а також стан шести діалогів завантажувача (dfu-util, imx, bossac, alif, picotool та ST Cube Programmer) разом із параметрами компілятора mpy-cross, vela та ST Edge AI; група тепер запечена в кожен ключ, щоб використовувався правильний шлях (258448bdf).

Підтримка платформ і інструментів

  • Базова версія Qt Creator: 14.0.2.

  • OpenMV IDE версію оновлено до 4.8.11.

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

Відсутні. Всі зміни є виправленнями помилок та вдосконаленнями, накладеними на існуючу базу Qt Creator 14.0.2; існуючі проєкти та робочі процеси не зачіпаються.