v1.7.0

v1.7.0 aggiunge il chunking e il riassemblaggio seriale del frame buffer in modo che i frame di grandi dimensioni possano essere trasferiti tramite il collegamento seriale di debug, rende più sicura la disconnessione con reset svuotando (e, su Windows, espellendo) l’unità di archiviazione di massa USB della camera, e rinnova l’insieme degli esempi. La release è basata su Qt Creator 4.0.2 (la stessa base della release precedente) e aggiunge il supporto alla compilazione per target Linux embedded cross-compilati come il Raspberry Pi. Non ci sono modifiche che rompono la compatibilità.

In evidenza

  • Chunking seriale del frame buffer — i trasferimenti di frame buffer di grandi dimensioni vengono suddivisi in chunk delle dimensioni dell’MTU e riassemblati in un buffer di pixel, in modo che i frame di grandi dimensioni possano essere spostati tramite il collegamento seriale di debug.

  • Disconnessione con reset più sicura — l’unità di archiviazione di massa USB della camera viene svuotata prima del reset (e forzatamente espulsa su Windows) in modo che il filesystem venga prima sincronizzato.

  • Salvataggio atomico dei filemain.py e i file dei keypoint vengono scritti in modo atomico, prevenendo la corruzione e correggendo un bug nel percorso che scriveva main.py nella posizione sbagliata.

  • Raspberry Pi / Linux embedded — è ora incluso il supporto alla compilazione cross-compile.

  • Esempi rinnovati — un insieme Servo Shield, nuove demo di rilevamento delle caratteristiche ed esempi video di Image Reader/Writer.

Nuove funzionalità

  • Chunking e riassemblaggio seriale del frame buffer. I trasferimenti del frame buffer vengono suddivisi in chunk delle dimensioni dell’MTU e riassemblati in un buffer di pixel, in modo che i frame di grandi dimensioni possano essere spostati tramite il collegamento seriale di debug usando un MTU predefinito. È stato aggiunto un handshake di auto-negoziazione dell’MTU a runtime con il suo gate sulla versione del firmware impostato a 2.5.0, corrispondente al firmware 2.5.0 incluso nello stesso commit (96458ccef). Il gate è stato poi alzato a 9.9.9 per la release, valore che nessun firmware fornito segnala, quindi le camere usano l’MTU predefinito e non avviene alcuna negoziazione (abd1dacb9).

  • Svuotamento/espulsione alla disconnessione con reset. La disconnessione con reset ora svuota l’unità di archiviazione di massa USB della camera prima del reset: su Windows l’unità viene forzatamente espulsa, mentre su Linux e macOS il filesystem dell’unità viene sincronizzato (syncfs / sync_volume_np). In caso di errore viene segnalato un errore Failed to eject su tutte e tre le piattaforme (243618791, ff6b15aff, 1865ffd31, 4fd4e89cf).

  • Esempi Servo Shield. Aggiunto un insieme di esempi 15-Servo-Shield che dimostra i servocomandi pilotati da PCA9685, incluso un driver pca9685.py e un helper servo.py (abd1dacb9).

  • Nuovi esempi di rilevamento delle caratteristiche. Aggiunti find_circles (Hough), find_rects (quad-threshold), find_numbers (riconoscimento di cifre LeNet) ed esempi di regressione lineare veloce e robusta sotto 09-Feature-Detection (abd1dacb9).

  • Esempi video e di controllo della scheda. Aggiunti esempi Image Reader/Writer per registrare e riprodurre flussi di snapshot dalla scheda SD, un esempio di controllo scheda RTC e un runner di unit test su camera (abd1dacb9).

Altre modifiche e miglioramenti

  • Rinominata la cartella di esempi 99-Tests (precedentemente 15-Tests) e aggiunto il runner unittests.py (abd1dacb9).

Correzioni di bug

  • Reso più robusto il salvataggio di main.py e dei file dei keypoint. Le scritture sono state convertite in scritture atomiche FileSaver (scrittura e poi finalizzazione) in (4fd4e89cf), e un separatore di percorso mancante che scriveva main.py nella posizione sbagliata è stato corretto in (1865ffd31).

  • Migliorata l’affidabilità seriale ingrandendo il buffer di lettura seriale a 1MB su tutte le porte e aumentando il timeout di stallo della lettura, risolvendo la perdita di dati con QSerialPort (7f68368dc).

  • Corretto un difetto di layout dello splitter della finestra esportando MainWindow ed emettendo un segnale di evento di visualizzazione in modo che il plugin OpenMV possa ripristinare il layout quando la finestra principale viene mostrata (4895e20b7).

Supporto piattaforme e strumenti

  • Base Qt Creator: 4.0.2.

  • Aggiunto il supporto alla compilazione per target Linux embedded cross-compilati come il Raspberry Pi: distribuisce i font Qt, corregge la gestione di chrpath/RPATH, compila le traduzioni con binari host e aggiunge una dipendenza qml mancante (73c052fcc, 8f0baa131, 5b9e9e82e, 45011ec2a).

  • Aggiornato il firmware OpenMV incluso da 2.4.1 a 2.5.0 (96458ccef).

  • Rinominate le cartelle del firmware OMV2/OMV3 in OPENMV2/OPENMV3 e forniti binari aggiornati e ricompilati di firmware e bootloader STM32F427 (OPENMV2) e STM32F765 (OPENMV3) (abd1dacb9).

Modifiche che rompono la compatibilità

Nessuna. Questa release non introduce interruzioni di flussi di lavoro o comportamenti visibili all’utente, e i progetti esistenti continuano a funzionare invariati.