Hallo,
ich habe eine 32-Bit LabView Anwendung (.exe). Ab und zu muss ich diese Anwendung von einem anderen Programm aus steuern, d.h. bestimmte Buttons drücken und bestimmte Controls lesen. Das Gerät ist ein Lineartisch, nur zur Erklärung, ist also alles langsam, im einstelligen Hz Bereich.
Ausserdem arbeite ich in VS2005 in C/C++, mache also laufend DLLs.
Ich habe herausgefunden, dass ich von einer DLL heraus ein UserEvent an LabView senden kann, da ich gerne mit dem Erzeuger-Verbraucher-Pattern arbeite, passt mir das hervorragend. So kann ich also Werte an LabVIEW übergeben. Ich habe den C-SourceFile UserEvent.c und das VI UserEvent Example.vi dazu gefunden.
Das Lesen von Werte scheint komplizierter.
Georg Jaindl von NI teilte mir hierzu mit:
1.) ich solle es mit ActiveX machen
2.) ich solle mir was mit TCP/IP bauen
3.) auf SharedVariables kann man nicht aus einer DLL heraus zugreifen
Das sind die NI Vorschläge.
Ich hatte zuerst die Idee, auf SharedVariables aus meiner C/C++ DLL heraus zuzugreifen. Das geht dann wohl nicht.
ActiveX habe ich noch nicht gemacht - könnt ihr das für eine C/C++-Dll empfehlen ?
TCP/IP geht bestimmt, aber ist ja ne Sonderlösung.
Nun habe ich die Registerkarte "Callbacks" im Call Library Function Node entdeckt, kann ich da nicht LabVIEW dazu bringen, bei Aufruf des VI eine Funktion meiner DLL aufzurufen, und so Daten (aktuelle Position und Geschwindigkeit des Lineartisches) von LV an meine DLL zu übertragen ?
Sorry für die lange Abhandlung
.
Werner