v4.8.9

La v4.8.9 è una release dedicata all’efficienza in idle e all’affidabilità della disconnessione, basata su Qt Creator 14.0.2. Rivede il modo in cui l’IDE monitora l’hardware affinché smetta di effettuare polling quando non accade nulla, ottimizza il percorso di connessione/disconnessione e snellisce il model zoo incluso. In questo intervallo non c’è alcun rebase di Qt Creator, ma sono cambiati alcuni comportamenti predefiniti e nomi di modelli inclusi, quindi rivedi i breaking change qui sotto.

In evidenza

  • Il monitoraggio dell’hardware basato su eventi sostituisce il polling continuo dei dispositivi: l’IDE ora ferma i suoi timer di scansione quando è in idle e riscansiona le porte seriali e le unità solo in risposta a eventi reali di collegamento/scollegamento USB e di montaggio/smontaggio disco, riducendo drasticamente l’uso di CPU e risorse in idle.

  • Timer in idle subordinati all’attività: il timer degli eventi del frame buffer (in precedenza attivato ogni 1ms) ora viene eseguito solo quando connesso, e il timer di lampeggio del cursore del terminale (500ms) ora viene eseguito solo quando il terminale è a fuoco.

  • Sincronizzazione in background degli import disattivata per impostazione predefinita: la sincronizzazione automatica delle cartelle di import Examples e Documents/OpenMV è ora disabilitata e il suo interruttore nel menu è nascosto, così l’IDE non riscansiona più continuamente quelle cartelle.

  • Disconnessione più rapida e affidabile: la porta seriale viene chiusa e la camera liberata immediatamente, i timeout del protocollo sono stati ridotti e una camera bloccata ora si ripristina invece di restare in stallo.

  • Pulsante di modalità del frame buffer più chiaro che mostra JPG Mode o RAW Mode per rendere evidente a colpo d’occhio l’attuale stato di compressione.

Nuove funzionalità

  • Monitoraggio nativo degli eventi hardware tramite un nuovo HardwareMonitor che emette hardwareEventDetected usando IOKit e DiskArbitration su macOS, una finestra message-only WM_DEVICECHANGE su Windows e un socket netlink NETLINK_KOBJECT_UEVENT su Linux. I timer di scansione seriale e di scansione delle unità sono ora subordinati a una finestra di scansione di 10s che si riavvia a ogni evento (a6612fec9, 462b55f7b, 17c2e93c7).

Altre modifiche e miglioramenti

  • Il timer di elaborazione degli eventi del frame buffer (in precedenza attivato ogni 1ms) viene ora avviato alla connessione e fermato alla disconnessione, e il timer di lampeggio del cursore del terminale (500ms) ora si avvia e si ferma quando il terminale acquisisce/perde il fuoco anziché restare sempre in esecuzione (a02afea53).

  • La sincronizzazione automatica delle cartelle di import Examples e Documents/OpenMV è disabilitata per impostazione predefinita e l’interruttore è nascosto; i timer di scansione delle cartelle non si avviano più all’inizializzazione e vengono eseguiti solo quando l’azione (ora nascosta) è abilitata (478f83e97).

  • Il pulsante di commutazione del formato del frame buffer ora mostra JPG Mode quando la compressione JPEG è attiva e RAW Mode quando è disattivata (c48831224).

  • Alla connessione, l’IDE ora applica sempre il valore predefinito della scheda con preferenza JPEG per il frame buffer anziché ripristinare la scelta JPG/RAW per scheda salvata in precedenza (c48831224).

Correzioni di bug

  • La disconnessione ora chiude la porta seriale e libera la camera (e la porta) inline in close(), rendendo la disconnessione più rapida e affidabile (1e8941080, 9d31bcf80).

  • Il timer di idle seriale viene ora fermato e il flag del protocollo v2 azzerato alla chiusura della porta, correggendo il comportamento del timer di idle obsoleto dopo la disconnessione (4bd2fd9ea).

  • I timeout dei comandi di protocollo sono stati ottimizzati (timeout di apertura ridotto da 5s a 2s, la risincronizzazione e CHANNEL_SIZE usano un timeout breve di 1s) e ogni comando seriale ora elimina l’oggetto camera in caso di errore, così una camera bloccata si ripristina e si disconnette più rapidamente invece di restare in stallo (04aa6aea3).

  • Corretto un problema di blocco/stallo durante l’arresto di uno script: un evento di script arrestato ora azzera anche lo stato degli eventi di frame e reimposta i timer di frame-ready (3695b0704).

  • Il protocollo ora tollera letture parziali dalla camera, restituendo il payload o il testo parziale invece di scartarlo o generare un errore (0c8ccd58e).

Supporto di piattaforme e strumenti

  • Base Qt Creator: 14.0.2.

  • Le schede che combinano un modulo AE3 o N6 con un sensore PAG7936 o PS5520 ottengono ora il valore predefinito QVGA più alto (in precedenza solo AE3 + PAG7936), così gli esempi interessati passano automaticamente da QQVGA a QVGA (fcc0c3227).

  • Il model zoo ST MoveNet per la stima della posa incluso è stato ripulito: le varianti per-tensor ridondanti (_pt) e i duplicati singlepose/st_movenet sono stati rimossi, e i modelli per-channel heatmap superstiti sono stati rinominati in movenet_singlepose_192, movenet_singlepose_224 e movenet_singlepose_256 (18f66c4c1).

  • Rimosso il modello di segmentazione semantica DeepLabV3 incluso e i relativi asset di esempio dal model zoo (a929e0dc1).

Breaking change

Modifiche al comportamento visibile all’utente e agli asset inclusi tra la v4.8.8 e la v4.8.9.

  • Alla connessione, il frame buffer ora usa sempre il valore predefinito della scheda con preferenza JPEG e ignora qualsiasi scelta JPG/RAW per scheda salvata in precedenza (c48831224).

  • La sincronizzazione in background delle cartelle di import Examples e Documents/OpenMV è disabilitata per impostazione predefinita e il suo interruttore è nascosto (478f83e97).

  • Diversi modelli inclusi sono stati rimossi o rinominati: il modello di segmentazione semantica DeepLabV3 è stato eliminato, e i modelli ST MoveNet sono stati snelliti e rinominati in movenet_singlepose_192/224/256. Gli script che fanno riferimento ai vecchi nomi di file dei modelli devono essere aggiornati (a929e0dc1, 18f66c4c1).