Graphique en temps-réel avec zedgraph

Signaler
Messages postés
11
Date d'inscription
mercredi 18 novembre 2009
Statut
Membre
Dernière intervention
27 novembre 2010
-
Messages postés
11
Date d'inscription
mercredi 18 novembre 2009
Statut
Membre
Dernière intervention
27 novembre 2010
-
Bonsoir,

je termine un projet et je bloque à cause d'un seul truc.

J'utilise Zedgraph pour faire des graphiques.
Mon projet reçois des bytes toues les minutes sur le port com et je les met dans une base de données.
Zedgraph viens lire la base de données pour faire ce graph. Il le fait bien mais pas en temps réel!

Je voulais savoir comment le faire en temps réel.

Voici mon code qui ne fonctionne pas!

  // Graphique de l'intensité lumineuse externe

        private void CreateGraph4(ZedGraphControl zgc_data_lum_out)
        {
            GraphPane myPane = zgc_data_lum_out.GraphPane;

            // Set the titles and axis labels
            myPane.Title.Text = "Outdoor Irradiance";
            myPane.XAxis.Title.Text = "Time";
            myPane.YAxis.Title.Text = "Irradiance (W/m²)";

            int j = last_id - 26;
            // Build a PointPairList with points based on Sine wave
            PointPairList list = new PointPairList();
            for (int i = j; i < last_id; i++)
            {

                string mySelectQuery "SELECT Lum_Out FROM data WHERE ID" + i ;
                SqlCeCommand myCommand = new SqlCeCommand(mySelectQuery, cn);
                myReader = myCommand.ExecuteReader();
                myReader.Read();

                double x = i * 5;
                double y = Convert.ToDouble((myReader["Lum_Out"]));
                list.Add(x, y);
            }

            // Hide the legend
            myPane.Legend.IsVisible = false;

            // Add a curve
            LineItem curve = myPane.AddCurve("label", list, Color.Red, SymbolType.VDash);
            curve.Line.Width = 1.5F;
            curve.Symbol.Fill = new Fill(Color.White);
            curve.Symbol.Size = 5;

            // Make the XAxis start with the first label at 50
            myPane.XAxis.Scale.BaseTic = 5;

            // Fill the axis background with a gradient
            myPane.Chart.Fill = new Fill(Color.White, Color.SteelBlue, 45.0F);

            // Calculate the Axis Scale Ranges
            zgc_data_lum_out.AxisChange();

            // Refresh to paint the graph components
            Refresh();

   // agit toute les 30 secondes
        private void timer_graphique_Tick(object sender, EventArgs e)
        {
            zedGraphControl1.GraphPane.CurveList.Clear();
            zedGraphControl2.GraphPane.CurveList.Clear();
            zedGraphControl3.GraphPane.CurveList.Clear();
            zedGraphControl4.GraphPane.CurveList.Clear();
            
            CreateGraph1(zedGraphControl1);
            CreateGraph2(zedGraphControl2);
            CreateGraph3(zedGraphControl3);
            CreateGraph4(zedGraphControl4);
        }
        }



je pensais que le graphique allait s'effacer et se reformer toute les 30 secondes, mais non!

Pouvez- vous m'aider?

Merci

10 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
31
Messages postés
7
Date d'inscription
lundi 22 novembre 2010
Statut
Membre
Dernière intervention
31 mai 2011

Bonsoir
Est ce que vous pouvez m'expliquer comment télécharger le Zedgraph et comment l'intégrer dans le visual studio c#.
C'est urgent!!!
Merci d'avance.

javascript:void(0);
Messages postés
11
Date d'inscription
mercredi 18 novembre 2009
Statut
Membre
Dernière intervention
27 novembre 2010
1
Je te propose donc d'aller voir ici.

Recopie bêtement les exemples proposés sans te soucier de ce qu'il y a dans la méthode.
Ensuite si tu dois, regarde ce qu'il y a d'important :
- x
-y
-color
-point, croix, triangle...
-...
Puis modifie ton code en fonction de ces paramètres.

Pour le téléchargement, je ne sais plus très bien, ça fait 5 mois que je n'ai pas touché à visual studio, mais tu devrais retrouver ça dans le lien que je t'ai donné ou alors ici on te montre comment intégré une dll dans ton projet.
La dll zedgraph se trouve ici.

Courage, je sais que c'est pas facile, mais si tu fais un projet avec le premier lien puis que tu le modifie tu verras la puissance de cette méthode.
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
31
Il faut ajouter les dll dans le répertoire référence
Messages postés
7
Date d'inscription
lundi 22 novembre 2010
Statut
Membre
Dernière intervention
31 mai 2011

Merci bcp.
J'ai réussi à l'intégrer.
Merci encore.
Messages postés
11
Date d'inscription
mercredi 18 novembre 2009
Statut
Membre
Dernière intervention
27 novembre 2010
1
super,

bonne continuation
Messages postés
7
Date d'inscription
lundi 22 novembre 2010
Statut
Membre
Dernière intervention
31 mai 2011

Mais j'ai une autre question:
Le code source c# donné en haut il marche pas pour moi. quand je l'exécute il ne m'affiche qu'une frame vide. Est ce quelqu'un l'a testé? si oui, aidez-moi svp.
Merci d'avance.
Messages postés
11
Date d'inscription
mercredi 18 novembre 2009
Statut
Membre
Dernière intervention
27 novembre 2010
1
je l'ai testé...ça doit marché... c'est que tu appelle mal ta méthode!
Messages postés
7
Date d'inscription
lundi 22 novembre 2010
Statut
Membre
Dernière intervention
31 mai 2011

j'ai créé un nouveau projet "Application windows form" et j'ai ajouté le code donné en haut à ma classe Form1, après j'ai exécuté et ça m'a donné une frame vide. Comment devrais-je appeler ma méthode?
merci
Messages postés
11
Date d'inscription
mercredi 18 novembre 2009
Statut
Membre
Dernière intervention
27 novembre 2010
1
voici le lien que j'avais utilisé à l'époque pour apprendre.