v1.7.0¶
v1.7.0 fügt das Chunking und Reassembly von Framebuffern über die serielle Verbindung hinzu, sodass große Einzelbilder über die serielle Debug-Verbindung übertragen werden können, macht das Trennen-mit-Reset sicherer, indem das USB-Massenspeicherlaufwerk der Kamera geleert (und unter Windows ausgeworfen) wird, und aktualisiert den Beispielsatz. Das Release basiert auf Qt Creator 4.0.2 (dieselbe Basis wie das vorherige Release) und ergänzt Build-Unterstützung für quergebaute eingebettete Linux-Ziele wie den Raspberry Pi. Es gibt keine Breaking Changes.
Höhepunkte¶
Serielles Framebuffer-Chunking — große Framebuffer-Übertragungen werden in MTU-große Chunks aufgeteilt und in einem Pixelpuffer wieder zusammengesetzt, sodass große Einzelbilder über die serielle Debug-Verbindung übertragen werden können.
Sichereres Trennen-mit-Reset — das USB-Massenspeicherlaufwerk der Kamera wird vor dem Reset geleert (und unter Windows zwangsweise ausgeworfen), sodass das Dateisystem zuerst synchronisiert wird.
Atomares Speichern von Dateien —
main.pyund Keypoint-Dateien werden atomar geschrieben, was Beschädigungen verhindert und einen Pfadfehler behebt, dermain.pyan die falsche Stelle schrieb.Raspberry Pi / eingebettetes Linux — Cross-Compile-Build-Unterstützung ist nun enthalten.
Aktualisierte Beispiele — ein Servo-Shield-Satz, neue Feature-Detection-Demos sowie Image-Reader-/Writer-Videobeispiele.
Neue Funktionen¶
Serielles Framebuffer-Chunking und -Reassembly. Framebuffer-Übertragungen werden in MTU-große Chunks aufgeteilt und in einem Pixelpuffer wieder zusammengesetzt, sodass große Einzelbilder über die serielle Debug-Verbindung mit einer Standard-MTU übertragen werden können. Ein Laufzeit-Handshake zur automatischen MTU-Aushandlung wurde hinzugefügt, dessen Firmware-Versionsgrenze auf 2.5.0 gesetzt ist, passend zur 2.5.0-Firmware, die im selben Commit mitgeliefert wird (96458ccef). Die Grenze wurde dann für das Release auf
9.9.9angehoben, was keine ausgelieferte Firmware meldet, sodass Kameras die Standard-MTU verwenden und keine Aushandlung stattfindet (abd1dacb9).Leeren/Auswerfen beim Trennen-mit-Reset. Das Trennen mit Reset leert nun das USB-Massenspeicherlaufwerk der Kamera vor dem Reset: Unter Windows wird das Laufwerk zwangsweise ausgeworfen, während unter Linux und macOS das Dateisystem des Laufwerks synchronisiert wird (
syncfs/sync_volume_np). Bei einem Fehler wird auf allen drei Plattformen ein FehlerFailed to ejectgemeldet (243618791, ff6b15aff, 1865ffd31, 4fd4e89cf).Servo-Shield-Beispiele. Einen Beispielsatz
15-Servo-Shieldhinzugefügt, der PCA9685-gesteuerte Servos demonstriert, einschließlich eines Treiberspca9685.pyund eines Helfersservo.py(abd1dacb9).Neue Feature-Detection-Beispiele.
find_circles(Hough),find_rects(Quad-Threshold),find_numbers(LeNet-Ziffernerkennung) sowie schnelle und robuste Beispiele zur linearen Regression unter09-Feature-Detectionhinzugefügt (abd1dacb9).Video- und Board-Steuerungs-Beispiele. Image-Reader-/Writer-Beispiele zum Aufzeichnen und Wiedergeben von Schnappschuss-Streams von der SD-Karte, ein RTC-Board-Steuerungs-Beispiel und einen On-Camera-Unit-Test-Runner hinzugefügt (abd1dacb9).
Weitere Änderungen und Verbesserungen¶
Den Beispielordner
99-Tests(vormals15-Tests) umbenannt und den Runnerunittests.pyhinzugefügt (abd1dacb9).
Fehlerbehebungen¶
Das Speichern von
main.pyund Keypoint-Dateien gehärtet. Die Schreibvorgänge wurden in (4fd4e89cf) auf atomareFileSaver-Schreibvorgänge (schreiben, dann abschließen) umgestellt, und ein fehlender Pfadtrenner, dermain.pyan die falsche Stelle schrieb, wurde in (1865ffd31) behoben.Die serielle Zuverlässigkeit verbessert, indem der serielle Lesepuffer auf allen Ports auf 1 MB vergrößert und der Lese-Stall-Timeout erhöht wurde, was verworfene Daten bei
QSerialPortadressiert (7f68368dc).Einen Layout-Fehler des Fenster-Splitters behoben, indem
MainWindowexportiert und ein Show-Event-Signal ausgegeben wird, damit das OpenMV-Plugin das Layout wiederherstellen kann, wenn das Hauptfenster angezeigt wird (4895e20b7).
Plattform- und Tool-Unterstützung¶
Qt-Creator-Basis: 4.0.2.
Build-Unterstützung für quergebaute eingebettete Linux-Ziele wie den Raspberry Pi hinzugefügt: stellt Qt-Schriftarten bereit, korrigiert die
chrpath/RPATH-Behandlung, baut Übersetzungen mit Host-Binärdateien und fügt eine fehlendeqml-Abhängigkeit hinzu (73c052fcc, 8f0baa131, 5b9e9e82e, 45011ec2a).Die mitgelieferte OpenMV-Firmware von 2.4.1 auf 2.5.0 aktualisiert (96458ccef).
Die Firmware-Ordner
OMV2/OMV3inOPENMV2/OPENMV3umbenannt und aktualisierte, neu gebaute STM32F427- (OPENMV2) und STM32F765- (OPENMV3) Firmware- und Bootloader-Binärdateien ausgeliefert (abd1dacb9).
Breaking Changes¶
Keine. Dieses Release führt keine für den Anwender sichtbaren Workflow- oder Verhaltensänderungen ein, und bestehende Projekte funktionieren unverändert weiter.