LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

reduce number of points displayed

Hello,

I have datas from the PXI, which are inserting in an array to be displayed in a waveform chart. The problem is that it uses a  lot of memory of my computer because it displays all the point, point by point. I would like to display only 1 of 10 points for example, or use a buffer to display 10 points by 10 points but I don't succeed. Someone can help me ?

I join my VI but it works with the PXI so I think you can't run it. For my test, the input (6 in trigger respiratoire) is a sine with 0.3Hz for frequency. The interesting part of my program for this question is the sequence in the right of block diagram (the rest is for the communication with the PXI).
0 Kudos
Message 1 of 10
(2,943 Views)
Hello,

All the sub-vis are missing and there are a lot... could you save your VI as a LLB and repost it please ?

Tryin' to help

We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

0 Kudos
Message 2 of 10
(2,936 Views)
Yes I join the subVI but they are useless for my question...
0 Kudos
Message 3 of 10
(2,935 Views)

If that is the case, just remove the shift register and insert into array function and  display on the chart, only those points that you are flushing out from the queue.

Since your Chart has its own history buffer, use it to fix the number of points to be displayed

Message 4 of 10
(2,927 Views)
Ok, une petite question : quelle est la taille du tableau qui arrive dans la boucle d'affichage (provenant de la queue) ? Et est elle fixe ?

Si elle n'est pas fixe, il serait peut être bon de faire en sorste qu'elle le soit ; par exemple le PXI envoie sont tableau dans la queue seulement quand elle contient 10 éléments et juste après l'avoir mis dans la queue, le tableau est vidé. Ainsi la boucle d'affichage recoit des tableaux de dix point dont elle peut par exemple faire la moyenne (ou une moyenne glissante selon le type de donnée que tu affiches).
Les possibilité sont quasi-infinie, il faut que tu définisses bien ce que tu veux afficher et ne pas mettre trop de point.
De plus, le tableau de la boucle d'affichage grandi indéfiniment... Il faut limiter sa taille !

Hope this helps...

We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

0 Kudos
Message 5 of 10
(2,926 Views)
 ...and, to add to Dev's post you can set the Chart History lenght which is 1024 by default 😉


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

0 Kudos
Message 6 of 10
(2,924 Views)
Thank you for your helps.

I tried devchander option but I have got a problem with the charts buffer, in fact I obtain only a part of the waveform, even if I increase the chart history length...


To answer to TiTou, I will use french, it will be easier and he looks like speak french fluently !

Je n'ai pas fixé la taille du tableau. En fait je ne suis pas sure d'avoir bien compris : quand le tableau provenant du PXI contient 10 éléments, j'utilise la fonction "enqueue element", sinon rien ?

Les données recueillies sont en fait la courbe respiratoire d'un patient en temps réel, donc je ne veux pas une moyenne de la courbe mais bien la courbe entière. Mais je suis en suréchantillonnage avec le PXI, et l'affichage par paquets de points ou de seulement quelques points me permettrait de réduire la consommation du processeur !
0 Kudos
Message 7 of 10
(2,912 Views)
 Smiley Very Happy Je suis français, donc oui, j'espère que mon français est compréhensible 😄

C'est juste que en anglais tu as plus de chance d'obtenir une réponse 😉

Pour n'envoyer que des paquets de données de taille constante, dans le PXI, tu peux emplier tes données dans un tableau à chaque acquisition, dès que la taille atteint une certaine valeur (à toi de la fixer en fonction de la fréquence d'aqui et de la fréquence de rafraichissement que tu souhaite sur le graph) tu envoies ce paquets de données à la boucle d'affichage et tu vides le tableau (cable un tableau vide).
Dans la boucle d'affichage, tu fais un Preview Queue à fréquencee élevé et tu ne fais un dequeue que lorsque la taille est supérieur à zéro.

C'est plus clair ? Smiley Surprised

We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

0 Kudos
Message 8 of 10
(2,906 Views)
J'ai fait ce que tu m'as dit (mise à part l'histoire du preview queue que je n'ai pas comprise :() mais j'ai toujours un problème : même en changeant la "chart history length", je n'ai qu'une petite partie de courbe affichée. En fait, j'utilise un sinus en simulation et j'ai même pas un quart de sinus affiché.

A savoir que j'ai découvert les queue il y a seulement 1 semaine et que la partie acquisition des données du PXI ne vient pas de moi (je suis seulement stagiaire...) donc je ne maîtrise vraiment pas tout 😉

Désolée de "squatter" le forum ainsi mais je commence vraiment à désespérer 😞

Je te joins le VI modifié grâce à tes explications.
0 Kudos
Message 9 of 10
(2,900 Views)

Bonjour,

 

Il me semble que Titou parle de la fonction « obtenir l’état d’une file d’attente ». Celle-ci vous renvoie les informations sur l’état actuel de la file d’attente, comme le nombre d’éléments stockés par exemple… Utile donc pour mettre en place un système de déclencheur.

Reportez-vous au VI Queue Stack - LIFO dans le répertoire labview\examples\general\queue.llb pour obtenir un exemple d'utilisation du nœud Obtenir l'état d'une file d'attente.

En gérant la sortie de votre queue ainsi, vous ne devriez plus rencontrer de problème sur votre graphique.

Cordialement,

BRAUD Jean-Philippe
Field Sales Engineer - Nord et Centre France
LabVIEW Certified Developper
0 Kudos
Message 10 of 10
(2,871 Views)