Zu Deiner Ausgangsfrage:
(31.01.2014 14:20 )Mr. B schrieb: Ich frage mich, ob es möglich ist in einer Schleife auf X Teilnehmerevents zu warten - diese dann meinetwegen in eine query schieben, um sie dann nacheinander abzuarbeiten (denn die Daten können natürlich auch zeitgleich eintreffen).
VISA-Read verhält sich schon von Natur aus so wie man das von Events her kennt - d.h. es wartet und wartet, bis etwas ganz Bestimmtes eintritt. Das kann sein: a) Zeilenendezeichen eingetroffen (falls Zeilenende-Steuerung konfiguriert, sehr zu empfehlen!). b) Die per Eingangsbelegung festgelegte Anzahl von Bytes befindet sich im Buffer c) Timeout ist erreicht (Gibt es so auch bei der Event-Struktur, aber es wird eigentlich nicht als Event gezählt)
Eine extra Event-Struktur wäre da doppelt gemopppelt.
Man kann diese Ereignsisteuerung aber außer Verkehr setzten - und von Anfängern wird das regelmäßig so gemacht und es wird hier auch teilweise vorgeschlagen, manchmal auch zu Recht . Z.B so: Vor Ausführung von VISA-Read wird nachgeschaut was im Puffer ist und dann immer genau das gelesen. Entweder es wird vorher genügend lange gewartet, damit alles was man erwartet auch schon im Buffer ist, oder es wird so lange gepollt, bis man alles zusammen hat.
Wenn Du mehrere COMs hast und Du willst nicht pollen, dann geht das nicht in
einer Schleife, sondern nur in parallelen Schleifen. Es muß dann überall einen Timeout geben, damit man die Schleifen auch mal beenden kann.