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
ExamplesundDocuments/OpenMVist 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 ModeoderRAW Modeanzeigt, um den aktuellen Komprimierungszustand auf einen Blick erkennbar zu machen.
Neue Funktionen¶
Native Hardware-Ereignisüberwachung über einen neuen
HardwareMonitor, derhardwareEventDetectedaussendet — unter Verwendung von IOKit und DiskArbitration unter macOS, eines reinen NachrichtenfenstersWM_DEVICECHANGEunter Windows und eines Netlink-SocketsNETLINK_KOBJECT_UEVENTunter 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
ExamplesundDocuments/OpenMVist 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 Modean, wenn die JPEG-Komprimierung aktiviert ist, undRAW 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_SIZEverwenden 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 inmovenet_singlepose_192,movenet_singlepose_224undmovenet_singlepose_256umbenannt (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
ExamplesundDocuments/OpenMVist 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/256umbenannt. Skripte, die auf die alten Modelldateinamen verweisen, müssen aktualisiert werden (a929e0dc1, 18f66c4c1).