v4.8.9

v4.8.9 — это выпуск, посвящённый эффективности в режиме простоя и надёжности отключения, построенный на Qt Creator 14.0.2. Он переработывает то, как IDE отслеживает оборудование, чтобы оно прекращало опрос, когда ничего не происходит, оптимизирует путь подключения/отключения и очищает встроенный набор моделей. В этом диапазоне нет смены базовой версии Qt Creator, но несколько значений поведения по умолчанию и имён встроенных моделей изменились, поэтому ознакомьтесь с критическими изменениями ниже.

Основные изменения

  • Событийно-управляемый мониторинг оборудования заменяет непрерывный опрос устройств: IDE теперь останавливает таймеры сканирования в режиме простоя и повторно сканирует последовательные порты и накопители только в ответ на реальные события подключения/отключения USB и монтирования/размонтирования дисков, что существенно снижает нагрузку на ЦП и потребление ресурсов в режиме простоя.

  • Таймеры простоя привязаны к активности: таймер событий буфера кадра (ранее срабатывавший каждую 1 мс) теперь работает только при наличии подключения, а таймер мигания курсора терминала (500 мс) теперь работает только когда терминал в фокусе.

  • Фоновая синхронизация импорта отключена по умолчанию: автоматическая синхронизация папок импорта Examples и Documents/OpenMV теперь отключена, а её переключатель в меню скрыт, поэтому IDE больше не сканирует эти папки непрерывно.

  • Более быстрое и надёжное отключение: последовательный порт закрывается и камера освобождается немедленно, тайм-ауты протокола уменьшены, а зависшая камера теперь восстанавливается вместо зависания.

  • Более понятная кнопка режима буфера кадра, которая показывает JPG Mode или RAW Mode, чтобы текущее состояние сжатия было очевидно с первого взгляда.

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

  • Нативный мониторинг событий оборудования через новый HardwareMonitor, который генерирует hardwareEventDetected с использованием IOKit и DiskArbitration на macOS, окна только для сообщений WM_DEVICECHANGE на Windows и netlink-сокета NETLINK_KOBJECT_UEVENT на Linux. Таймеры сканирования последовательных портов и накопителей теперь привязаны к 10-секундному окну сканирования, которое перезапускается при каждом событии (a6612fec9, 462b55f7b, 17c2e93c7).

Другие изменения и улучшения

  • Таймер обработки событий буфера кадра (ранее срабатывавший каждую 1 мс) теперь запускается при подключении и останавливается при отключении, а таймер мигания курсора терминала (500 мс) теперь запускается и останавливается при получении и потере фокуса терминалом вместо постоянной работы (a02afea53).

  • Автоматическая синхронизация папок импорта Examples и Documents/OpenMV отключена по умолчанию, а переключатель скрыт; таймеры сканирования папок больше не запускаются при инициализации и работают только когда (теперь скрытое) действие включено (478f83e97).

  • Кнопка переключения формата буфера кадра теперь показывает JPG Mode, когда сжатие JPEG включено, и RAW Mode, когда оно выключено (c48831224).

  • При подключении IDE теперь всегда применяет предпочтительное для платы значение JPEG для буфера кадра вместо восстановления ранее сохранённого для каждой платы выбора JPG/RAW (c48831224).

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

  • Отключение теперь закрывает последовательный порт и освобождает камеру (и порт) непосредственно в close(), что делает отключение более быстрым и надёжным (1e8941080, 9d31bcf80).

  • Таймер простоя последовательного порта теперь останавливается, а флаг протокола v2 сбрасывается при закрытии порта, что исправляет устаревшее поведение таймера простоя после отключения (4bd2fd9ea).

  • Тайм-ауты команд протокола были настроены (тайм-аут открытия снижен с 5 с до 2 с, для повторной синхронизации и CHANNEL_SIZE используется короткий тайм-аут в 1 с), и каждая последовательная команда теперь освобождает объект камеры при сбое, поэтому зависшая камера восстанавливается и отключается быстрее вместо зависания (04aa6aea3).

  • Исправлена проблема блокировки/зависания при остановке скрипта: событие остановки скрипта теперь также очищает состояние событий кадра и сбрасывает таймеры готовности кадра (3695b0704).

  • Протокол теперь допускает короткие чтения с камеры, возвращая частичные данные или текст вместо их отбрасывания или выдачи ошибки (0c8ccd58e).

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

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

  • Платы, сочетающие модуль AE3 или N6 с датчиком PAG7936 или PS5520, теперь получают более высокое значение QVGA по умолчанию (ранее только AE3 + PAG7936), поэтому затронутые примеры автоматически повышаются с QQVGA до QVGA (fcc0c3227).

  • Встроенный набор моделей оценки позы ST MoveNet был очищен: избыточные варианты с потензорной квантизацией (_pt) и дублирующиеся варианты singlepose/st_movenet были удалены, а сохранившиеся модели с поканальными тепловыми картами переименованы в movenet_singlepose_192, movenet_singlepose_224 и movenet_singlepose_256 (18f66c4c1).

  • Из набора моделей удалена встроенная модель семантической сегментации DeepLabV3 и её ресурсы примеров (a929e0dc1).

Критические изменения

Видимые для пользователя изменения поведения и встроенных ресурсов между v4.8.8 и v4.8.9.

  • При подключении буфер кадра теперь всегда использует предпочтительное для платы значение JPEG по умолчанию и игнорирует любой ранее сохранённый для каждой платы выбор JPG/RAW (c48831224).

  • Фоновая синхронизация папок импорта Examples и Documents/OpenMV отключена по умолчанию, а её переключатель скрыт (478f83e97).

  • Несколько встроенных моделей были удалены или переименованы: модель семантической сегментации DeepLabV3 убрана, а модели ST MoveNet были очищены и переименованы в movenet_singlepose_192/224/256. Скрипты, ссылающиеся на старые имена файлов моделей, необходимо обновить (a929e0dc1, 18f66c4c1).