v4.8.9

v4.8.9 ist eine auf Qt Creator 14.0.2 basierende Version mit Schwerpunkt auf Leerlauf-Effizienz und Trennungs-Zuverlässigkeit. Sie überarbeitet, wie die IDE auf Hardware achtet, sodass sie das Polling stoppt, wenn nichts passiert, strafft den Verbindungs-/Trennungspfad und bereinigt den mitgelieferten Model Zoo. In diesem Bereich gibt es keine Qt-Creator-Neubasierung, aber einige Standardverhalten und mitgelieferte Modellnamen haben sich geändert, lesen Sie daher die Breaking Changes weiter unten.

Highlights

  • Ereignisgesteuerte Hardware-Überwachung ersetzt das kontinuierliche Geräte-Polling: Die IDE stoppt nun ihre Scan-Timer im Leerlauf und scannt serielle Ports und Laufwerke nur noch als Reaktion auf reale USB-Plug/Unplug- und Datenträger-Mount/Dismount-Ereignisse erneut, was die Leerlauf-CPU- und Ressourcennutzung drastisch senkt.

  • Leerlauf-Timer an Aktivität gekoppelt: Der Framebuffer-Ereignis-Timer (der früher jede 1 ms auslöste) läuft jetzt nur noch, während eine Verbindung besteht, und der Cursor-Blink-Timer des Terminals (500 ms) läuft jetzt nur noch, während das Terminal fokussiert ist.

  • Hintergrund-Importsynchronisierung standardmäßig deaktiviert: Die automatische Synchronisierung der Importordner Examples und Documents/OpenMV ist nun deaktiviert und ihr Menüschalter ausgeblendet, sodass die IDE diese Ordner nicht mehr kontinuierlich neu durchsucht.

  • Schnelleres, zuverlässigeres Trennen: Der serielle Port wird geschlossen und die Kamera sofort freigegeben, Protokoll-Timeouts wurden heruntergeregelt, und eine hängende Kamera erholt sich nun, anstatt zu blockieren.

  • Klarere Framebuffer-Modus-Schaltfläche, die JPG Mode oder RAW Mode anzeigt, um den aktuellen Komprimierungszustand auf einen Blick erkennbar zu machen.

Neue Funktionen

  • Native Hardware-Ereignisüberwachung über einen neuen HardwareMonitor, der hardwareEventDetected aussendet — unter Verwendung von IOKit und DiskArbitration unter macOS, eines reinen Nachrichtenfensters WM_DEVICECHANGE unter Windows und eines Netlink-Sockets NETLINK_KOBJECT_UEVENT unter Linux. Die Serial-Scan- und Drive-Scan-Timer sind nun an ein 10-s-Scan-Fenster gekoppelt, das bei jedem Ereignis neu startet (a6612fec9, 462b55f7b, 17c2e93c7).

Weitere Änderungen und Verbesserungen

  • Der Framebuffer-Ereignisverarbeitungs-Timer (der früher jede 1 ms auslöste) wird nun beim Verbinden gestartet und beim Trennen gestoppt, und der Cursor-Blink-Timer des Terminals (500 ms) startet und stoppt nun beim Terminal-Fokuswechsel statt durchgehend zu laufen (a02afea53).

  • Die automatische Synchronisierung der Importordner Examples und Documents/OpenMV ist standardmäßig deaktiviert und der Schalter ist ausgeblendet; die Ordner-Scan-Timer starten nicht mehr bei der Initialisierung und laufen nur noch, wenn die (jetzt ausgeblendete) Aktion aktiviert ist (478f83e97).

  • Die Umschalt-Schaltfläche für das Framebuffer-Format zeigt nun JPG Mode an, wenn die JPEG-Komprimierung aktiviert ist, und RAW Mode, wenn sie deaktiviert ist (c48831224).

  • Beim Verbinden wendet die IDE nun stets den JPEG-bevorzugten Standardwert der Platine für den Framebuffer an, anstatt die zuvor gespeicherte platinenspezifische JPG/RAW-Auswahl wiederherzustellen (c48831224).

Fehlerbehebungen

  • Beim Trennen wird nun der serielle Port geschlossen und die Kamera (sowie der Port) inline in close() freigegeben, was das Trennen schneller und zuverlässiger macht (1e8941080, 9d31bcf80).

  • Der serielle Leerlauf-Timer wird nun gestoppt und das v2-Protokoll-Flag gelöscht, wenn der Port geschlossen wird, wodurch veraltetes Leerlauf-Timer-Verhalten nach dem Trennen behoben wird (4bd2fd9ea).

  • Die Timeouts der Protokollbefehle wurden angepasst (Öffnungs-Timeout von 5 s auf 2 s gesenkt, Resync und CHANNEL_SIZE verwenden ein kurzes 1-s-Timeout), und jeder serielle Befehl verwirft nun bei einem Fehler das Kameraobjekt, sodass eine hängende Kamera sich schneller erholt und trennt, anstatt zu blockieren (04aa6aea3).

  • Ein Sperr-/Hängeproblem beim Stoppen eines Skripts wurde behoben: Ein Script-Stopped-Ereignis löscht nun auch den Frame-Ereignis-Zustand und setzt die Frame-Ready-Timer zurück (3695b0704).

  • Das Protokoll toleriert nun kurze Lesevorgänge von der Kamera und gibt die teilweise empfangene Nutzlast oder den Text zurück, anstatt sie zu verwerfen oder einen Fehler auszulösen (0c8ccd58e).

Plattform- und Werkzeugunterstützung

  • Qt-Creator-Basis: 14.0.2.

  • Platinen, die ein AE3- oder N6-Modul mit einem PAG7936- oder PS5520-Sensor kombinieren, erhalten nun den höheren QVGA-Standardwert (zuvor nur AE3 + PAG7936), sodass betroffene Beispiele automatisch von QQVGA auf QVGA aufgewertet werden (fcc0c3227).

  • Der mitgelieferte Model Zoo für die ST-MoveNet-Posenschätzung wurde bereinigt: Redundante Per-Tensor-Varianten (_pt) und doppelte singlepose-/st_movenet-Varianten wurden entfernt, und die verbliebenen Per-Channel-Heatmap-Modelle wurden in movenet_singlepose_192, movenet_singlepose_224 und movenet_singlepose_256 umbenannt (18f66c4c1).

  • Das mitgelieferte DeepLabV3-Modell für semantische Segmentierung und seine Beispieldateien wurden aus dem Model Zoo entfernt (a929e0dc1).

Breaking Changes

Für den Benutzer sichtbare Verhaltens- und Asset-Änderungen zwischen v4.8.8 und v4.8.9.

  • Beim Verbinden verwendet der Framebuffer nun stets den JPEG-bevorzugten Standardwert der Platine und ignoriert jede zuvor gespeicherte platinenspezifische JPG/RAW-Auswahl (c48831224).

  • Die Hintergrundsynchronisierung der Importordner Examples und Documents/OpenMV ist standardmäßig deaktiviert und ihr Schalter ist ausgeblendet (478f83e97).

  • Mehrere mitgelieferte Modelle wurden entfernt oder umbenannt: Das DeepLabV3-Modell für semantische Segmentierung ist verschwunden, und die ST-MoveNet-Modelle wurden ausgedünnt und in movenet_singlepose_192/224/256 umbenannt. Skripte, die auf die alten Modelldateinamen verweisen, müssen aktualisiert werden (a929e0dc1, 18f66c4c1).