Hallo zusammen,
mit einiger Hilfe habe ich eine QMH Struktur zur Erfassung von 3 Messkanälen aufgebaut in die ich nun eine Bildaufnahme via Kamera integriert habe.
Folgendes Problem tritt auf:
Beim Speichern der Messdaten/Bilder werden mehr Bilder erzeugt als aufgenommen werden. Komplett unregelmäßig wird ein Bilder doppelt bis 10fach abgespeichert. Zwischendrin läuft das Programm wieder "gut", dann kommt wieder ein Bild mehrfach.
Zum Aufbau des Programms:
QMH mit 2 Acquire Loops und 1 Logging Loop
Acquire: -> 1 Datenerfassung DAQ -> 1 Bilderfassung --> Die Loops habe ich wegen der unterschiedlicher Frequenz getrennt
Logging: 2 Queues werden befüllt durch die Acquire Loops -> beide werden in einer Schleife geleert
Zur Verdeutlichung ein paar Bilder:
Zunächst ein Ausschnitt aus dem Hauptprogramms mit den drei Loops von oben nach unten: Kamera, Acquire (grüner Loop), Logging (oragner Loop)
Jetzt der Kamera Acquire Loop:
Die Wartezeit regelt die Frames per Second der Kamera, da die Kamera keine Einstellmöglichkeit bezüglich der Aufnahmefrequenz hat.
Zur Detailierung der Kamera noch die Befüllung von Notifier und Queue
und der eigentlich Bilder "Grab"
Die Queues werden zum Speichern der Daten gelesen. Außerdem soll eine Textdatei erstellt werden, die notiert welche Messdaten zu welchem Bild gehören, da zeitlich gesehen schneller Messdaten als Bilder erzeugt werden. Das passiert im Logging Loop folgendermaßen:
Mit dieser Konstellation tritt das oben benannte Problem ein und ich kann nicht nachvollziehen, woran es liegt. Warum hat er Bilder doppelt? Wenn es einmal dequeued wurde, müsste es doch weg sein? Wo bleibt es bestehen? Kann ich die Daten überhaupt so speichern, wenn die Data Queue schneller befüllt wird als die Kamera Queue?
Vielen Dank für eure Hilfe!
VG
Abongile