v1.9.0

v1.9.0 — это выпуск интернационализации, добавляющий полностью переведённый пользовательский интерфейс на более чем дюжину языков, наряду с новым протоколом запроса загрузчика, который считывает реальную раскладку секторов стирания флеш-памяти каждой платы для более безопасной прошивки. IDE по-прежнему построена на Qt Creator 4.0.2, а встроенная прошивка OpenMV обновлена до 2.9.0. Несовместимых изменений для существующих проектов нет.

Основные моменты

  • Многоязычный интерфейс теперь доступен, добавляя переводы на китайский (упрощённый и традиционный), японский, французский, итальянский, испанский, русский, немецкий, арабский, чешский, венгерский, польский, словенский и украинский.

  • Запрос секторов флеш-памяти у загрузчика позволяет IDE считывать фактическую раскладку секторов стирания подключённой камеры через загрузчик вместо опоры исключительно на жёстко заданные значения по умолчанию.

  • Диапазоны стирания для каждой платы теперь считываются из boards.txt, поэтому каждая модель камеры стирает правильные секторы флеш-памяти при перепрошивке.

  • Запрос об устаревшей прошивке предлагает автоматически обновить камеру, когда при подключении обнаруживается устаревшая версия прошивки.

  • Новые встроенные примеры добавляют примитивы рисования, фильтры изображений, скрипт покадровой съёмки (time-lapse), демонстрацию классификации объектов CMSIS CNN и примеры с моторным щитом.

  • Встроенная прошивка 2.9.0 обновляет прошивку и DFU-образы M7 (OPENMV3) и H7 (OPENMV4) (а также загрузчик H7).

Новые возможности

  • Переводы многоязычного интерфейса добавляют китайский (упрощённый и традиционный), японский, французский, итальянский, испанский, русский, немецкий, арабский, чешский, венгерский, польский, словенский и украинский, с правилом сборки, делающим переводы перегенерируемыми (8350ff9ac, 4ef99202b, 0a7c85bfc, c678482dd, 052113877, e48ff5d34, 9dddbc498).

  • Запрос секторов флеш-памяти у загрузчика добавляет новый протокол загрузчика, в котором IDE запрашивает подключённую камеру для считывания её фактической раскладки секторов стирания флеш-памяти (start, all-start и last секторы) вместо опоры исключительно на жёстко заданные значения по умолчанию (38a84883e).

  • Диапазоны стирания для каждой платы теперь считываются из boards.txt (замыкающие номера секторов в каждой строке), поэтому каждая модель камеры стирает правильные секторы, а не использует единое глобальное значение по умолчанию. Первоначальная реализация не соответствовала boards.txt (где уже использовались разделённые пробелами замыкающие числа), пока 8217b94c3 не исправил условие сопоставления плат и не изменил регулярное выражение разделителя замыкающих секторов с + на пробел; затем 4843e46a8 удалил оставшийся отладочный вывод qDebug() (68a45da02, 8217b94c3, 4843e46a8).

  • Запрос об устаревшей прошивке: при подключении, если прошивка камеры определяется как устаревшая, IDE теперь предлагает обновление и, при подтверждении, автоматически запускает обновление прошивки (a79a40b45, 8217b94c3).

  • Новые встроенные примеры добавляют примитивы рисования (стрелка, круг, крест, линия, прямоугольник, текст, изображение, заливка), новые фильтры изображений (размытие, мультяшный, граница, билатеральный для цвета и оттенков серого, удаление света, ядро, нерезкое маскирование, выравнивание гистограммы и адаптивное выравнивание гистограммы), пример покадровой съёмки (time-lapse), пример классификации объектов CMSIS CNN с использованием img.classify_object() с метками CIFAR и примеры с моторным щитом (909016427).

Прочие изменения и улучшения

  • Каталог проекта по умолчанию теперь по умолчанию использует папку ~/OpenMV, а диалоги Open/Save запоминают и повторно открывают последний посещённый каталог между сеансами (fbdac7576).

  • Окно About теперь показывает раздел Credits с указанием автора (английского) перевода; локализованные сборки подставляют строку переводчика (e8e823a11, 2efbe1e29).

  • Обновлённая встроенная автономная документация, в частности расширен справочник API omv.image и другие страницы библиотек MicroPython (aef76b825, b0f4701af).

  • Отключена дополнительная запись сброса на диск (временный файл openmv.null), выполнявшаяся при отключении, чтобы избежать ненужной дисковой активности на накопителе камеры (6be486c62).

Исправления ошибок

  • Исправлен запрос загрузчика, который менял местами порядок значений секторов стирания флеш-памяти (all-start, start, last), исправив, какие секторы флеш-памяти стираются при прошивке прошивки и загрузчика (fbdac7576).

  • Переработаны конвертер записи видео и проигрыватель для запуска ffmpeg и ffplay через сгенерированный временный скрипт в Windows, macOS и Linux, чтобы пути к файлам с пробелами надёжно работали, и исправлен встроенный путь к ffmpeg для Linux, используемый конвертером (8f17f888d, 83cd73144).

  • Подключение к камере теперь автоматически повторяет попытки до 10 раз, когда истекает время рукопожатия версии прошивки, прежде чем показать ошибку тайм-аута, что снижает ложные сбои подключения (ae18dca93).

  • Исправлен тайминг последовательных команд на macOS за счёт настройки начальных и конечных межкомандных задержек: большинство было увеличено (строка архитектуры, выполнение скрипта, сохранение дескриптора/шаблона, сброс системы и включение буфера кадра до 25-50 мс), тогда как задержка версии прошивки была перебалансирована (короче начало, дольше конец), что предотвращает тайм-ауты связи (763357a08).

  • Ключ регистрации платы, введённый в диалоге пользовательской платы, теперь удаляет все пробельные символы, поэтому случайные пробелы в набранном ключе игнорируются (6be486c62, 8217b94c3).

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

  • База Qt Creator: 4.0.2.

  • Встроенная прошивка OpenMV: глобальная версия firmware.txt теперь 2.9.0 (с 2.7.0 через 2.8.0). Обновление 2.9.0 обновило только прошивку и DFU-образы M7 (OPENMV3) и H7 (OPENMV4), а также загрузчик H7 (для M7 обновлён только bootloader.elf); образы M4 (OPENMV2) в последний раз обновлялись в 2.8.0 (bfc0b188e, c0a86dd35).

  • Версия OpenMV IDE внутренне поднята до 1.9.0 (с 1.8.2) (8f17f888d).

Несовместимые изменения

Отсутствуют. Этот выпуск не вносит нарушений рабочих процессов или поведения; существующие проекты продолжают работать без изменений.