2009-07-23 14 views
5

Possiedo un'applicazione LabVIEW che attualmente invia dati a un'applicazione C++ tramite una DLL. Ora devo inviare i dati all'app LabVIEW da C++. Posso attivare il codice in LabVIEW da una chiamata DLL o devo periodicamente interrogare la DLL per vedere se i nuovi dati sono in attesa?Accesso DLL asincrono in LabVIEW?

O sto andando in questo modo completamente nel modo sbagliato?

risposta

6

È possibile generare un evento da C++ per attivare un normale evento LabVIEW.
Here è un post sui forum NI che discute questa struttura. E un codice estratto da quel filo:

#include <utility.h> 
#include <extcode.h> 
#include "EventDLL.h" 
//Generate a LabVIEW event 
int GenerateLVEvent(LVUserEventRef *msg, int param) 
{ 
PostLVUserEvent(*msg, (void *)&param); 
return 0; 
} 

Ed ecco la sorgente originale come PNG: alt text http://vi-lib.com/forForum/eventDLL.PNG
Ed ecco il codice LabVIEW accompagnamento:
alt text http://vi-lib.com/forForum/eventLV.PNG
L'anello inferiore è codice LabVIEW che invia un evento DLL per il gestore di eventi LabVIEW. Questo dovrebbe essere inserito nella DLL. Uno dei parametri di input dovrebbe essere il puntatore evento come U32.

Buona fortuna,

Ton

PS se si sta andando fare immergersi in DLL e LabVIEW interoperabilità, prestare attenzione a tutto RolfK dice, lui è un guru in quel campo.

+1

Tra questo e gli esempi di occorrenza nel thread collegato, dovrei essere pronto. Grazie! – dwj

+0

Sì, l'occorrenza è una semplice versione di eventi. –