v1.3.0¶
В v1.3.0 уровень связи с камерой переписан на основе структурированного протокола команд/ответов, а также добавлено автоматическое обновление внутри IDE как для самой IDE, так и для входящих в её состав ресурсов. Версия построена на Qt Creator 4.0.2 и включает прошивку камеры OpenMV 2.0.0. На macOS и Linux для прошивки firmware через DFU теперь требуется однократная установка Python вместе с libusb и pyusb; см. раздел «Несовместимые изменения».
Основное¶
Переписанный уровень связи. Код последовательного порта/USB-отладки перестроен на основе структурированного протокола команд/ответов с длинами ответов для каждой команды и задержками ожидания в начале/конце, что повышает надёжность подключения, запуска скриптов, операций с буфером кадра и загрузчиком.
Автообновление внутри IDE. IDE теперь проверяет
openmv.ioна наличие более новой версии и предлагает кнопку Download, а также отдельно загружает и устанавливает обновлённые пакеты ресурсов (примеры, прошивку, документацию), после чего предлагает перезапуск.Обновление прошивки в один клик. Версия прошивки в строке состояния теперь является кликабельной кнопкой, которая сравнивает подключённую камеру с входящей в комплект прошивкой и предлагает обновление в один клик, когда доступна более новая версия.
Прошивка firmware через DFU на каждой платформе. Прошивку теперь можно записывать через DFU на Windows, macOS, Linux x86 и Linux x86_64, а средство выбора прошивки принимает файлы
.dfuв дополнение к.bin.Автоматический переход на DFU. Когда во время обновления прошивки не удаётся подключиться к последовательному загрузчику, IDE теперь предлагает выполнить обновление через DFU-загрузчик камеры, проводя вас через установку перемычки
BOOT/RST.
Новые возможности¶
Средство обновления внутри IDE. Проверяет
openmv.ioна наличие более новой версии IDE и предлагает кнопку Download, которая открываетopenmv.io/download, а также загружает, распаковывает и устанавливает пакеты ресурсовopenmv-ide-resources-X.Y.Z.zipнепосредственно в IDE перед предложением перезапуска (8a1f92bb1, 194acd828, b0be97e3e).Кликабельная кнопка версии прошивки. Метка версии в строке состояния стала
QToolButton, привязанной к процессуupdateCam(), который читает входящий в комплектfirmware/firmware.txt, сравнивает его с подключённой камерой и предлагает Firmware Update с возможностью стирания внутренней файловой системы при наличии более новой версии (b2ac8defe).Поддержка файлов DFU. Диалог прошивки загрузчика/firmware теперь принимает файлы
.dfuв дополнение к.binи принудительно выполняет полное стирание внутренней файловой системы при записи.dfu. Фильтр средства выбора прошивки расширен доFirmware Binary (*.bin *.dfu), а процесс принудительного стирания для.dfuпоявился в4ad2be5f9; всегда отмеченный неактивный флажок стирания, автоматически переключающийся в зависимости от расширения выбранного файла, добавлен вb2ac8defe(4ad2be5f9, b2ac8defe).Автоматический переход на DFU при сбое загрузчика. Когда обновление прошивки
.binне может запустить последовательный загрузчик, IDE теперь сообщаетUnable to connect to the bootloader!, а затем предлагает выполнить обновление через DFU-загрузчик камеры, предупреждая, что DFU стирает внутреннюю файловую систему флеш-памяти, и проводя вас через установку перемычкиBOOT/RSTи повторное подключение перед запускомDfuSeCommand.exe(Windows) (4ad2be5f9).Пример HoG. Добавлен пример визуализации Histogram of Oriented Gradients (
09-Feature-Detection/hog.py) с использованиемimg.find_hog()(b03a707f7).
Прочие изменения и улучшения¶
Старый разрозненный код скорости передачи/пакетов заменён классами
OpenMVPluginSerialPortCommand/Result, кодами операций__USBDBG_*и__BOOTLDR_*и вспомогательными функциямиcommand()/commandResult()вместоwrite()/readAll()/isOpen()(b03a707f7, 141122e21, b2ac8defe, 1d72fe4bf, b4cf2fe43, c60936d5f).Установка драйвера последовательного порта в Windows теперь выполняется тихо/в автоматическом режиме: драйверные скрипты
openmv.cmd/pybcdc.cmdпереведены на установщики на основеdpinstвместо интерактивногоInfDefaultInstall, а также добавлен и исправлен установщик Visual C++ Redistributable (vcr.cmd, тихо запускающийvcredist_x86.exeиvcredist_x64.exe) (a5a6e0590, 754d0776d, b0be97e3e, 452a29f0d, c051c6e30, ad1b674ef, 565f1eccd).
Исправления ошибок¶
Исправлены сбои прошивки firmware и связи внутри виртуальных машин, а также ослаблены различные тайм-ауты команд и опрос буфера кадра/tx-буфера, чтобы подключение и запуск были более надёжными. Диалог перепрограммирования теперь сообщает, что процесс «may take up to 5 minutes», а тайм-аут процесса DFU был увеличен с 240 с до 300 с в
324f243f9(c051c6e30, b0be97e3e, 1d72fe4bf, b4cf2fe43, 324f243f9, c60936d5f).Исправлено сравнение доступности обновления firmware/IDE, чтобы более новый минорный или патч-номер больше не вызывал ложного срабатывания при равенстве более старшего поля, и потребовано наличие корректно выбранного файла в диалоге загрузчика перед прошивкой (4ad2be5f9).
Дескрипторы файлов (список плат, файлы прошивки/версии) теперь закрываются после чтения, а дополнение блоков прошивки исправлено для выравнивания до
FLASH_WRITE_CHUNK_SIZE, что предотвращает утечку дескрипторов и неправильное дополнение последних блоков во время обновления прошивки (4ad2be5f9).Исправлены меню OpenMV
Helpи панели вывода: пункт About OpenMV Cam больше не конфликтует с системной ролью About (AboutRole→ApplicationSpecificRole), а панели вывода больше не перехватывают сочетанияAlt/Cmd+ цифра (a0694eac7).При открытии внешних веб-ссылок OpenMV (форумы, загрузка, поддержка) теперь отображается диалог ошибки «Failed to open», если URL не удаётся запустить, вместо тихого бездействия (b0be97e3e).
Поддержка платформ и инструментов¶
База Qt Creator: 4.0.2.
Входящая в комплект прошивка камеры: обновлена до 2.0.0, с новыми
firmware.bin/openmv.binи впервые добавленнымиfirmware.dfu/bootloader.dfu/firmware.elf/bootloader.elfдля OMV2 и OMV7.Прошивка через DFU в Windows добавлена с использованием входящего в комплект ST
DfuSeCommand.exe, пакета USB-драйвера ST DfuSe (DfuSe v3.0.4.0 на Win7/Win8, v3.0.5.0 на Win8.1) и установщика драйвераdfuse.cmd(4ad2be5f9).Прошивка через DFU в macOS и Linux переведена с готовых бинарных файлов
dfu-utilна входящий в комплект скрипт прошивкиpydfu.py, при этом IDE показывает необходимые команды установки libusb/pyusb. Вac248c0ecненадолго были добавлены бинарные файлыdfu-util/dfu-prefix/dfu-suffixдля Linux x86_64, но в324f243f9все они затем удалены в пользуpydfu.py. В финальном релизе бинарных файловdfu-utilнет;static.proвключает каталог данныхpydfuдля всех хостов, кроме Windows, тогда как Windows использует входящий в комплект процесс DfuSe (ac248c0ec, 324f243f9, 7837a07da).Правила udev для Linux обновлены для использования сопоставления по
SUBSYSTEM(cam VID 1209/PID abd1 tty и STM DFU 0483/df11), чтобы символьные ссылки устройства и DFU работали в 32-битном Linux, а также добавлена защита сетевых запросов со следованием за перенаправлениями для старых версий Qt (194acd828).
Несовместимые изменения¶
Входящие в комплект автономные бинарные файлы dfu-util для macOS и Linux удалены и заменены скриптом прошивки на Python pydfu.py. На macOS и Linux для прошивки firmware через DFU теперь требуется однократная установка Python вместе с libusb и pyusb (IDE показывает точные команды MacPorts/HomeBrew/apt-get). Windows по-прежнему использует входящий в комплект процесс на основе DfuSe. Несовместимых изменений в API скриптинга нет, а база Qt Creator 4.0.2 не изменилась.