Bonjour à tous et à toutes.

Je développe actuellement un programme permettant l'acquisition de données via un capteur. La partie acquisition se déroule bien, mais c'est la partie affichage qui me pose problème ^_^

J'utilise Measurement Studio, j'ai donc accès aux outils WaveformGraph et ScatterGraph.

A chaque Tick de mon timer (intervalle 100ms), une donnée du capteur est sauvegardée dans un tableau. J'aimerai ensuite afficher le graph en fonction du temps (soit un point chaque 100ms) avec une échelle dynamique (mode stripChart) mais cet intervalle de temps est trop court, le graph ne s'affiche pas correctement. Lorsque j'utilise un timer de 1000ms, le graph s'affiche, voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
private void timer1_Tick(object sender, EventArgs e)
        {
            // Il s'agit d'un test, j'utilise une valeur indifférente
            speed1 = 50 - (50 * Math.Cos(count1));
 
            time1 = time1 + (sensor1Timer.Interval / 1000);
 
            speed1Array[count1] = speed1;
            time1Array[count1] = time1;
 
            displaySpeedGraph(time1Array, speed1Array, count1);
 
            count1++;
        }
 
// Méthode DisplayGraph (il s'agit d'un scatterGraph ici)
public void displaySpeedGraph(double[] xData, double[] yData, int count)
        {            
            if (count <= 2)
            {
//Définition Measurement Studio : public void PlotXY(double[] xData, double[] yData, int startIndex, int length);
                speedGraph.PlotXY(xData, yData, 0, 2);
            }
            else if (count <= 3)
            {
                speedGraph.PlotXY(xData, yData, 0, 3);
            }
            else if (count <= 4)
            {
                speedGraph.PlotXY(xData, yData, 0, 4);
            }
            else if (count <= 5)
            {
                speedGraph.PlotXY(xData, yData, 0, 5);
            }
            else if (count <= 6)
            {
                speedGraph.PlotXY(xData, yData, 0, 6);
            }
            else if (count <= 7)
            {
                speedGraph.PlotXY(xData, yData, 0, 7);
            }
            else if (count <= 8)
            {
                speedGraph.PlotXY(xData, yData, 0, 8);
            }
            else if (count <= 9)
            {
                speedGraph.PlotXY(xData, yData, 0, 9);
            }
            else if (count <= 10)
            {
                speedGraph.PlotXY(xData, yData, 0, 10);
            }
            else
            {
                speedGraph.PlotXY(xData, yData, (count - 10), 10);
            }
        }
Auriez-vous déjà rencontré ce problème ? Avez-vous une solution ? Ou bien une suggestion pour le améliorer le code ?

Merci d'avance, bonne journée à tous les lecteurs et lectrices du site !

Brygoth