v4.8.11¶
v4.8.11 este o versiune de stabilitate și corectitudine axată pe robustețea pe macOS, serializarea instrumentelor externe și fiabilitatea actualizărilor de firmware. Este construită pe Qt Creator 14.0.2 (neschimbat față de versiunea anterioară) și nu conține modificări care să afecteze compatibilitatea proiectelor utilizatorilor.
Aspecte importante¶
Consolidarea împotriva blocărilor pe macOS — a fost eliminat un abandon silențios și intermitent de tip
NSRangeExceptioncauzat de actualizarea selecțiilor din arbori/liste/combo înainte ca un panou sau o fereastră pop-up să fie complet construite sau în timpul unei reîmprospătări asincrone, în combo-ul de schiță, ierarhia de apeluri/tipuri, ferestrele pop-up de completare și de localizare, arborele proiectului și altele.Instrumente externe serializate — dialogul de progres al încărcătorului este acum modal la nivel de aplicație și suspendă toate interogările dispozitivelor, astfel încât rularea dfu-util, bossac, picotool și a celorlalte instrumente nu mai poate fi reintrată de fluxul camerei sau de reconectarea automată.
Actualizări de firmware fiabile — reconectarea automată nu mai poate prelua controlul unei actualizări de firmware în timpul scrierii în memoria flash, ceea ce anterior întrerupea continuarea reală și afișa un dialog DFU eronat.
Siguranța Hello World — conectarea unei plăci nu mai suprascrie ocazional un program Hello World în care ai scris, prin compararea cu un instantaneu original în loc de indicatorul de modificare nesigur.
Erori DFU mai clare — eroarea „no matching interface” denumește acum placa detectată și numele fișierelor de firmware pe care le acceptă, în loc să afișeze un VID/PID brut.
Funcționalități noi¶
ST Edge AI (STM32N6) produce acum binarul de rețea relocalizabil direct prin modul
--relocatableal compilatorului, eliminând pasul separat de relocare în Python și câmpul suplimentar Relocation CLI Options din dialog (7613135c5).
Alte modificări și îmbunătățiri¶
Erorile de interfață DFU denumesc acum placa detectată și listează numele fișierelor de firmware pe care acea placă le acceptă, cu îndrumări pentru redenumirea sau alegerea fișierului corect, în loc să afișeze un VID/PID brut (ac509b369).
Scurtăturile de navigare prin file pe macOS folosesc acum combinațiile accesibile
Cmd+Shift+[/Cmd+Shift+](anterior/următor) șiCmd+Alt+[/Cmd+Alt+](mutare) în locul combinațiilor inapăsabileCtrl+PageUp/Ctrl+PageDown; legăturile pentru Windows și Linux rămân neschimbate (6c09e10b1).Cererile de licență/placă către
upload.openmv.io(check.php,insert.php,register.php) trimit acum unUser-Agentde tip browser, specific fiecărei platforme, astfel încât serverul de licențe să poată identifica sistemul de operare al clientului (6bfd74b36).
Remedieri de erori¶
A fost remediată o blocare intermitentă pe macOS (un abandon silențios de tip
NSRangeExceptionfără dialog de eroare) în care actualizarea selecțiilor din arbori/liste/combo în timp ce un panou sau o fereastră pop-up era încă ascuns sau în timpul unei reîmprospătări asincrone indexa într-un cache de accesibilitate Cocoa neconstruit. Selectarea, derularea și expandarea sunt acum amânate sau protejate în combo-ul de schiță, ierarhia de apeluri/tipuri, fereastra pop-up de completare a codului, fereastra pop-up de localizare, dialogul Save Items, arborele proiectului, navigarea prin foldere, Open Documents, lista Issues/Tasks și combobox-ul de vizualizare a arborelui (94c8f9def, ae40a3806, ed23b5c60, c6baf89cd, d7b6f5838, d8b70609c, 21740d9c2, 9217fc8a9, fe75924d5, 9cc247ffb, 3ca71e915, 559b6005f).A fost remediată o blocare separată pe macOS (
NSRangeException/SIGABRT) în combobox-ul de schiță a codului, cauzată de un index învechit aflat în afara intervalului atunci când serverul de limbaj Python reîmprospăta simbolurile asincron;setCurrentIndexrevalidează acum limitele de rând/coloană față de modelul activ (3e0ce89f1).Au fost consolidate editorul de modele ROMFS și editorul de seturi de date împotriva curselor asincrone
QFileSystemModelprin amânarea pre-expandării arborelui până la finalizarea încărcării directorului și prin selectarea fișierelor/folderelor/modelelor nou create doar după ce modelul are un index valid pentru acestea (5eaa91aff).Operațiunile cu instrumente externe (dfu-util, bossac, picotool, alif, imx, ST Cube, mpy-cross, vela, ST Edge AI, conversie video) nu mai permit fluxului camerei sau lucrărilor din coadă să reintre într-o operațiune pe dispozitiv în spatele instrumentului care rulează: dialogul de progres al încărcătorului este acum modal la nivel de aplicație, iar interogarea dispozitivelor este complet suspendată cât timp acesta este afișat (3069e8ec0).
Reconectarea automată nu mai preia controlul unei actualizări de firmware în timpul scrierii în memoria flash, datorită unui indicator persistent de actualizare-de-firmware-în-curs, blocat pe toată durata operațiunii forțate/bootloader/ștergere, pe care temporizatorul de reconectare îl verifică acum și el (b7745484a).
Conectarea unei plăci nu mai suprascrie ocazional un program Hello World în care ai scris, prin compararea documentului activ cu un instantaneu original capturat la deschidere, în loc să se bazeze pe indicatorul de modificare nesigur înainte de sincronizarea automată a exemplului specific senzorului (6f4539d44).
Derularea în sus în terminalul serial în timpul ieșirii continue rapide nu mai readuce brusc vizualizarea la partea de jos: căile de adăugare urmează acum indicatorul persistent de intenție de derulare a utilizatorului, în loc să rededucă „la partea de jos” dintr-o poziție a barei de derulare pe care fiecare fragment tocmai o re-fixase (9aea0f1a2).
Escapeînchide acum în mod fiabil dialogul Code Profiler indiferent de ce widget secundar are focalizarea (203ffd1e6).Pe macOS, meniul global și scurtăturile de tastatură ale comenzilor funcționează acum în întreaga aplicație, nu doar atunci când editorul avea focalizarea, prin atașarea barei de meniu ascunse la fereastra principală pe fiecare platformă (6d52cbe73).
Interpretorul Python inclus este acum forțat ca implicit la fiecare lansare, astfel încât un implicit învechit, păstrat anterior, nu mai dezactivează silențios serverul de limbaj Python (completarea și sugestiile de apel) (1d5069a52).
A fost consolidată operațiunea de I/O a setărilor OpenMV împotriva reintrării:
beginGroup/endGrouppe obiectul de setări globale partajat (care generează dialoguri modale și rulează bucle de evenimente imbricate) sunt înlocuite cu căi de chei complete, astfel încât un acces reintrant la setări în timpul unui dialog modal nu mai poate plasa greșit cheile sub grupul greșit. Căile de pe disc sunt identice la nivel de octet, deci setările utilizatorilor existenți sunt păstrate exact (91e78a9e3, f4bb9f48c).A fost remediată o regresie în care mai multe dialoguri și asistenți care primesc obiectul de setări partajat efectuau operațiuni de I/O cu chei simple la rădăcina setărilor în loc de sub
OpenMV/, pierzând geometria ferestrei, divizorul și starea expandată ale model zoo-ului, precum și starea celor șase dialoguri de încărcare (dfu-util, imx, bossac, alif, picotool și ST Cube Programmer) împreună cu opțiunile compilatoarelor mpy-cross, vela și ST Edge AI; grupul este acum integrat în fiecare cheie, astfel încât se folosește calea corectă (258448bdf).
Suport pentru platforme și instrumente¶
Bază Qt Creator: 14.0.2.
OpenMV IDE a fost actualizat la versiunea 4.8.11.
Modificări care afectează compatibilitatea¶
Niciuna. Toate modificările sunt remedieri de erori și îmbunătățiri suprapuse peste baza Qt Creator 14.0.2 existentă; proiectele și fluxurile de lucru existente nu sunt afectate.