v1.7.0

v1.7.0 adaugă fragmentarea și reasamblarea serială a tamponului de cadre, astfel încât cadrele mari să poată fi transferate prin legătura serială de depanare, face deconectarea cu resetare mai sigură prin golirea (și, pe Windows, ejectarea) unității de stocare în masă USB a camerei și actualizează setul de exemple. Versiunea se bazează pe Qt Creator 4.0.2 (aceeași bază ca versiunea anterioară) și adaugă suport de compilare pentru ținte Linux încorporate compilate încrucișat, precum Raspberry Pi. Nu există modificări care să afecteze compatibilitatea.

Puncte importante

  • Fragmentarea serială a tamponului de cadre — transferurile mari de tampon de cadre sunt împărțite în fragmente de dimensiunea MTU și reasamblate într-un tampon de pixeli, astfel încât cadrele mari să poată fi mutate prin legătura serială de depanare.

  • Deconectare cu resetare mai sigură — unitatea de stocare în masă USB a camerei este golită înainte de resetare (și ejectată forțat pe Windows), astfel încât sistemul de fișiere să fie mai întâi sincronizat.

  • Salvare atomică a fișierelormain.py și fișierele de puncte-cheie sunt scrise atomic, prevenind coruperea și corectând o eroare de cale care scria main.py în locația greșită.

  • Raspberry Pi / Linux încorporat — este inclus acum suportul de compilare încrucișată.

  • Exemple actualizate — un set Servo Shield, noi demonstrații de detectare a caracteristicilor și exemple video Image Reader/Writer.

Funcționalități noi

  • Fragmentarea și reasamblarea serială a tamponului de cadre. Transferurile de tampon de cadre sunt împărțite în fragmente de dimensiunea MTU și reasamblate într-un tampon de pixeli, astfel încât cadrele mari să poată fi mutate prin legătura serială de depanare folosind un MTU implicit. A fost adăugat un handshake de auto-negociere a MTU-ului în timpul execuției, cu poarta versiunii de firmware setată la 2.5.0, corespunzând firmware-ului 2.5.0 livrat în același commit (96458ccef). Poarta a fost apoi ridicată la 9.9.9 pentru lansare, valoare pe care niciun firmware livrat nu o raportează, astfel încât camerele folosesc MTU-ul implicit și nu are loc nicio negociere (abd1dacb9).

  • Golire/ejectare la deconectarea cu resetare. Deconectarea cu resetare golește acum unitatea de stocare în masă USB a camerei înainte de resetare: pe Windows unitatea este ejectată forțat, în timp ce pe Linux și macOS sistemul de fișiere al unității este sincronizat (syncfs / sync_volume_np). În caz de eșec este raportată o eroare Failed to eject pe toate cele trei platforme (243618791, ff6b15aff, 1865ffd31, 4fd4e89cf).

  • Exemple Servo Shield. A fost adăugat un set de exemple 15-Servo-Shield care demonstrează servomotoare acționate prin PCA9685, incluzând un driver pca9685.py și un ajutor servo.py (abd1dacb9).

  • Noi exemple de detectare a caracteristicilor. Au fost adăugate find_circles (Hough), find_rects (prag cvadruplu), find_numbers (recunoaștere a cifrelor LeNet) și exemple de regresie liniară rapidă și robustă în cadrul 09-Feature-Detection (abd1dacb9).

  • Exemple video și de control al plăcii. Au fost adăugate exemple Image Reader/Writer pentru înregistrarea și redarea fluxurilor de instantanee de pe cardul SD, un exemplu de control al plăcii RTC și un executor de teste unitare pe cameră (abd1dacb9).

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

  • A fost redenumit folderul de exemple 99-Tests (anterior 15-Tests) și a fost adăugat executorul unittests.py (abd1dacb9).

Corectări de erori

  • A fost consolidată salvarea fișierelor main.py și a fișierelor de puncte-cheie. Scrierile au fost comutate la scrieri atomice FileSaver (scriere apoi finalizare) în (4fd4e89cf), iar un separator de cale lipsă care scria main.py în locația greșită a fost corectat în (1865ffd31).

  • A fost îmbunătățită fiabilitatea serială prin mărirea tamponului de citire serială la 1MB pe toate porturile și creșterea timeout-ului de blocare a citirii, adresând datele pierdute cu QSerialPort (7f68368dc).

  • A fost corectat un defect de aspect al separatorului de ferestre prin exportarea MainWindow și emiterea unui semnal de eveniment de afișare, astfel încât pluginul OpenMV să poată restaura aspectul când fereastra principală este afișată (4895e20b7).

Suport pentru platforme și instrumente

  • Bază Qt Creator: 4.0.2.

  • A fost adăugat suport de compilare pentru ținte Linux încorporate compilate încrucișat, precum Raspberry Pi: implementează fonturi Qt, corectează gestionarea chrpath/RPATH, construiește traducerile cu binarele gazdă și adaugă o dependență qml lipsă (73c052fcc, 8f0baa131, 5b9e9e82e, 45011ec2a).

  • A fost actualizat firmware-ul OpenMV livrat de la 2.4.1 la 2.5.0 (96458ccef).

  • Au fost redenumite folderele de firmware OMV2/OMV3 în OPENMV2/OPENMV3 și au fost livrate binare actualizate și recompilate de firmware și bootloader STM32F427 (OPENMV2) și STM32F765 (OPENMV3) (abd1dacb9).

Modificări care afectează compatibilitatea

Niciuna. Această versiune nu introduce întreruperi vizibile pentru utilizator ale fluxului de lucru sau ale comportamentului, iar proiectele existente continuă să funcționeze nemodificate.