' schrieb:An der Stelle weis ich nicht genau wie du das meinst. Wann oder besser in welchen Fall benötige ich beispielsweise eine Synchrone Abarbeitung?
In meinem Programm werden von den 3 angeschlossenen Modulen nur Werte gelesen, zur Anzeige gebracht und gleichzeitig in ein Binary-File geschrieben...
Also Deine Eingangsschlaufen lesen beispielsweise alle 10 ms einen Wert, weil die Instrumente diese einfach so "herausschreien". Wenn Du in Deiner Hauptschlaufe nun alle diese Werte haben möchtest (etwa weil der dynamische Verlauf davon wichtig ist) dann musst Du synchronisieren (am Besten mit Queues oder auch LV2 Style Globals).
Wenn es Dir aber nur darum geht ab und an den aktuellen Wert auf Disk zu schreiben und alle anderen Werte ohne Probleme verloren gehen können, dann ist die von Dir gemachte Entkopplung in Ordnung.
Ein Problem solltest Du aber nicht vernachlässigen. So wie Du es jetzt getan hast merkt Deine Hauptschlaufe wohl nicht wenn plötzlich keine Daten mehr kommen, etwa weil das Kabel unterbrochen ist oder das Instrument keinen Strom mehr hat. Du loggst dann einfach stundenlang den letzten gemessenen Wert oder vielleicht 0 je nach dem wie Du die Leseschlaufe mit Dekodierung programmiert hast. Das würde ich dadurch lösen, dass ich im Falle eines Fehlers beim Lesen explizit einen Wert NaN (Not a Number) in die lokale Variable schreiben würde. Dann siehst Du im log automatisch wenn das Instrument nicht mehr arbeitete wie es sollte.
Rolf Kalbermatter