v2.3.0 - noch nicht veröffentlicht
Neu:
-
Bild-Stream (experimentell). Eine Kamera kann ihre Bilder jetzt streamen, statt ein Bild pro Capture-Request aufzunehmen.
<camera name>/control/publish/executewendet die Eingabencontrol/publish/input/enableundkeep-latest-outputan. Solange der Stream läuft, veröffentlicht der Cam Driver jedes Bild, das die Kamera liefert, aufcontrol/publish/output/stream/framefür einen Abonnenten, zusammen mit seiner Größe, seinem Pixelformat und seiner Lineage: der Kamera, dem Start des Streams und der Nummer des Bildes darin. Der Cam Driver triggert die Kamera nicht von selbst: Ein Bild kommt bei einem Hardware-Trigger, beicontrol/trigger/executeoder kontinuierlich, solange der Trigger-Modus der Kamera aus ist. Mit fester Rate getriggert lieferte die von uns getestete Kamera jedes Bild mit bis zu 66 Bildern pro Sekunde, gegenüber etwa 34 mitcapture/execute, mit ihremTriggerOverlapin einer Feature-Datei aufPreviousFramegesetzt.keep-latest-outputlegt jedes Bild zusätzlich aufoutput/imageab und zählt es aufoutput/package-identifier, um den Preis einer Kopie pro Bild. Zähler untercontrol/publish/output/stream/statisticszeigen Bilder und Verluste.Jedes Bild wird auf beiden Data Layern geliefert.
setting/settings-hashidentifiziert die Einstellungen, mit denen die Bilder aufgenommen werden, und jeder Frame trägt ihn. Jeder Frame trägt außerdem das Tag des Moduls - den Kameranamen oder das Tag, dascontrol/publish/input/tagvorgibt und das in der Modulkonfigurationsdatei alsstream.taggespeichert wird - und die Anwendungen, die die Bilder verarbeiten, behalten es in der Lineage ihrer Ergebnisse. Der Hash sagt, dass sich die Einstellungen geändert haben, nicht, was sich geändert hat; und dass er einer Änderung eines Kamera-Features folgt, wurde noch nicht mit einer echten Kamera geprüft.Solange der Stream läuft, ist
capturenicht verfügbar:capture/readyistfalse,capture/executeantwortet mitDL_INVALID_OPERATION_MODE, und ein Capture-Request endet mit Status-3, ohne einen Fehler zu speichern. Das Stoppen des Streams verbindet die Kamera erneut, sodasscapture/readybei der von uns getesteten Kamera nach etwa zwei Sekunden zurückkehrt. Siehe Bilder streamen (experimentell). -
Software-Trigger.
<camera name>/control/trigger/executesendet der Kamera einen Software- Trigger, solange sie im Software-Trigger-Modus ist - ihr Trigger-Modus eingeschaltet und ihre Trigger-Quelle Software, gelesen in der eigenen Schreibweise der Kamera - und tut in jedem anderen Modus nichts. Der Befehl ist der kameraeigene,TriggerSoftwareoderSoftwareTrigger. Eine Kamera in diesem Modus ohne einen der beiden, oder die ihn ablehnt, meldet den neuen Status-10012(softwareTriggerFailed). Solange der Bild-Stream läuft, wird eine Kamera ohne Software- Trigger-Modus - eine simulierte Kamera oder eine Plugin-Kamera ohneTriggerSoftware- stattdessen durch ihren eigenen Trigger ausgelöst, ein Bild pro Aufruf. Siehe Software-Trigger. -
Feature-Mappings. Eine Kamera, die ihren Software-Trigger-Befehl, ihren Trigger-Modus oder ihre Trigger-Quelle oder deren Werte anders benennt, erhält ihre eigenen Namen in der Anwendungs-Einstellungsdatei: einen Eintrag unter
featureMappings, benannt über diefeatureMappingIdder Kamera. Das Schema listet die Schlüssel auf. Ein gemappter Name, den die Kamera nicht hat, wird als Warnung protokolliert, und die eingebauten Namen werden verwendet. Siehe Software-Trigger. -
Ein Beispiel der Einstellungen, auf einem PC.
-g, --generate-settings [folder]schreibt die Anwendungs-Einstellungsdatei, eine Beispiel-Moduldatei und ihre Schemas in einen Ordner (standardmäßig den aktuellen), nennt den Ordner, aus dem der Cam Driver seine Einstellungen liest, und beendet sich. Vorhandene Dateien werden nie überschrieben. Siehe Neue Kamera-Einstellungsdateien anlegen. -
Einstellungen auf dem Data Layer.
hdvisionsystems/lumiscan-cam-driver/system/settingszeigt die Einstellungen, mit denen die Anwendung gestartet wurde: die Einstellungsdatei der Anwendung, jede Moduldatei eingebettet in ihre Listemodules, Passwörter als***. Ein Schreibvorgang darauf ändert die Dateien. Die Anwendung prüft die Änderung wie beim Start, speichert sie (die vorherige Datei als.bak) und verweigert dann jede Arbeit, bis sie neu gestartet wird:restart-required, Status-5.hdvisionsystems/lumiscan-cam-driver/system/control/restart/executestartet sie neu. Siehe Einstellungen auf dem Data Layer.
Fehlerbehebung:
-
Der Cam Driver startet wieder auf einer ctrlX CORE. Seit dem Umstieg auf die neue Kommandozeile lehnte er das
-p 8080ab, das sein Snap übergibt, und beendete sich sofort. Er akzeptiert und ignoriert-pjetzt, und das Snap übergibt es nicht mehr. -
Ein Programm, das ein abgelehntes
executeimmer wieder aufruft, überflutet das Protokoll nicht mehr. Jede Ablehnung wurde als eigene Zeile geschrieben, sodass ein Programm, dascapture/executewiederholte, während die Kamera belegt war, etwa 11 MB Protokoll pro Minute schrieb. Für jede Methode und jedes Ergebnis wird die erste Ablehnung protokolliert, danach höchstens eine Zeile alle zehn Sekunden, die angibt, wie viele nicht einzeln protokolliert wurden.