v4.8.11

v4.8.11 je vydání zaměřené na stabilitu a správnost, soustředěné na robustnost na macOS, serializaci externích nástrojů a spolehlivost aktualizací firmwaru. Je postaveno na Qt Creator 14.0.2 (beze změny oproti předchozímu vydání) a neobsahuje žádné změny narušující zpětnou kompatibilitu uživatelských projektů.

Hlavní novinky

  • Zpevnění proti pádům na macOS — odstraněn občasný tichý pád NSRangeException způsobený aktualizací výběru ve stromech/seznamech/rozevíracích nabídkách předtím, než byl panel nebo vyskakovací okno plně sestaveno nebo během asynchronního obnovování, a to napříč rozevírací nabídkou osnovy, hierarchií volání/typů, vyskakovacími okny dokončování a lokátoru, stromem projektu a dalšími.

  • Serializované externí nástroje — dialog průběhu zavaděče je nyní modální v rámci celé aplikace a pozastavuje veškeré dotazování zařízení, takže běžící dfu-util, bossac, picotool a další nástroje již nemohou být znovu spuštěny streamem kamery nebo automatickým opětovným připojením.

  • Spolehlivé aktualizace firmwaru — automatické opětovné připojení již nemůže převzít aktualizaci firmwaru uprostřed zápisu do flash paměti, což dříve zahodilo skutečné pokračování a vyvolalo falešný dialog DFU.

  • Bezpečnost Hello World — připojení desky již občas nepřepíše program Hello World, do kterého jste psali, díky porovnání s nedotčeným snímkem stavu namísto nespolehlivého příznaku změny.

  • Jasnější chyby DFU — chyba „no matching interface“ nyní pojmenovává zjištěnou desku a názvy souborů firmwaru, které přijímá, namísto vypsání surového VID/PID.

Nové funkce

  • ST Edge AI (STM32N6) nyní vytváří přemístitelný binární soubor sítě přímo prostřednictvím režimu --relocatable kompilátoru, čímž se odstraňuje samostatný krok přemístění v Pythonu a pole Relocation CLI Options navíc z dialogu (7613135c5).

Další změny a vylepšení

  • Chyby rozhraní DFU nyní pojmenovávají zjištěnou desku a vypisují názvy souborů firmwaru, které tato deska přijímá, s návodem na přejmenování nebo výběr správného souboru, namísto vypsání surového VID/PID (ac509b369).

  • Klávesové zkratky navigace mezi kartami na macOS nyní používají dosažitelné Cmd+Shift+[ / Cmd+Shift+] (předchozí/další) a Cmd+Alt+[ / Cmd+Alt+] (přesun) namísto nestisknutelných Ctrl+PageUp / Ctrl+PageDown; vazby kláves ve Windows a Linuxu zůstávají beze změny (6c09e10b1).

  • Požadavky na licence/desku na upload.openmv.io (check.php, insert.php, register.php) nyní odesílají User-Agent ve stylu prohlížeče specifický pro danou platformu, aby licenční server mohl identifikovat operační systém klienta (6bfd74b36).

Opravy chyb

  • Opraven občasný pád na macOS (tichý pád NSRangeException bez dialogu o pádu), kdy aktualizace výběru ve stromech/seznamech/rozevíracích nabídkách v době, kdy byl panel nebo vyskakovací okno stále skryté nebo uprostřed asynchronního obnovování, indexovala do nesestavené mezipaměti přístupnosti Cocoa. Výběr, posun a rozbalení jsou nyní odloženy nebo ošetřeny napříč rozevírací nabídkou osnovy, hierarchií volání/typů, vyskakovacím oknem dokončování kódu, vyskakovacím oknem lokátoru, dialogem Save Items, stromem projektu, navigací mezi složkami, oknem Open Documents, seznamem Issues/Tasks a rozevírací nabídkou stromového zobrazení (94c8f9def, ae40a3806, ed23b5c60, c6baf89cd, d7b6f5838, d8b70609c, 21740d9c2, 9217fc8a9, fe75924d5, 9cc247ffb, 3ca71e915, 559b6005f).

  • Opraven samostatný pád na macOS (NSRangeException/SIGABRT) v rozevírací nabídce osnovy kódu způsobený zastaralým indexem mimo rozsah, když jazykový server Pythonu asynchronně obnovoval symboly; setCurrentIndex nyní znovu ověřuje meze řádku/sloupce vůči živému modelu (3e0ce89f1).

  • Zpevněn editor modelů ROMFS a editor datových sad proti asynchronním souběhům QFileSystemModel odložením předběžného rozbalení stromu, dokud se adresář nedokončí načítat, a výběrem nově vytvořených souborů/složek/modelů až poté, co pro ně má model platný index (5eaa91aff).

  • Operace externích nástrojů (dfu-util, bossac, picotool, alif, imx, ST Cube, mpy-cross, vela, ST Edge AI, převod videa) již neumožňují streamu kamery ani zařazené práci znovu vstoupit do operace zařízení za běžícím nástrojem: dialog průběhu zavaděče je nyní modální v rámci celé aplikace a dotazování zařízení je po dobu jeho zobrazení plně pozastaveno (3069e8ec0).

  • Automatické opětovné připojení již nepřevezme aktualizaci firmwaru uprostřed zápisu do flash paměti díky trvalému příznaku probíhající aktualizace firmwaru, který je nastaven po celou dobu vynucené operace / operace bootloaderu / mazání a který nyní kontroluje i časovač opětovného připojení (b7745484a).

  • Připojení desky již občas nepřepíše program Hello World, do kterého jste psali, díky porovnání živého dokumentu s nedotčeným snímkem stavu zachyceným při otevření namísto spoléhání na nespolehlivý příznak změny před automatickou synchronizací příkladu pro daný senzor (6f4539d44).

  • Posun nahoru v sériovém terminálu během rychlého souvislého výstupu již nestrhává zobrazení zpět dolů: cesty připojování nyní sledují trvalý příznak záměru posunu uživatele namísto opětovného odvozování stavu „dole“ z pozice posuvníku, kterou každý blok dat právě znovu připnul (9aea0f1a2).

  • Escape nyní spolehlivě zavírá dialog Code Profiler bez ohledu na to, který podřízený prvek má fokus (203ffd1e6).

  • Na macOS nyní globální klávesové zkratky nabídek a příkazů fungují v celé aplikaci namísto pouze tehdy, když měl editor fokus, a to díky tomu, že je skrytý panel nabídek na každé platformě připojen k hlavnímu oknu (6d52cbe73).

  • Dodávaný interpret Pythonu je nyní při každém spuštění vynucen jako výchozí, takže zastaralý uložený výchozí interpret již tiše nezakáže jazykový server Pythonu (dokončování a nápovědu volání) (1d5069a52).

  • Zpevněn vstup/výstup nastavení OpenMV proti opětovnému vstupu: beginGroup / endGroup na sdíleném globálním objektu nastavení (které otevírají modální dialogy a spouštějí vnořené smyčky událostí) jsou nahrazeny úplnými cestami klíčů, takže opětovný přístup k nastavení během modálního dialogu již nemůže zařadit klíče pod nesprávnou skupinu. Cesty na disku jsou bajtově identické, takže nastavení stávajících uživatelů jsou přesně zachována (91e78a9e3, f4bb9f48c).

  • Opravena regrese, kdy několik dialogů a pomocníků, které přijímají sdílený objekt nastavení, provádělo vstup/výstup holých klíčů v kořeni nastavení namísto pod OpenMV/, čímž se ztrácela geometrie okna model zoo, rozdělovač a rozbalený stav a stav šesti dialogů zavaděče (dfu-util, imx, bossac, alif, picotool a ST Cube Programmer) spolu s možnostmi kompilátoru mpy-cross, vela a ST Edge AI; skupina je nyní zabudována do každého klíče, takže se používá správná cesta (258448bdf).

Podpora platforem a nástrojů

  • Základ Qt Creator: 14.0.2.

  • OpenMV IDE verze povýšena na 4.8.11.

Změny narušující kompatibilitu

Žádné. Všechny změny jsou opravy chyb a vylepšení vrstvená na stávající základ Qt Creator 14.0.2; stávající projekty a pracovní postupy nejsou ovlivněny.