Hallo zusammen,
ich schreibe gerade ein Nadeladapter-Prüfprogramm für Platinen in C#.
Als Prüfgerät dient der Multimetereinsatz eines Agilent 34972. Das ganze
spreche ich per VISA-Schnittstelle über USB an.
Soweit funktioniert das auch ganz gut, eine Sache wäre aber noch
optimierbar bzw. ist mir auch einfach nicht ganz klar.
Möchte ich eine Spannung Messen mach ich das aktuell beispielsweise mit
folgendem Code:
1 | agilent_string = "MEASure:VOLTage:DC? 100, 0.00003, (@101)\n";
|
2 | viError = visa32.viPrintf(session, agilent_string);
|
3 | Thread.Sleep(3000);
|
4 | viError = visa32.viScanf(session, "%lf", value_d);
|
Das funktioniert, is aber unschön, weil die 3 Sekunden Wartezeit 1.
unflexibel sind und 2. das ganze schneller laufen könnte. Rufe ich das
viscanf zu schnell auf, kommt mist.
Nun drängt sich natürlich die Frage auf, ob es da nicht einen Befehl
gibt, wo das gewarte ein Ende hat und ich direkt aus der Funktion
zurückkomme wenn das Gerät gelesen hat. Quasi ein kombiniertes
printf&scanf, und die Wartezeit dazwischen wird automatisch eingehalten.
Sorry, falls es eine doofe Frage is, aber es is das erste mal, dass ich
mit der VISA-Schnittstelle arbeite.
Beste Grüße und vielen Dank,
Fabian