v2.1.0 - 2026.07.17
Neu:
-
Ein einfacherer Weg, eine Kamera auszulösen. Jede Kameraoperation (capture, save, load, remove, list-images) kann jetzt mit einem einzelnen Befehl unter
<camera id>/control/<operation>/executegestartet werden. Der Befehl führt die Operation aus und kehrt erst zurück, wenn sie abgeschlossen ist; Sie müssen also nicht mehr auf ein "ready"-Signal warten und dann einen "request" senden. Die Ergebnisse erscheinen genau dort, wo sie vorher erschienen, und der Ausgang wird aufstatus/codeundstatus/textgemeldet. Der bekannte ready/request-Handshake funktioniert weiterhin, bestehende Programme müssen also nicht geändert werden.Connect, Disconnect und Reset werden bewusst nicht auf diese Weise angeboten. Sie können mehrere Sekunden dauern, und ein wartender Befehl würde meist aufgeben, bevor die Kamera den Erfolg meldet. Verwenden Sie für diese drei bitte weiterhin den ready/request-Handshake. Ist die Kamera bereits mit einer anderen Operation belegt, wird der Befehl mit DL_TOO_MANY_OPERATIONSabgelehnt, statt in eine Warteschlange gestellt zu werden. -
Ein anzeigbares Vorschaubild. Schalten Sie
<camera id>/input/preview/enableein, und jedes erfolgreiche Capture oder Load veröffentlicht zusätzlich ein direkt anzeigbares PNG-Bild auf<camera id>/output/preview/encoded-data. Das ist nützlich, um zu prüfen, was die Kamera tatsächlich sieht, denn die normale Bildausgabe sind Sensor-Rohdaten, die die meisten Bildbetrachter nicht anzeigen können. Das Format wird auf<camera id>/output/preview/encoded-formatgenannt und ist derzeit immer PNG.Die Vorschau kann mit
<camera id>/input/preview/scaleverkleinert werden (ein Wert zwischen 0.0 und 1.0, 1.0 bedeutet volle Größe). Eine kleinere Vorschau kostet weniger Zeit pro Zyklus, um den Preis geringerer Details. Werte außerhalb des zulässigen Bereichs werden als volle Größe behandelt.Die Vorschau ist standardmäßig ausgeschaltet, und solange sie aus ist, kostet sie keine Zeit. Das Erzeugen einer Vorschau lässt auch nie ein Capture fehlschlagen: Kann sie nicht erzeugt werden, wird eine Warnung in das Protokoll geschrieben, und die vorherige Vorschau bleibt bestehen. Ob eine Vorschau zum neuesten Bild gehört, erkennen Sie durch Vergleich von
output/package-identifier.
Geändert:
-
Reset weist jetzt nach, dass die Kamera wirklich funktioniert. Bisher trennte Reset die Kamera nur. Trennen gelingt immer - auch bei einer Kamera, die physisch abgezogen wurde -, sodass Reset Erfolg für eine Kamera melden konnte, die tatsächlich tot war, und Bediener verständlicherweise annahmen, sie sei einsatzbereit. Reset trennt jetzt, verbindet erneut, um nachzuweisen, dass die Kamera erreichbar ist, trennt dann noch einmal und gibt eine getrennte Kamera zurück. Rufen Sie wie bisher danach selbst
control/connect-cameraauf. Ist die Kamera nicht erreichbar, meldet ResetfailedToConnectToCamera, nennt die Kamera instatus/textund meldet das Problem weiter, bis ein Reset tatsächlich gelingt. Da Reset jetzt einen vollständigen Verbindungstest durchführt, dauert es entsprechend länger als bisher.
Fehlerbehebung:
-
Eine Kamera, die abgezogen und wieder angeschlossen wurde, lässt sich jetzt ohne Neustart der Anwendung wiederherstellen. Bisher verwendete der Treiber weiter die alte Verbindung zu einer Kamera, die das Netzwerk verlassen hatte, und jeder Verbindungsversuch schlug fehl, bis die Anwendung neu gestartet wurde. Reset sucht die Kamera jetzt erneut und versucht es einmal noch, was eine wieder angeschlossene Kamera zurückbringt. Die Suche erfolgt nur, nachdem ein Verbindungsversuch bereits fehlgeschlagen ist, sodass ein Reset einer funktionierenden Kamera die anderen Kameras nicht stört.
-
Falsche Bildgröße bei 12-Bit-Bildern. Bei den 12-Bit-Formaten (mono12, bayer_rg12, rgb12, bgr12) gab
output/image/datadoppelt so viele Bytes an, wie das Bild tatsächlich enthält, und die zusätzlichen Bytes waren beliebiger Speicherinhalt. 8-Bit-Formate waren nicht betroffen. -
Absturz beim Verbinden im Simulationsmodus.
-
Simulierte Bilder verschiedener Kameras konnten vertauscht werden. Das Speichern des aktuellen Bildes und das Laden eines Simulationsbildes verwenden jetzt einen nach der Kamera benannten Unterordner, sodass jede Kamera ihre eigenen Bilder behält.