Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Implémentation de fonction .dll dans Qt

Bonjour,

 

Je cherche de l'aide pour implémenter les fonctions suivante dans un projet C dans l'environnement de Qt. Mon but est de piloter 4 sorties analogiques en fonction d'un GUI.

 

Voici les fonctions qui me serais utile (je suis ouvert à d'autre proposition) Smiley Tongue :

 

AO_VWrite, WFM_Check, WFM_Scale, WFM_Rate, WFM_ClockRate, WFM_Load, WFM_GroupeControl, WFM_GroupeSetup, etc.

 

Dans le chemin suivant je trouve mon fichier nidaq.h qui contient le prototype de AO_VWrite.

C:\Program Files\National Instruments\NI-DAQ\Include\nidaq.h

 

Cependant, comment faire le lien avec la dll qui contient la routine AO_VWrite comme d'après le fichier nidaq32.bas ?

 

Merci de m'avoir lu et merci d'avance à ceux qui me répondront !

0 Kudos
Message 1 of 5
(3,524 Views)

Bonjour,

 

Vous trouverez la bibliotheque statique (.lib) dans le dossier suivant:

 

C:\Program Files\National Instruments\NI-DAQ\DAQmx ANSI C Dev\ 

 

Je vous joint aussi un exemple qui montre comment utiliser les fonctions de la bibliotheque DAQmx depuis un compiler C qui n'est pas de Ntional instruments (l'exemple est prevu pour Visual C++ mais il me semble que Qt peut aussi ouvrir els fichiers .cpp)

 

DAQmx Cont. Analog Output Using the Every N Sample Event

http://zone.ni.com/devzone/cda/epd/p/id/4800 

 

Vous avez aussi la possibilite de passer par les Assembly .NET pour communiquer avec les instruments DAQmx.

 

Cordialement 

______________
Florian Abry
Inside Sales Engineer, NI Germany
0 Kudos
Message 2 of 5
(3,508 Views)

Bonjour,

 

merci de votre réponse, j'ai trouvé les fichiers suivants dans ce sous-répertoire \DAQmx ANSI C DEV\ NIDAQmx.h et NIDAQmx.lib

 

Cependant, je ne comprends pas pourquoi je n'ai que deux fichiers ? Et dans ces derniers, je ne trouve pas dans le header la fonction AO_VWrite ?

Faudrait-il utiliser les (anciens drivers) du DAQ 7.x ?

 

Mon but est de lire dans un fichier texte une série de nombre qui réprésente les points de mon signal (amplitude), de ce faite, je dois écraser la valeur précédente par une nouvelle, une fonction de ce genre me serait suffisante.

 

Merci d'avance de m'aider dans ce projet.

 

____________________________________________________________________________________________________________________________

 

Hello,

thank you for your response, I found the following files in the subdirectory \ DAQmx ANSI C Dev \ NIDAQmx.h and NIDAQmx.lib

However, I do not understand why I only have two files? And in the latter, I do not find in the header function AO_VWrite ?

Should we use the (older drivers) DAQ 7.x?

My goal is to read a text file in a series of numbers representing the points of my signal (amplitude), this made​​, I have to overwrite the previous value by a new, a function that writes Islands values ​​of my real-time output I would be sufficient.

Thank you in advance for helping me in this project.

0 Kudos
Message 3 of 5
(3,502 Views)

Effectivement, NI-DAQ et NI-DAQmx sont deux driver different (DAQ est "l'ancetre de DAQmx). La carte avec laquelle vous devez communiquer n'est-elle compatible qu'avec NI-DAQ (traditionnel)? Si oui, puis-je savoir quel système d'exploitation vous utilisez?

 

Cordialement 

______________
Florian Abry
Inside Sales Engineer, NI Germany
0 Kudos
Message 4 of 5
(3,500 Views)

En effet, j'aurai du donner toutes ces informations dès le début.

 

PC Dell Optiplex GX280 avec Windows XP Professional x86 OEM SP3

Carte NI : PCI-6509 et PCI-6259 DAQmx version 8.0 (2006) et Motion&Mesurement version 4.0 (2006)

 

J'ai lu dans la documentation que mes cartes ne sont compatibles qu'avec NI-DAQmx et que la bibliothèque à implémenter dans mon projet s'appelle NIDAQmx.lib et le header NIDAQmx.h. J'ai créer un projet d'application C++ dans Qt et j'ai ajouté le fichier .lib comme bibliothèque externe et je lance la compilation et ca à l'air de fonctionner.

 

Dois-je ajouter le fichier header contenant les prototypes au projet ? Sinon comment utiliser ces fonctions C++ ?

 

J'aimerai initialiser ma carte 6259 et injecter un niveau de tension sur une sortie ?

 

Mon programme utilise des fichiers texte contenant des valeurs numérique qui représente une tension. Enfaite, il s'agit d'une boucle qui va charger ces points dans un tableau en mémoire. Pour la suite, je pense que je peux charger un buffer avec ces points ou les envoyer un par un sur le canal de sortie. Quelle est la meilleure approche d'après vous ?

 

Avec mes salutations distinguées.

 

________________________________________________________________________

 

Indeed, I will give all of this information early on.

Dell Optiplex GX280 PC with Windows XP Professional x86 OEM SP3

NI PCI-6509 and PCI-6259

I read in the documentation that my cards are compatible only with NI-DAQmx and the library to implement in my project is called the header and NIDAQmx.lib NIDAQmx.h. I create an application project in C + + Qt and I added the file. Lib as external library and I run the compilation and the AC seems to work.

Should I add the header file containing prototypes for the project? if not how to use C + + functions?

I'd like to initialize my 6259 card and inject a voltage level of output?

My program uses txt files containing numeric values ​​representing voltage. Infact, this is a loop that will load these points in a table in memory. For the rest, I think I can load a buffer with these or send them one by one on the cannal output. What is the best approach in your opinion?

Sincerely.

0 Kudos
Message 5 of 5
(3,494 Views)