Measurement Studio for VC++

cancel
Showing results for 
Search instead for 
Did you mean: 

Acquisition à 1000Hz et récupération des points courants à la demande

Bonjour,
Je possède une PCI MIO 16XE-50 et je souhaite acquérir plusieurs signaux analogiques à une fréquence de 1000Hz tout en récupérant occasionnellement les derniers points échantillonnés pour faire un affichage graphique avec VC++.
Je ne peux pas attendre que la moitié du buffer soit rempli pour récupérer les valeurs et mettre a jour l'affichage, si ce buffer est trop important.
Comment puis-je donc m'y prendre ?
Puis-je réduire la taille du buffer jusqu'à lui donner une taille de 3,4 échantillons seulement pour récupérer le buffer beaucoup plus souvent et mettre à jour l'affichage ?
Ou y a-t-il une fonction me permettant de demander les derniers points entrés dans le buffer ?
 
Le fait est que j'ai besoin que la carte fasse l'échantillonnage pour pouvoir le sauvegarder dans un fichier, et etre sur que cet échantillonnage soit tres stable, donc je ne préfère pas aller demander un échantillonnage à la carte toutes les millisecondes par soft.
 
Ceydric
 
 
0 Kudos
Message 1 of 2
(4,090 Views)
Bonjour,
Quand tu crées une tache d'acquisition, au niveau de la fonction "DAQmxReadAnalogF64" tu spécifies le nombre de points avec le paramètre "int32 numSampsPerChan".
Ce paramètre définit en quelque sorte la fréquence à laquelle tu vas aller récupérer les points acquis.

Si ce parmètre = 100, cela signifie que tu récupérer les points acquis par paquet de 100 points.
Plus la valeur de ce paramètre est basse, plus tu vas récupérer les points acquis rapidement.
 
L'inconvénient en fixant une petite valeur c'est que tu vas plus souvent faire des entrées et sorties dans ton buffer (celui qui stocke les points acquis) ce qui peut ralentir ton programme et arriver à un overflow (les nouveaux points acquis écrasent des points qui n'ont pas encore été récupérés dans ton buffer).

C'est à toi de trouver le bon copromis.

Johan G.
NIF
0 Kudos
Message 2 of 2
(4,061 Views)