Graphique en temps-réel avec zedgraph

moussstiqu3 Messages postés 11 Date d'inscription mercredi 18 novembre 2009 Statut Membre Dernière intervention 27 novembre 2010 - 19 mai 2010 à 21:20
moussstiqu3 Messages postés 11 Date d'inscription mercredi 18 novembre 2009 Statut Membre Dernière intervention 27 novembre 2010 - 27 nov. 2010 à 18:43
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

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
19 mai 2010 à 22:25
0
cs_idriss88 Messages postés 7 Date d'inscription lundi 22 novembre 2010 Statut Membre Dernière intervention 31 mai 2011
25 nov. 2010 à 22:20
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);
0
moussstiqu3 Messages postés 11 Date d'inscription mercredi 18 novembre 2009 Statut Membre Dernière intervention 27 novembre 2010 1
25 nov. 2010 à 22:50
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.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
26 nov. 2010 à 09:06
Il faut ajouter les dll dans le répertoire référence
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_idriss88 Messages postés 7 Date d'inscription lundi 22 novembre 2010 Statut Membre Dernière intervention 31 mai 2011
26 nov. 2010 à 20:09
Merci bcp.
J'ai réussi à l'intégrer.
Merci encore.
0
moussstiqu3 Messages postés 11 Date d'inscription mercredi 18 novembre 2009 Statut Membre Dernière intervention 27 novembre 2010 1
26 nov. 2010 à 20:35
super,

bonne continuation
0
cs_idriss88 Messages postés 7 Date d'inscription lundi 22 novembre 2010 Statut Membre Dernière intervention 31 mai 2011
27 nov. 2010 à 12:55
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.
0
moussstiqu3 Messages postés 11 Date d'inscription mercredi 18 novembre 2009 Statut Membre Dernière intervention 27 novembre 2010 1
27 nov. 2010 à 13:02
je l'ai testé...ça doit marché... c'est que tu appelle mal ta méthode!
0
cs_idriss88 Messages postés 7 Date d'inscription lundi 22 novembre 2010 Statut Membre Dernière intervention 31 mai 2011
27 nov. 2010 à 13:08
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
0
moussstiqu3 Messages postés 11 Date d'inscription mercredi 18 novembre 2009 Statut Membre Dernière intervention 27 novembre 2010 1
27 nov. 2010 à 18:43
voici le lien que j'avais utilisé à l'époque pour apprendre.
0
Rejoignez-nous