v1.3.0

v1.3.0 přepisuje komunikační vrstvu kamery kolem strukturovaného protokolu příkaz/odpověď a přidává automatické aktualizace přímo v IDE jak pro samotné IDE, tak pro jeho přibalené prostředky. Je postaveno na Qt Creator 4.0.2 a obsahuje firmware kamery OpenMV 2.0.0. Na systémech macOS a Linux nyní flashování firmwaru přes DFU vyžaduje jednorázovou instalaci Pythonu spolu s libusb a pyusb; viz Zásadní změny.

Hlavní novinky

  • Přepsaná komunikační vrstva. Kód pro sériové/USB ladění byl přebudován kolem strukturovaného protokolu příkaz/odpověď s délkami odpovědí pro jednotlivé příkazy a čekacími prodlevami na začátku/konci, což zajišťuje spolehlivější operace připojení, spuštění skriptu, práce se snímkovým bufferem (frame buffer) a bootloaderem.

  • Automatický aktualizátor v IDE. IDE nyní kontroluje openmv.io na novější verzi a nabízí tlačítko Download, a samostatně stahuje a instaluje aktualizované balíčky prostředků (příklady, firmware, dokumentace) a poté vyzve k restartu.

  • Aktualizace firmwaru jedním kliknutím. Verze firmwaru ve stavovém řádku je nyní klikatelné tlačítko, které porovnává připojenou kameru s přibaleným firmwarem a nabízí aktualizaci jedním kliknutím, pokud je dostupná novější verze.

  • Flashování firmwaru přes DFU na každé platformě. Firmware lze nyní flashovat přes DFU na Windows, macOS, Linux x86 a Linux x86_64 a výběr firmwaru přijímá kromě .bin i soubory .dfu.

  • Automatické přepnutí na DFU. Pokud během aktualizace firmwaru nelze dosáhnout sériového bootloaderu, IDE nyní nabídne provedení aktualizace přes DFU bootloader kamery a provede vás přidáním propojky BOOT/RST.

Nové funkce

  • Aktualizátor v IDE. Kontroluje openmv.io na novější verzi IDE a nabízí tlačítko Download, které otevře openmv.io/download, a stahuje, rozbaluje a instaluje balíčky prostředků openmv-ide-resources-X.Y.Z.zip přímo do IDE, než vyzve k restartu (8a1f92bb1, 194acd828, b0be97e3e).

  • Klikatelné tlačítko verze firmwaru. Popisek verze ve stavovém řádku se stal QToolButton napojeným na tok updateCam(), který načte přibalený firmware/firmware.txt, porovná jej s připojenou kamerou a nabídne Firmware Update s volitelným smazáním interního souborového systému, je-li novější (b2ac8defe).

  • Podpora souborů DFU. Dialog flashování bootloaderu/firmwaru nyní přijímá kromě .bin i soubory .dfu a při flashování .dfu vynucuje úplné smazání interního souborového systému. Filtr výběru firmwaru byl rozšířen na Firmware Binary (*.bin *.dfu) a tok vynuceného smazání pro .dfu byl zaveden v 4ad2be5f9, přičemž vždy zaškrtnuté a zakázané políčko smazání, které se automaticky přepíná podle zvolené přípony souboru, bylo přidáno v b2ac8defe (4ad2be5f9, b2ac8defe).

  • Automatické přepnutí na DFU při selhání bootloaderu. Pokud aktualizace firmwaru .bin nedokáže spustit sériový bootloader, IDE nyní nahlásí Unable to connect to the bootloader! a poté nabídne aktualizaci pomocí DFU bootloaderu kamery, přičemž upozorní, že DFU smaže interní souborový systém ve flash paměti, a provede vás přidáním propojky BOOT/RST a opětovným připojením, než spustí DfuSeCommand.exe (Windows) (4ad2be5f9).

  • Příklad HoG. Přidán příklad vizualizace Histogramu orientovaných gradientů (09-Feature-Detection/hog.py) využívající img.find_hog() (b03a707f7).

Další změny a vylepšení

  • Nahradil starý ad-hoc kód pro přenosovou rychlost/pakety třídami OpenMVPluginSerialPortCommand/Result, opkódy __USBDBG_* a __BOOTLDR_* a pomocnými funkcemi command()/commandResult() namísto write()/readAll()/isOpen() (b03a707f7, 141122e21, b2ac8defe, 1d72fe4bf, b4cf2fe43, c60936d5f).

  • Instalace ovladače sériového portu ve Windows je nyní tichá/bezobslužná, přepnutím ovladačových skriptů openmv.cmd/pybcdc.cmd na instalátory založené na dpinst namísto interaktivního InfDefaultInstall, a byl přidán a opraven instalátor Visual C++ Redistributable (vcr.cmd tiše spouštějící vcredist_x86.exe a vcredist_x64.exe) (a5a6e0590, 754d0776d, b0be97e3e, 452a29f0d, c051c6e30, ad1b674ef, 565f1eccd).

Opravy chyb

  • Opraveno selhávání flashování firmwaru a komunikace uvnitř virtuálních strojů a uvolněny různé časové limity příkazů a dotazování snímkového bufferu (frame buffer)/tx-bufferu, takže připojení a spuštění jsou robustnější. Dialog přeprogramování nyní uvádí, že „může trvat až 5 minut“, a časový limit procesu DFU byl zvýšen z 240 s na 300 s v 324f243f9 (c051c6e30, b0be97e3e, 1d72fe4bf, b4cf2fe43, 324f243f9, c60936d5f).

  • Opraveno porovnání dostupnosti aktualizace firmwaru/IDE tak, aby novější vedlejší nebo opravná verze již chybně nespouštěla aktualizaci, když je vyšší pole shodné, a vyžadováno, aby dialog bootloaderu měl před flashováním platný vybraný soubor (4ad2be5f9).

  • Uzavřeny popisovače souborů (seznam desek, soubory firmwaru/verze) po jejich přečtení a opraveno doplnění bloků při flashování firmwaru tak, aby doplňovalo na FLASH_WRITE_CHUNK_SIZE, čímž se zabrání úniku popisovačů a špatně doplněným posledním blokům během aktualizací firmwaru (4ad2be5f9).

  • Opravena nabídka Help OpenMV a výstupní panely: položka About OpenMV Cam již nekoliduje s platformovou rolí About (AboutRoleApplicationSpecificRole) a výstupní panely již nezachycují klávesové zkratky Alt/Cmd + číslo (a0694eac7).

  • Otevírání externích webových odkazů OpenMV (fóra, stahování, podpora) nyní zobrazí chybový dialog „Failed to open“, pokud URL nelze otevřít, namísto tichého nečinění (b0be97e3e).

Podpora platforem a nástrojů

  • Základ Qt Creator: 4.0.2.

  • Přibalený firmware kamery: aktualizován na 2.0.0, s novými firmware.bin/openmv.bin a nově přidanými firmware.dfu/bootloader.dfu/firmware.elf/bootloader.elf pro OMV2 a OMV7.

  • Flashování DFU ve Windows přidáno pomocí přibaleného ST DfuSeCommand.exe, balíčku USB ovladače ST DfuSe (DfuSe v3.0.4.0 na Win7/Win8, v3.0.5.0 na Win8.1) a instalátoru ovladače dfuse.cmd (4ad2be5f9).

  • Flashování DFU na macOS a Linux přesunuto z předkompilovaných binárek dfu-util na přibalený flasher pydfu.py, přičemž IDE zobrazuje potřebné instalační příkazy libusb/pyusb. ac248c0ec krátce přidal binárky Linux x86_64 dfu-util/dfu-prefix/dfu-suffix, ale 324f243f9 je poté všechny odebral ve prospěch pydfu.py. V konečném vydání se žádné binárky dfu-util nedodávají; static.pro přibaluje datový adresář pydfu pro všechny ne-Windows hostitele, zatímco Windows používá přibalený tok DfuSe (ac248c0ec, 324f243f9, 7837a07da).

  • Pravidla udev pro Linux aktualizována na použití párování SUBSYSTEM (cam VID 1209/PID abd1 tty a STM DFU 0483/df11), takže symbolické odkazy zařízení a DFU fungují na 32bitovém Linuxu, a síťové požadavky následující přesměrování byly ošetřeny pro starší Qt (194acd828).

Zásadní změny

Přibalené samostatné binárky dfu-util pro macOS a Linux byly odebrány a nahrazeny Python flasherem pydfu.py. Na macOS a Linux nyní flashování firmwaru přes DFU vyžaduje jednorázovou instalaci Pythonu spolu s libusb a pyusb (IDE zobrazuje přesné příkazy MacPorts/HomeBrew/apt-get). Windows nadále používá přibalený tok založený na DfuSe. Nedošlo k žádným změnám ve skriptovacím API a základ Qt Creator 4.0.2 zůstává beze změny.