Hiho,
ich habe einen Datenlogger-Server auf einem PC laufen, der die Werte der DAQ-Karte per shared variables zur Verfügung stellt (also selbst updatet). Auf diese shared variables können nun beliebige Applikationen zugreifen (lokal und remote), z.B. Monitorprogramme, Messprogramme usw..
Das funktioniert alles soweit schnell und unkompliziert, allerdings kann ich ums verrecken eine ganz bestimmte Funktion nicht finden, nämlich sowas wie "client list" oder "letzter Lesezugriff". Ich willim Server-Programm sehen, ob (und am besten auch welche) Clients gerade verbunden sind und Daten abfragen - z.B. um eine Warnung auszugeben, falls man den Server stoppen will und noch Clients verbunden sind..
Natürlich könnte man eine "bidirektionale" Verbindung machen, also noch eine shared variable, in die die Clients permanent reinschreiben (z.B. ein String-Array mit unique-ID, URL und timestamp pro Client in jeder "Zeile"), aber ich würde die Kommunikation gerne "read-only" haben und auf ein Minimum reduzieren (auch die Anforderungen an die Client-Programme)..
Ich weiß, dass die shared variable engine (SVE) ein eigener Prozess ist und nur eine beschränkte Menge an Daten Labview zur Verfügung stellt. Mit dem DSC-Modul kommt man z.B. an "value-changed"-Events, aber nicht an Lese-Events und schon garnicht an die Client-Connections - oder ich habs einfach nicht gefunden
Da die SVE ja die Clients managed, muss sie zumindest auf einer niedrigeren Ebene diese Informationen haben - gibt es irgendeine Möglichkeit, aus Labview heraus da ranzukommen (über irgendeine Schnittstelle, z.B. ActiveX o.ä.?)..
Wenn man sich das ganze selber z.B. mit TCP/IP-queues o.ä. aufbaut, hat man ja schon prinzipiell Zugriff auf die Clients, aber lässt man die SVE ran, kriegt man zwar nen Haufen Daten aber leider nicht die interessanten