v4.8.9#

v4.8.9 este o versiune dedicată eficienței în repaus și fiabilității deconectării, construită pe Qt Creator 14.0.2. Revizuiește modul în care IDE-ul monitorizează hardware-ul, astfel încât să oprească interogarea atunci când nu se întâmplă nimic, optimizează calea de conectare/deconectare și elimină modele din colecția inclusă. Nu există nicio rebază Qt Creator în acest interval, însă câteva comportamente implicite și nume de modele incluse s-au schimbat, așa că analizați schimbările incompatibile de mai jos.

Aspecte importante#

  • Monitorizarea hardware bazată pe evenimente înlocuiește interogarea continuă a dispozitivelor: IDE-ul își oprește acum temporizatoarele de scanare când este inactiv și rescanează porturile seriale și unitățile doar ca răspuns la evenimente reale de conectare/deconectare USB și de montare/demontare a discurilor, reducând drastic utilizarea procesorului și a resurselor în repaus.

  • Temporizatoare în repaus condiționate de activitate: temporizatorul de evenimente al tamponului de cadre (frame buffer) (care anterior se declanșa la fiecare 1ms) rulează acum doar cât timp este conectat, iar temporizatorul de clipire a cursorului terminalului (500ms) rulează acum doar cât timp terminalul este focalizat.

  • Sincronizarea importurilor în fundal dezactivată implicit: sincronizarea automată a folderelor de import Examples și Documents/OpenMV este acum dezactivată, iar comutatorul său din meniu este ascuns, astfel încât IDE-ul nu mai rescanează continuu acele foldere.

  • Deconectare mai rapidă și mai fiabilă: portul serial este închis și camera este eliberată imediat, expirările protocolului au fost reduse, iar o cameră blocată se recuperează acum în loc să rămână suspendată.

  • Buton mai clar pentru modul tamponului de cadre (frame buffer), care afișează JPG Mode sau RAW Mode pentru a face evident dintr-o privire starea curentă de compresie.

Funcții noi#

  • Monitorizare nativă a evenimentelor hardware printr-un nou HardwareMonitor care emite hardwareEventDetected folosind IOKit și DiskArbitration pe macOS, o fereastră dedicată mesajelor WM_DEVICECHANGE pe Windows și un socket netlink NETLINK_KOBJECT_UEVENT pe Linux. Temporizatoarele de scanare serială și de scanare a unităților sunt acum condiționate de o fereastră de scanare de 10s care repornește la fiecare eveniment (a6612fec9, 462b55f7b, 17c2e93c7).

Alte modificări și îmbunătățiri#

  • Temporizatorul de procesare a evenimentelor tamponului de cadre (frame buffer) (care anterior se declanșa la fiecare 1ms) este acum pornit la conectare și oprit la deconectare, iar temporizatorul de clipire a cursorului terminalului (500ms) pornește și se oprește acum la focalizarea/defocalizarea terminalului în loc să ruleze mereu (a02afea53).

  • Sincronizarea automată a folderelor de import Examples și Documents/OpenMV este dezactivată implicit, iar comutatorul este ascuns; temporizatoarele de scanare a folderelor nu mai pornesc la inițializare și rulează doar când acțiunea (acum ascunsă) este activată (478f83e97).

  • Butonul de comutare a formatului tamponului de cadre (frame buffer) afișează acum JPG Mode când compresia JPEG este activă și RAW Mode când este dezactivată (c48831224).

  • La conectare, IDE-ul aplică acum întotdeauna valoarea implicită JPEG-preferată a plăcii pentru tamponul de cadre (frame buffer) în loc să restaureze alegerea JPG/RAW per placă salvată anterior (c48831224).

Remedieri de erori#

  • Deconectarea închide acum portul serial și eliberează camera (și portul) direct în close(), făcând deconectarea mai rapidă și mai fiabilă (1e8941080, 9d31bcf80).

  • Temporizatorul serial în repaus este acum oprit, iar indicatorul protocolului v2 este șters la închiderea portului, remediind comportamentul învechit al temporizatorului în repaus după deconectare (4bd2fd9ea).

  • Expirările comenzilor de protocol au fost ajustate (expirarea la deschidere a fost redusă de la 5s la 2s, resincronizarea și CHANNEL_SIZE folosesc o expirare scurtă de 1s), iar fiecare comandă serială elimină acum obiectul camerei în caz de eșec, astfel încât o cameră blocată se recuperează și se deconectează mai rapid în loc să rămână suspendată (04aa6aea3).

  • A fost remediată o problemă de blocare/suspendare la oprirea unui script: un eveniment de oprire a scriptului șterge acum și starea evenimentelor de cadre și resetează temporizatoarele de pregătire a cadrelor (3695b0704).

  • Protocolul tolerează acum citirile scurte de la cameră, returnând încărcătura utilă parțială sau textul în loc să o ignore sau să genereze eroare (0c8ccd58e).

Suport pentru platforme și instrumente#

  • Bază Qt Creator: 14.0.2.

  • Plăcile care combină un modul AE3 sau N6 cu un senzor PAG7936 sau PS5520 primesc acum valoarea implicită QVGA mai mare (anterior doar AE3 + PAG7936), astfel încât exemplele afectate se actualizează automat de la QQVGA la QVGA (fcc0c3227).

  • Colecția inclusă de modele ST MoveNet pentru estimarea posturii a fost curățată: variantele redundante per tensor (_pt) și variantele duplicate singlepose/st_movenet au fost eliminate, iar modelele heatmap per canal rămase au fost redenumite în movenet_singlepose_192, movenet_singlepose_224 și movenet_singlepose_256 (18f66c4c1).

  • A fost eliminat modelul inclus DeepLabV3 pentru segmentare semantică și activele sale de exemplu din colecția de modele (a929e0dc1).

Schimbări incompatibile#

Modificări de comportament vizibile pentru utilizator și ale activelor incluse între v4.8.8 și v4.8.9.

  • La conectare, tamponul de cadre (frame buffer) folosește acum întotdeauna valoarea implicită JPEG-preferată a plăcii și ignoră orice alegere JPG/RAW per placă salvată anterior (c48831224).

  • Sincronizarea în fundal a folderelor de import Examples și Documents/OpenMV este dezactivată implicit, iar comutatorul său este ascuns (478f83e97).

  • Mai multe modele incluse au fost eliminate sau redenumite: modelul DeepLabV3 pentru segmentare semantică a dispărut, iar modelele ST MoveNet au fost reduse și redenumite în movenet_singlepose_192/224/256. Scripturile care fac referire la vechile nume de fișiere ale modelelor trebuie actualizate (a929e0dc1, 18f66c4c1).