Hallo LabVIEWgemeinde,
Ich habe aus den simple client-server Beispielen von LabVIEW mit dem Producer-consumer-template ein Beispiel "gezimmert.
Der Server wartet ewig, bis sich der client meldet. Jetzt fängt er an Daten zu senden (da ich mir über einen grundlegenden Zusammenhang im Unklaren bin, ist dies nur ein Minimalbeispiel. Als "Daten" werden hier nur die Anzahl der Iteration "gesendet".)
Auf dem Client läuft jetzt die Producer-consumer loop. Nur wenn Daten auf der aufgebauten Verbindung ankommen, soll die consumer loop arbeiten.
(Hintergrund: das server VI ist eigentlich ein subVI das auf einem RT-Target liegt. Sobald der user am Host aktuelle Messdaten angezeigt bekommen möchte, "clickt" er auf "call for data" und lässt sich die Daten in einem Graph anzeigen. Dies habe ich wie gesagt hier alles weggelassen...)
Wenn ich auf "call for data" drücke, läuft der "Zähler" auf dem Frontpanel des clientVI wie gewünscht hoch (der server sendet also seine "Daten" und der client verarbeitet sie wie gewünscht.)
Sobald ich auf "IDLE" drücke unterbreche ich die producer-consumer-Verbindung. Ich dachte jetzt, der Server arbeitet ja noch und sendet seine Daten jetzt ins "Leere".
Pustekuchen.... wenn ich nämlich wieder auf "call for data" drücke (und somit die producer-consumer-verbindung wieder aufnehme) beginnt der "Zähler" auf dem Frontpanel des clientVI an der Stelle, an der er vorher aufgehört hatte...
Das bedeuted, es gehen keine Daten verloren. Ich möchte aber keine alten Daten, sondern nur die aktuellen..es dürfen ruhig Daten verloren gehen..
Wo bitteschön werden denn die Daten (in diesem Fall unerewünschterweise) zwischengespeichert?? In irgendeinem rießigen Netzwerkbuffer auf meinem Windows-PC??
Bitte um Aufklärung...
Edit1:
P.S.:Ich verwende LabVIEW 8.6
Edit2:
Lösung wäre für mich also (wenn meine vermutung mit dem Netzwerkbuffer stimmt?
) diesen Buffer zu löschen direkt nachdem ich "call for data" drücke....aber so eine Funktion gibts nicht.....