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/, теряя геометрию окна, разделитель и раскрытое состояние model zoo, а также состояние шести диалогов загрузчика (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; существующие проекты и рабочие процессы не затронуты.