v1.3.0

v1.3.0 переписує рівень зв’язку з камерою навколо структурованого протоколу команд/відповідей та додає автооновлення прямо в IDE як для самого IDE, так і для його вбудованих ресурсів. Побудовано на Qt Creator 4.0.2 та містить мікропрограму камери OpenMV версії 2.0.0. На macOS та Linux прошивка через DFU тепер вимагає одноразового встановлення Python разом із libusb та pyusb; дивіться розділ «Критичні зміни».

Основне

  • Переписаний рівень зв’язку. Код послідовного/USB-налагодження перебудовано навколо структурованого протоколу команд/відповідей із заданими довжинами відповідей і затримками очікування початку/кінця для кожної команди, що забезпечує надійніше підключення, запуск скриптів, операції з кадровим буфером та завантажувачем.

  • Автооновлення в IDE. IDE тепер перевіряє openmv.io на наявність новішої версії та пропонує кнопку Download, а також окремо завантажує та встановлює оновлені пакети ресурсів (приклади, мікропрограму, документацію), після чого пропонує перезапустити IDE.

  • Оновлення мікропрограми одним кліком. Версія мікропрограми у рядку стану тепер є кнопкою, яка порівнює підключену камеру з вбудованою мікропрограмою і пропонує оновлення одним кліком, якщо доступна новіша версія.

  • Прошивка через 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. Діалог завантажувача/прошивки тепер приймає файли .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. Додано приклад візуалізації гістограми орієнтованих градієнтів (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).

Виправлення помилок

  • Виправлено прошивку та збій зв’язку всередині віртуальних машин, а також пом’якшено різні тайм-аути команд і опитування кадрового буфера/буфера передачі, щоб підключення та запуск були більш надійними. У діалозі перепрограмування тепер зазначено, що процес «може зайняти до 5 хвилин», а тайм-аут процесу DFU збільшено з 240 с до 300 с у 324f243f9 (c051c6e30, b0be97e3e, 1d72fe4bf, b4cf2fe43, 324f243f9, c60936d5f).

  • Виправлено порівняння доступності оновлення мікропрограми/IDE, щоб новіший другорядний або патч-номер більше не спрацьовував хибно, коли старший розряд рівний, і тепер діалог завантажувача вимагає вибрати дійсний файл перед прошивкою (4ad2be5f9).

  • Закрито файлові дескриптори (список плат, файли мікропрограми/версії) після читання та виправлено вирівнювання блоків прошивки до FLASH_WRITE_CHUNK_SIZE, що запобігає витокам дескрипторів і неправильному вирівнюванню останніх блоків під час оновлення мікропрограми (4ad2be5f9).

  • Виправлено меню Help OpenMV та панелі виводу: пункт About OpenMV Cam більше не конфліктує з роллю About платформи (AboutRoleApplicationSpecificRole), а панелі виводу більше не захоплюють комбінації клавіш 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 реалізована за допомогою вбудованого DfuSeCommand.exe від ST, пакету DFU-драйверів 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 (VID камери 1209/PID abd1 tty та STM DFU 0483/df11), щоб символічні посилання пристрою та DFU працювали на 32-бітному Linux, а мережеві запити з переспрямуванням захищено для старіших версій Qt (194acd828).

Критичні зміни

Вбудовані автономні бінарні файли dfu-util для macOS та Linux видалено і замінено на прошивач pydfu.py на Python. На macOS та Linux прошивка DFU тепер вимагає одноразового встановлення Python разом із libusb та pyusb (IDE показує точні команди MacPorts/HomeBrew/apt-get). Windows продовжує використовувати вбудований потік на основі DfuSe. Розриви скриптового API відсутні, база Qt Creator 4.0.2 залишається незмінною.