v4.0.1

v4.0.1 je modernizace od základu, která přenáší OpenMV IDE z jeho dlouho používaného základu Qt Creator 4.0.2 na Qt Creator 10.0.1. Celý zásobník zásuvných modulů OpenMV (prohlížeč frame bufferu, sériová/protokolová komunikace, terminál, editory histogramu, prahu a klíčových bodů, video nástroje a obaly pro flashování firmwaru) je znovu aplikován na novém základu, společně s vyladěnou dvojicí motivů Flat Light/Flat Dark, zvýrazňováním Pythonu se znalostí OpenMV, sjednoceným dialogem nahrávání firmwaru a širokou podporou detekce zařízení na ARM64 Linuxu a macOS. Změna základu Qt Creator je rozsáhlá interní modernizace, ale nenarušuje uživatelské projekty; několik výchozích chování a definic desek se přesto změnilo (viz Zásadní změny).

Hlavní novinky

  • Přechod na Qt Creator 10.0.1. IDE přechází z Qt Creator 4.0.2 na 10.0.1: upstreamový Qt Creator je oříznut na své základní stavební součásti (98b95fd3b) a celý zásuvný modul OpenMV je znovu přidán na nový základ (0e8047372).

  • Motivy Flat Light a Flat Dark. Dodává se vyladěná dvojice světlého/tmavého motivu s odpovídajícími vlastními styly zvýrazňování syntaxe editoru; volba motivu je znovu zpřístupněna v Obecných nastaveních a omezena pouze na tyto dva, přičemž výchozím motivem je nyní flat-dark (21348924b, 13c3849e8).

  • Sériový terminál s raw-REPL. Terminál nyní spouští, přerušuje, znovu načítá a vkládá skripty přes řádný stavový automat raw-REPL MicroPythonu (CTRL-A/CTRL-D) a spolehlivě zvládá i větší skripty (a7241079c).

  • Editace Pythonu se znalostí OpenMV. Moduly, třídy, funkce, metody a argumenty OpenMV jsou zvýrazněny v syntaxi na základě přibalené dokumentace, s chytřejším automatickým doplňováním a automatickým odsazováním zohledňujícím závorky a dvojtečky (801eab8a8, 8e9f967e7, 9fdff9c6d).

  • Sjednocený dialog nahrávání firmwaru. Flashování nyní zobrazuje jediný kontextový dialog (Mazání disku / Flashování firmwaru / Flashování bootloaderu) s ukazatelem průběhu a sbalitelným záznamem Zobrazit/Skrýt podrobnosti, který si pamatuje svůj stav (5b51356f8).

  • Podpora OpenMV Cam RT1062. Pro novou desku třídy i.MX RT1060 byly přidány firmware, DFU/flash-loadery, enumerace SDP/blhost a programovací krok vypálení eFuse (a6595f5f7), které pak dostala samostatnou variantu desky se Secure Bootloaderem (SBL) (d2b11c6c8).

Nové funkce

  • Příznaky automatizace. Příznaky -auto_update (release / development / cesta), -auto_erase a -auto_run umožňují IDE při připojení nahrát/smazat firmware a poté spustit otevřený skript; po opětovném připojení bootloaderu IDE před pokračováním čeká až 10 s na novou enumeraci kamery (b54affe79, f4e03d978).

  • Příznak ``-disable_stop`` a přepínač nabídky stop on connect/disconnect umožňují uživatelům vypnout zastavení skriptu při připojení nebo odpojení (02724ca7d).

  • Přepínač Stop Script on Connect/Disconnect (ve výchozím stavu zapnutý) odděluje připojení/odpojení od zastavení běžícího skriptu; Auto Reconnect je nyní ve výchozím stavu vypnutý (a0e78057f).

  • Výzva k volbě typu desky. Když připojená deska hlásí architekturu, která není ve firmwarovém mapování, IDE nyní vyzve uživatele k výběru typu desky (a zapamatuje si poslední volbu) namísto přerušení s chybou „Unsupported board architecture!“ (b7165eb3d).

  • Zvýrazňování syntaxe Pythonu OpenMV obarvuje známé moduly, třídy, data, funkce, metody a argumenty OpenMV pomocí seznamů klíčových slov naplněných z přibalené dokumentace (801eab8a8, b4d481bf5).

  • ~300 jazykových definic KSyntaxHighlighting se dodává s editorem, takže zdrojové soubory v mnoha jazycích jsou zvýrazněny hned po instalaci (39674a4dc).

  • Přibalené ukázkové skripty OpenMV (Hello World, snímek, nahrávání videa, optický tok, event kamery, global shutter, FLIR Lepton a další) jsou nyní zařazeny a dodávány s IDE (938ac6bbe).

  • Binární/hex editor je povolen, takže uživatelé mohou otevírat a prohlížet binární soubory, s panelem nástrojů upraveným tak, aby zapadl do uživatelského rozhraní OpenMV (675bda966).

  • Porovnávání dokumentů v paměti. Nové soubory a příklady jen pro čtení nyní získají podpůrný dočasný soubor, takže lze porovnávat i neuložené dokumenty, a dialog porovnání externích souborů si pamatuje naposledy použitou složku (5281e5f6c, 2934d5216).

  • Zásuvný modul záložkového editoru je znovu přidán, čímž IDE získává lištu dokumentů se záložkami; zdrojový kód zásuvného modulu minimapy byl znovu přidán, ale v sestavení pro toto vydání ponechán vypnutý (0e8047372).

  • Záložní flashování přes DfuSe a pydfu je obnoveno pro DFU zařízení, která nelze cílit podle sériového čísla, s automatickým mazáním bez dialogu během připojení (e42a5be7d).

  • Vypálení eFuse pro i.MX RT. Programování firmwaru nyní vypaluje eFuse (efuse-program-once) pro desky třídy RT1060 (8053bb578, a6595f5f7).

  • Stránka průvodce Linux Root Installs umožňuje uživateli zvolit, zda se má provést instalace knihovny apt s vyššími oprávněními a instalace pravidel udev, namísto jejich vždy automatického spouštění (6bac80984).

Další změny a vylepšení

  • Skenování sériových portů na pozadí. Enumerace portů byla přesunuta z vlákna uživatelského rozhraní do vyhrazeného pracovního vlákna ScanSerialPortsThread, takže IDE zůstává během skenování responzivní (7be4dab26).

  • Širší detekce zařízení. Skenování portů bylo přepracováno do znovupoužitelné pomocné funkce filterPorts(), která zahrnuje zařízení picotool a i.MX DFU a překlasifikovává známé sériové porty bootloaderu Arduino (staré PID NRF/RPI a PID loaderu) na DFU zařízení (25a5d30fd).

  • Více záložních terminálů. Při spouštění přibalených nástrojů pro přehrávání videa (Play Video File / Play RTSP Stream) na Linuxu se IDE nyní kromě xterm a gnome-terminal postupně pokouší i o lxterminal, konsole a xfce4-terminal (df54007e0).

  • Hlášení klíčů desek. Registrace kamery nyní parsuje odpověď „Remaining N“, aby uživateli sdělila, kolik klíčů desek zbývá, a přidává samostatnou chybovou zprávu „Invalid Board Key for Board Type“ (5759e73eb).

  • Stahování hostovaná na GitHubu. Kontroly verzí a stahování zdrojů nyní používají raw.githubusercontent.com/openmv/openmv-ide-version a vydání openmv/openmv-ide namísto upload.openmv.io (994109c28).

  • HTTPS všude. Všechny webové požadavky OpenMV (kontroly verzí, registrace SWD ID, stahování zdrojů a firmwaru) nyní používají https:// (54347cad0).

  • Automatizace nastavení na Linuxu. Instalátor detekuje chybějící knihovny a pravidla udev a v případě potřeby vygeneruje spustitelný setup.sh s přesnými instalačními příkazy apt-get/pip a pravidly udev (a soubor README s pokynem uživateli, aby jej spustil) (c6dc705e6).

  • Tolerance pomalých desek. Sériový terminál zvyšuje svou dobu čekání na čtení z 1 ms na 10 ms a po dokončení skriptu vysílá potvrzení „OK“ (c935e4489).

  • Plynulejší průběh flashování. Ukazatele průběhu nahrávání firmwaru nyní přepínají z neurčitého stavu na 0-100 % okamžitě, nikoli až po prvním procentuálním kroku, a to napříč dfu-util, bossac, picotool a flashováním i.MX (19d947308, 86d021f92).

  • Obnova starého bootloaderu je znovu přidána prostřednictvím nerychlého režimu bootloaderu, který odesílá příkazy mazání/zápisu bez výplně dotaz-synchronizace rychlého režimu (c20112c07).

  • Čistší konzole nástrojů. Terminály flashování firmwaru (bossac, dfu-util, picotool, imx, video nástroje) nyní běží jako samostatné konzolové procesy s lépe formátovaným výstupem příkazů (8053bb578).

  • Vylepšení automatického doplňování. Doplňování rozlišuje třídy, metody a funkce se samostatnými nápovědami k argumentům, používá správné ikony kódového modelu a respektuje veřejný/chráněný/soukromý rozsah podle prefixu podtržítkem; procesor doplňování klíčových slov také přeskakuje úvodní mezery před kurzorem při explicitně (ručně) vyvolaném doplňování (8e9f967e7, 68b26b5fc).

  • Konsolidované dialogy. Provizorní dialogy OpenMV „Don’t show this again“ – včetně úvodního informačního dialogu OpenMV Cam LED Colors a výzev k aktualizaci firmwaru a k příkladům – jsou sjednoceny na dialogy CheckableMessageBox „Do Not Ask/Show Again“, do Obecných nastavení bylo přidáno tlačítko „Reset Do Not Ask/Show Again Dialogs“ a značky skládání kódu jsou ve výchozím stavu vypnuté (9fdff9c6d).

  • Branding zohledňující motiv. Byly přidány úvodní obrazovky pro tmavý režim, tmavá/světlá loga čipů ST a NXP v okně About, barvy nápověd pro tmavý režim a správné barvy ikon automatického doplňování (d85fdeb19, 9895a8395, f45ceaaea, 7f3e1f383).

  • Vyčištění prohlížeče obrázků. Akce sdílet, pozadí, obrys a „nastavit jako výchozí“ jsou skryty, byla přidána akce přizpůsobit obrazovce a bylo opraveno škálování animovaných obrázků (b37c55e25).

  • Vyčištění kontextové nabídky. Položky „Show in File System View“, „Open Terminal“, „File Properties“ a „Add/Delete UTF-8 BOM on Save“ jsou skryty (5d862c78e).

  • Tmavý sériový terminál. Samostatný terminál používá řádný tmavý motiv se stylovanými posuvníky, aktualizovanými ikonami panelu nástrojů a správným opětovným načítáním ikon posuvníku ve vysokém DPI napříč obrazovkami (5c3af6880).

  • Vyčištění Najít/Hledat. Panel výsledků získává tmavý motiv, volič vyhledávacího jádra je skryt, popisky jsou zjednodušeny a Najít v souborech se ve výchozím stavu nastaví na složku Documents/OpenMV (20a806550).

  • Identita aplikace. IDE nyní zobrazuje správnou ikonu OpenMV na ploše, v titulkovém pruhu a na hlavním panelu (s podporou vysokého DPI na Windows) a id IDE bylo změněno na openmvide (8ad1eed1f).

  • Úvodní obrazovka pro vysoké DPI zobrazuje 2x úvodní obrázek na displejích Retina/se škálováním 200 % (626ff673e).

  • Oprava panelu akcí. Levý panel akcí (New File, Open, Save, Undo, Redo, Cut, Copy, Paste) byl opraven a získal vlastní ikony OpenMV (b8479b5d0).

  • Loga v dialogu About. Nyní jsou zobrazena partnerská loga Arduino i Edge Impulse (Edge Impulse bylo dříve skryto) s variantami 2x pro vysoké DPI a přibalené grafiky úvodní obrazovky byly aktualizovány (splash-small-2 / splash-large-2) (5facd8d9a).

  • Vybrat slovo pod kurzorem je povoleno; příkazy Go to Block Start/End (Ctrl+[ / Ctrl+]) a Select Block Up/Down byly krátce znovu povoleny (36ed5b1a8), ale ve vydání ponechány vypnuté (626ff673e).

  • Položka plochy na Linuxu získává kategorii Electronics, popisný komentář a vyhledávací klíčová slova (embedded electronics, microcontroller, micropython, computer/machine vision) (470e5702e).

  • Migrace zdrojů. Uživatelské zdroje byly přesunuty do umístění s verzí (stará složka qtcreator je při startu odstraněna) a neškodná varování DirectWrite o řezu písma na Windows jsou potlačena (a04af5351, 70765dc2a).

  • Skryté interní volby. Interní volby jádra -color a -theme jsou skryty z výstupu nápovědy a prezentační režim byl znovu povolen (434c7b4cc).

  • Znovu aplikované úpravy jádra na ozdobný panel akcí / widget záložek, správce zpráv / okno výstupu, proxy akce, zvýrazňovač syntaxe a textový editor (0e8047372).

  • QCustomPlot 2.1.1. Přibalená knihovna pro vykreslování grafů byla aktualizována pro kompatibilitu s Qt 6.4 a správné zpracování dynamicky se měnícího DPI displeje (8801415fe).

  • Kosmetické vyčištění uživatelského rozhraní u ikon šipek posuvníků, stavového řádku, tlačítek pro zavření na liště záložek dokumentů a šířky posuvníku editoru; indikátor editoru „Display File Line Ending“ je nyní ve výchozím stavu vypnutý (e0c4d2325, 6a26f4430, e130988fb).

Opravy chyb

  • Opravena detekce VID/PID na Linuxu čtením /sys/class/tty/<port>/device/uevent pro získání skutečného VID/PID zařízení, čímž se obchází vracení identifikátorů USB hubu funkcí QSerialPortInfo, takže kamery za huby jsou detekovány správně (28220b351).

  • Opraveno flashování firmwaru bootloaderu na Macu uvolněním kontrol velikosti endpointu a přidáním synchronizačního dotazovacího paketu pouze tehdy, když má zápis přesně velikost jednoho USB endpointu (86d021f92).

  • Opraveny nástroje pro přehrávání videa na Linuxu: Play Video File / Play RTSP Stream jsou nyní skryty na 32bitovém a ARM Linuxu (bez přibaleného ffplay), se záložním řešením přes gnome-terminal, když není k dispozici xterm, a binárka ffmpeg pro macOS byla obnovena ze zástupného souboru (d342649cc, d896f4225).

  • Zvýšeny počáteční/koncové prodlevy resetu bootloaderu z 0 na 5, aby se zabránilo překrývání příkazů mazání a zápisu během aktualizací firmwaru (fabc168b6).

  • Zefektivněna obnova bootloaderu: vynucení bootloaderu k opravě zablokované kamery přeskakuje nadbytečné výzvy a po resetu DFU bootloaderu se IDE automaticky pokusí o opětovnou aktualizaci namísto vyzývání uživatele k opětovnému připojení (12b924088).

  • Umožněno přerušení příkazů výpisu sériového frame bufferu/TX bufferu uprostřed transakce (4a4afae1b).

  • Odstraněno provizorní řešení vzdávání se při zaseknutém čtení sériového portu, které mohlo doplňovat odpovědi nulovými bajty, čímž se zlepšuje spolehlivost rychlého přenosu přes USB (0ee1d8e91).

  • Opraveno ladění přes WiFi a automatické opětovné připojení: WiFi porty obnovují svou časovou značku posledního výskytu při opětovném objevení, bylo opraveno několik chyb iterátoru po smazání při vyřazování WiFi portů a detekci DFU/bootloaderu a automatické opětovné připojení nyní před připojením čeká, dokud IDE není zaneprázdněno (cf0b67dc6).

  • Opraven převodník video-na-MJPEG tak, aby parsoval snímkovou frekvenci z výstupu enkodéru a zapisoval správný milisekundový rozdíl na snímek, takže převedená videa se přehrávají správnou rychlostí (4a7ad2057).

  • Opraveno selhávání spouštění flashování firmwaru a přibalených nástrojů příkazové řádky vynucením backendu QProcess a opravou ochrany smyčky událostí blokujícího procesu (200fe9f3c).

  • Opraveny ikony větví rozbalení/sbalení stromu editoru datové sady tak, aby se správně vykreslovaly na displejích HiDPI, opětovným načtením stylu ikon při změně poměru pixelů zařízení (a0e78057f).

  • Aktualizace balíčků/zdrojů nyní po instalaci automaticky restartují OpenMV IDE namísto pouhého ukončení (178ee1b8e).

  • Opraveno zvýrazňování výsledků Najít/hledat a akce výsledek hledání / otevření souboru nyní přechází na první viditelný editor, pokud není žádný aktuální editor (48c402dfc).

  • Opraven dialog nahrávání firmwaru tak, aby se jeho varovný text vymazal a okno se po dokončení flashovací operace správně přizpůsobilo velikostí (c505c6ade).

  • Opraveno několik chyb uživatelského rozhraní na macOS: lišta záložek již nezahlcuje chybami načítání ikon a zobrazuje se správně při otevření souboru (9be8c58de, 5322cf968).

  • Opraveno stylování stavového řádku / výstupního panelu a zarovnání na účaří na macOS a Linuxu (4fc4545de, d29b2baa0, a440d5cd8).

  • Opraven tisk zdrojového kódu tak, aby záhlaví s názvem stránky mělo řádné horní a boční okraje namísto dotýkání se okraje stránky (786d6012c).

Podpora platforem a nástrojů

  • Základ Qt Creator: 10.0.1 (přenesen z 4.0.2).

  • OpenMV IDE: 4.0.0 -> 4.0.1.

  • OpenMV Cam RT1062 (i.MX RT1060): počáteční firmware RT1062, flash-loader, podepsané obrazy, položka imx.txt a konfigurační klíče blhost pro secure-bootloader/eFuse byly přidány do firmwarové složky OPENMV5 (a6595f5f7); deska pak byla sjednocena do jediné složky OPENMV_RT1060 a byla přidána samostatná varianta desky se Secure Bootloaderem (SBL) (OpenMV_Cam_RT1062_SBL) (d2b11c6c8, 5baf28c6e).

  • Přibalený flashovací nástrojový řetězec (blhost, bossac, dfu-util, dfuse + ovladače STM32, picotool, sdphost, ffmpeg, ovladače FTDI/Arduino) byl znovu přibalen pro Windows/macOS/Linux, přičemž linuxové binárky jsou označeny jako spustitelné (fbfa4903a, bfb6b32e2, 9551c64da).

  • ARM64 Linux DFU: přibalený aarch64 dfu-util plus detekce arm64 ve výpisu zařízení a stahování firmwaru umožňuje DFU flashování na hostitelích, jako je Raspberry Pi (16bc6fe0f, 470e5702e).

  • Detekce zařízení i.MX nyní funguje na Linuxu (parsováním lsusb) a macOS (skenováním ioreg), což na těchto platformách umožňuje nahrávání firmwaru i.MX RT (e03ccbe71, 7cf505d09).

  • Omezení podle platformy: použití i.MX je omezeno na Windows/macOS/Linux-x86_64 s kritickou chybou jinde a flashování Portenta/Nicla na ARM/ARM64 Linuxu zobrazuje varování „DFU Util may not be stable on this platform“ (9513f6475).

  • OpenGL na Windows: softwarové vykreslování bylo obnoveno přibalením podpory opengl32sw, Qt6OpenGL a OpenGL z Qt6Gui do nasazeného balíčku (aaaa1928f).

  • Přejmenovány složky/id desek Arduino. Firmwarové složky a id desek v boards.txt pro Portenta, Nicla Vision a Nano 33 BLE Sense byly přejmenovány na ARDUINO_PORTENTA_H7, ARDUINO_NICLA_VISION a ARDUINO_NANO_33_BLE_SENSE (a70d6562a); složka/id desky Nano 33 BLE Sense byly následně převedeny na malá písmena arduino_nano_33_ble_sense, aby odpovídaly názvu desky hlášenému zařízením (22750d8c7, a801a81de).

  • Flash loadery bootloaderu OPENMV_RT1060 (blhost_flash_loader.bin, sdphost_flash_loader.bin) byly aktualizovány (5baf28c6e).

  • QCustomPlot: 2.1.1 (přibalená knihovna pro vykreslování grafů) (8801415fe).

  • Firmwarové obrazy na disku byly znovu přibaleny pro všechny podporované desky OpenMV/Arduino (OPENMV1-4P, OPENMV4_PRO, OPENMVPT, ARDUINO_NICLA_VISION, arduino_nano_33_ble_sense, ARDUINO_PORTENTA_H7, ARDUINO_NANO_RP2040_CONNECT, OPENMV_RT1060, CYW4343 plus WiFi firmware WINC1500), s firmwarem a, kde je to relevantní, obrazy bootloaderu/uvc (fbfa4903a).

Zásadní změny

Toto jsou pro uživatele viditelné změny pracovních postupů a chování; samotný přechod na Qt Creator 10.0.1 nenarušuje uživatelské projekty ani skripty.

  • Změnily se definice desek i.MX RT1060. Položky EVKBMIMXRT1060 a OPENMV5 byly nahrazeny jedinou deskou OPENMV_RT1060 (OpenMV Cam RT1062 plus varianta SBL) a staré firmwarové složky byly odstraněny (d2b11c6c8).

  • Výchozí časový limit odpovědi na příkaz je 10000 ms (v 4.0.0 byl 5000 ms); text nápovědy -override_read_timeout byl odpovídajícím způsobem aktualizován (4a4afae1b).

  • Změnilo se chování při připojení/odpojení. Auto Reconnect je nyní ve výchozím stavu VYPNUTÝ a připojení nebo odpojení již ve výchozím stavu nezastavuje běžící skript, pokud není povolen nový přepínač „Stop Script on Connect/Disconnect“ (ten je ve výchozím stavu zapnutý) (a0e78057f).

  • Aktualizační proces restartuje IDE. Aktualizace balíčků/zdrojů nyní po instalaci automaticky restartují OpenMV IDE namísto ukončení (178ee1b8e).

  • Přejmenována id desek Arduino. Id desek v boards.txt a firmwarové složky pro Portenta, Nicla Vision a Nano 33 BLE Sense byly přejmenovány na ARDUINO_PORTENTA_H7, ARDUINO_NICLA_VISION a ARDUINO_NANO_33_BLE_SENSE (poslední později převedeno na malá písmena arduino_nano_33_ble_sense) (a70d6562a, 22750d8c7, a801a81de).