v1.7.0

v1.7.0 voegt het opsplitsen en weer samenvoegen van de seriële framebuffer toe zodat grote frames over de seriële debugverbinding kunnen worden overgedragen, maakt loskoppelen-met-reset veiliger door het USB-massaopslagstation van de camera te flushen (en op Windows uit te werpen), en vernieuwt de voorbeeldenset. De release is gebaseerd op Qt Creator 4.0.2 (dezelfde basis als de vorige release) en voegt buildondersteuning toe voor cross-gecompileerde embedded Linux-doelen zoals de Raspberry Pi. Er zijn geen breaking changes.

Hoogtepunten

  • Seriële framebuffer-opsplitsing — grote framebufferoverdrachten worden opgesplitst in MTU-grote stukken en weer samengevoegd in een pixelbuffer, zodat grote frames over de seriële debugverbinding kunnen worden verplaatst.

  • Veiliger loskoppelen-met-reset — het USB-massaopslagstation van de camera wordt geflusht vóór reset (en op Windows geforceerd uitgeworpen) zodat het bestandssysteem eerst wordt gesynchroniseerd.

  • Atomisch opslaan van bestandenmain.py- en keypoint-bestanden worden atomisch geschreven, wat corruptie voorkomt en een padfout oplost die main.py naar de verkeerde locatie schreef.

  • Raspberry Pi / embedded Linux — cross-compile-buildondersteuning is nu inbegrepen.

  • Vernieuwde voorbeelden — een Servo Shield-set, nieuwe Feature-Detection-demo’s en Image Reader/Writer-videovoorbeelden.

Nieuwe functies

  • Seriële framebuffer-opsplitsing en samenvoeging. Framebufferoverdrachten worden opgesplitst in MTU-grote stukken en weer samengevoegd in een pixelbuffer, zodat grote frames over de seriële debugverbinding kunnen worden verplaatst met een standaard-MTU. Een runtime-MTU-autonegotiation-handshake werd toegevoegd met de firmwareversiegrens ingesteld op 2.5.0, overeenkomend met de 2.5.0-firmware die in dezelfde commit werd meegeleverd (96458ccef). De grens werd vervolgens voor de release verhoogd naar 9.9.9, wat geen geleverde firmware rapporteert, zodat camera’s de standaard-MTU gebruiken en er geen negotiatie plaatsvindt (abd1dacb9).

  • Flushen/uitwerpen bij loskoppelen-met-reset. Loskoppelen met reset flusht nu het USB-massaopslagstation van de camera vóór reset: op Windows wordt het station geforceerd uitgeworpen, terwijl op Linux en macOS het bestandssysteem van het station wordt gesynchroniseerd (syncfs / sync_volume_np). Een fout Failed to eject wordt op alle drie de platforms gerapporteerd bij mislukking (243618791, ff6b15aff, 1865ffd31, 4fd4e89cf).

  • Servo Shield-voorbeelden. Een 15-Servo-Shield-voorbeeldenset toegevoegd die door PCA9685 aangestuurde servo’s demonstreert, inclusief een pca9685.py-driver en een servo.py-helper (abd1dacb9).

  • Nieuwe Feature-Detection-voorbeelden. find_circles (Hough), find_rects (quad-threshold), find_numbers (LeNet-cijferherkenning) en snelle en robuuste lineaire-regressievoorbeelden toegevoegd onder 09-Feature-Detection (abd1dacb9).

  • Video- en boardbesturingsvoorbeelden. Image Reader/Writer-voorbeelden toegevoegd voor het opnemen en afspelen van snapshot-streams vanaf de SD-kaart, een RTC-boardbesturingsvoorbeeld en een on-camera unittest-runner (abd1dacb9).

Overige wijzigingen en verbeteringen

  • De voorbeeldmap 99-Tests (voorheen 15-Tests) hernoemd en de unittests.py-runner toegevoegd (abd1dacb9).

Bugfixes

  • Het opslaan van main.py- en keypoint-bestanden geharden. De schrijfacties werden omgezet naar atomische FileSaver-schrijfacties (schrijven en daarna finaliseren) in (4fd4e89cf), en een ontbrekend padscheidingsteken dat main.py naar de verkeerde locatie schreef werd gecorrigeerd in (1865ffd31).

  • De seriële betrouwbaarheid verbeterd door de seriële leesbuffer op alle poorten te vergroten naar 1MB en de read-stall-timeout te verhogen, wat het verlies van data met QSerialPort aanpakt (7f68368dc).

  • Een lay-outstoring van de venstersplitter gecorrigeerd door MainWindow te exporteren en een show-event-signaal uit te zenden zodat de OpenMV-plugin de lay-out kan herstellen wanneer het hoofdvenster wordt getoond (4895e20b7).

Platform- en toolondersteuning

  • Qt Creator-basis: 4.0.2.

  • Buildondersteuning toegevoegd voor cross-gecompileerde embedded Linux-doelen zoals de Raspberry Pi: implementeert Qt-fonts, corrigeert de afhandeling van chrpath/RPATH, bouwt vertalingen met host-binaries en voegt een ontbrekende qml-afhankelijkheid toe (73c052fcc, 8f0baa131, 5b9e9e82e, 45011ec2a).

  • De meegeleverde OpenMV-firmware bijgewerkt van 2.4.1 naar 2.5.0 (96458ccef).

  • De firmwaremappen OMV2/OMV3 hernoemd naar OPENMV2/OPENMV3 en bijgewerkte, opnieuw gebouwde STM32F427 (OPENMV2)- en STM32F765 (OPENMV3)-firmware- en bootloaderbinaries geleverd (abd1dacb9).

Breaking changes

Geen. Deze release introduceert geen voor de gebruiker zichtbare onderbrekingen in workflow of gedrag, en bestaande projecten blijven ongewijzigd werken.