Partage
  • Partager sur Facebook
  • Partager sur Twitter

C# - Graph XY

    16 mai 2011 à 9:53:56

    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 :

    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
    • Partager sur Facebook
    • Partager sur Twitter

    C# - Graph XY

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown