v1.8.0

v1.8.0 — это крупный функциональный выпуск, сосредоточенный на сетевых возможностях и видео: он добавляет программирование OpenMV Cam по WiFi, видеорегистратор буфера кадра и меню Tools > Video Tools на основе встроенного ffmpeg/ffplay. Также добавлена поддержка новой платы OpenMV Cam H7 (OMV4) и расширена работа IDE на Raspberry Pi (Linux ARM). Этот выпуск остаётся на базе Qt Creator 4.0.2 и не содержит несовместимых изменений для существующих проектов.

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

  • Программирование по WiFi. IDE теперь прослушивает широковещательные UDP-объявления от OpenMV Cam с установленным WiFi-щитом, перечисляет обнаруженные камеры (имя плюс IP:port) в диалоге подключения и общается с ними по TCP в качестве альтернативы последовательному порту (69dc7dfbf).

  • Видеорегистратор буфера кадра. Новые кнопки на панели инструментов Record/Stop записывают живой поток изображений в файл OpenMV ImageWriter, одновременно показывая метку статуса с прошедшим временем/размером/FPS (39142ef70, 5aceab31a).

  • Меню Video Tools. Tools > Video Tools добавляет Convert Video File и Play Video File, использующие встроенный ffmpeg/ffplay для перекодирования и воспроизведения видео и прозрачно конвертирующие записи ImageWriter .bin сначала в MJPEG AVI; Play Video File доступен только в Windows и macOS, поскольку ffplay не входит в комплект для Linux/Raspberry Pi (d35f8d1ca, 8a99c994f).

  • OpenMV Cam H7 (OMV4). Новая плата STM32H743 теперь распознаётся и поставляется с собственным встроенным загрузчиком и прошивкой (e14810382).

  • Поддержка Raspberry Pi. Теперь включены сборки IDE для Linux ARM, что приносит OpenMV IDE на Raspberry Pi (f551b5f97).

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

  • Файл настроек OpenMV Cam. Tools добавляет диалог для записи настроек загрузки/WiFi камеры в main.ini, включая включение WiFi, выбор режима клиента или точки доступа, SSID/пароль/тип безопасности, имя платы и опцию Duplicate REPL on the UART on startup, хранящуюся в настройках загрузки main.ini (69dc7dfbf, 39142ef70).

  • Параметры командной строки для сетевого терминала. Добавлены -open_udp_client_terminal, -open_udp_server_terminal, -open_tcp_client_terminal и -open_tcp_server_terminal наряду с существующей опцией последовательного терминала (6362066a8, d75209269).

  • Дополнительные параметры командной строки. Открыты -update_resources, -open_serial_terminal (port_name:baud_rate), -override_read_timeout и -override_read_stall_timeout (061aacf15).

  • Режим сервера терминала. Терминальные подключения UDP/TCP теперь могут работать в режиме сервера, привязываясь к локальному порту (порт 0 выбирает любой) вместо подключения только к удалённому хосту (956e8a2f5).

  • Новые примеры скриптов. Добавлены примеры коррекции линзы, коррекции 3D-поворота и низкого энергопотребления со сном датчика, а пример обнаружения отрезков линий переписан под новый API find_line_segments(merge_distance, max_theta_diff) (061aacf15).

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

  • Подсказки аргументов функций и подсветка синтаксиса теперь корректно охватывают несколько строк, поэтому многострочные вызовы функций сохраняют подсказки аргументов и подсветку (6535e9fdd, 4638bdd18).

  • Строка состояния терминала с разрешением/ROI теперь также сообщает количество пикселей в ROI (956e8a2f5).

  • Диалог регистрации OpenMV Cam теперь показывает плату/ID и адрес электронной почты поддержки, а диалог прогресса Connecting... советует нажать Cancel через 5 секунд (4638bdd18, e14810382).

  • Панель Search Results теперь переоформляет поле с номерами строк и текст результатов явными цветами тёмной темы, чтобы они были читаемы на тёмном интерфейсе (b2599f9ea).

  • Циклы записи терминалов Serial/UDP/TCP теперь кратко уступают управление между записями, чтобы интерфейс оставался отзывчивым и повышалась пропускная способность (c4700e2b0).

  • Поля значений статистики гистограммы теперь резервируют фиксированную минимальную ширину, поэтому панель больше не перекомпонуется при изменении чисел, а кнопки выдвижной панели переключения режимов растягиваются вместо использования фиксированной ширины 160px (5aceab31a).

  • Подавлено ложное предупреждение JIT is disabled for QML при запуске с помощью пользовательского обработчика сообщений Qt (954220e39).

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

  • Всплывающие подсказки документации и подсветка теперь распознают типы исключений Python (рассматриваются как данные), и несколько записей документации модулей/индексов были исправлены, чтобы они отображались корректно (4638bdd18, 3613a7867, 897b9b0e2, e3e41c56e).

  • Усилены проверки в средстве проверки обновлений пакетов и при разборе широковещательных объявлений/регистрации камер за счёт привязанных, обрезанных регулярных выражений и более строгого сопоставления HTML-ответов во избежание ложных совпадений (461af1148, 4638bdd18).

  • Исправлен идентификатор платы OpenMV Cam M4 (OpenMV2), используемый для определения API старой прошивки, с OMV2 на OPENMV2 (449024fe8).

  • Усилена защита ввода-вывода камеры и видеоперекодировщика от повреждённых/чрезмерно больших данных кадра за счёт более строгих проверок границ ширины/высоты/bpp/длительности, а также устранено деление на ноль при вычислении FPS видео (08248f208, d0cbc27e5).

  • Инструменты конвертации/воспроизведения видео теперь работают на macOS, 32-битных системах и Linux-ARM за счёт запуска ffmpeg/ffplay через сгенерированный shell-скрипт или обёртку cmd.exe и включения в комплект бинарников ffmpeg для Linux (b9644e859, 9f0520bbe, 35eb69bce, c4700e2b0).

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

  • База Qt Creator: 4.0.2.

  • OpenMV Cam H7 (OMV4, STM32H743): новая плата распознаётся с собственным встроенным загрузчиком и прошивкой (e14810382).

  • Встроенная прошивка OpenMV: обновлена до 2.6.0 для OPENMV2/OPENMV3/OPENMV4 (e14810382).

  • Встроенный ffmpeg/ffplay: добавлены статические сборки ffmpeg 3.3.3 для Windows, macOS, Linux x86, Linux x86_64 и Linux ARM (Raspberry Pi); ffplay входит в комплект только для Windows и macOS (2193d7923, af92ad59e).

  • Raspberry Pi (Linux ARM): сборки включены за счёт отключения автономной справки HelpManager и перехода упаковки bindist на tar.gz (f551b5f97).

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

Отсутствуют. Этот выпуск остаётся на базе Qt Creator 4.0.2, и существующие проекты и рабочие процессы не затронуты.