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 bestanden —
main.py- en keypoint-bestanden worden atomisch geschreven, wat corruptie voorkomt en een padfout oplost diemain.pynaar 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 foutFailed to ejectwordt 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 eenpca9685.py-driver en eenservo.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 onder09-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(voorheen15-Tests) hernoemd en deunittests.py-runner toegevoegd (abd1dacb9).
Bugfixes¶
Het opslaan van
main.py- en keypoint-bestanden geharden. De schrijfacties werden omgezet naar atomischeFileSaver-schrijfacties (schrijven en daarna finaliseren) in (4fd4e89cf), en een ontbrekend padscheidingsteken datmain.pynaar 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
QSerialPortaanpakt (7f68368dc).Een lay-outstoring van de venstersplitter gecorrigeerd door
MainWindowte 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 ontbrekendeqml-afhankelijkheid toe (73c052fcc, 8f0baa131, 5b9e9e82e, 45011ec2a).De meegeleverde OpenMV-firmware bijgewerkt van 2.4.1 naar 2.5.0 (96458ccef).
De firmwaremappen
OMV2/OMV3hernoemd naarOPENMV2/OPENMV3en 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.