Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MSCHART AFFICHAGE EN TEMPS REEL


Information sur la source

Catégorie :Maths Niveau : Débutant Date de création : 10/10/2003 Date de mise à jour : 10/10/2003 21:12:52 Vu / téléchargé: 5 246 / 1 412

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

Description

ce petit code de demonstration montre comment se servir de Mschart pour afficher des graphiques en temps reel. 7 données sont monitorees sur un graphique type ligne. j ai remplacer ici l acquisition de données par des constantes, a vous de l ameliorer suivant vos besoins. Ce code fait partie d un programme de monitoring bien plus volumineux et fonctionne sans probleme depuis maintenant 2 ans.


 

Source

  • Dim Tv1Graph(40) As Integer
  • Dim Tv2Graph(40) As Integer
  • Dim ToilGraph(40) As Integer
  • Dim Pv1graph(40) As Integer
  • Dim Pv2graph(40) As Integer
  • Dim Igraph(40) As Integer
  • Dim Ugraph(40) As Integer
  • Private Sub Form_Load()
  • Call ResetingGraph
  • End Sub
  • Private Sub Timer1_Timer()
  • Call next_data
  • End Sub
  • Private Sub next_data()
  • Dim i, ii As Integer
  • For i = 1 To 39 ' Avance graphique
  • Tv1Graph(i) = Tv1Graph(i + 1)
  • Tv2Graph(i) = Tv2Graph(i + 1)
  • ToilGraph(i) = ToilGraph(i + 1)
  • Pv1graph(i) = Pv1graph(i + 1)
  • Pv2graph(i) = Pv2graph(i + 1)
  • Igraph(i) = Igraph(i + 1)
  • Ugraph(i) = Ugraph(i + 1)
  • Next i
  • Tv1Graph(40) = 5 'valeur a afficher
  • Tv2Graph(40) = 10
  • ToilGraph(40) = 15
  • Pv1graph(40) = 20
  • Pv2graph(40) = 30
  • Igraph(40) = 40
  • Ugraph(40) = 50
  • With MSChart1
  • For ii = 1 To 40
  • .Row = ii
  • .Column = 1
  • .Data = Tv1Graph(ii)
  • .Column = 2
  • .Data = Tv2Graph(ii)
  • .Column = 3
  • .Data = ToilGraph(ii)
  • .Column = 4
  • .Data = Pv1graph(ii)
  • .Column = 5
  • .Data = Pv2graph(ii)
  • .Column = 6
  • .Data = Igraph(ii)
  • .Column = 7
  • .Data = Ugraph(ii)
  • Next ii
  • End With
  • End Sub
  • Private Sub ResetingGraph() 'Sous Routine effacement du chart
  • Dim iii, iiii As Integer
  • For iii = 1 To 7 ' RESETING GRAPH location points
  • MSChart1.Column = iii
  • For iiii = 1 To 40
  • MSChart1.Row = iiii
  • MSChart1.Data = 0
  • Next iiii
  • Next iii
  • Erase Tv1Graph ' Reseting arrays
  • Erase Tv2Graph
  • Erase ToilGraph
  • Erase Pv1graph
  • Erase Pv2graph
  • Erase Igraph
  • Erase Ugraph
  • MSChart1.Row = 1
  • End Sub
Dim Tv1Graph(40) As Integer
Dim Tv2Graph(40) As Integer
Dim ToilGraph(40) As Integer
Dim Pv1graph(40) As Integer
Dim Pv2graph(40) As Integer
Dim Igraph(40) As Integer
Dim Ugraph(40) As Integer
Private Sub Form_Load()
Call ResetingGraph
End Sub
Private Sub Timer1_Timer()
Call next_data
End Sub
Private Sub next_data()
Dim i, ii As Integer

For i = 1 To 39                  ' Avance graphique
    Tv1Graph(i) = Tv1Graph(i + 1)
    Tv2Graph(i) = Tv2Graph(i + 1)
    ToilGraph(i) = ToilGraph(i + 1)
    Pv1graph(i) = Pv1graph(i + 1)
    Pv2graph(i) = Pv2graph(i + 1)
    Igraph(i) = Igraph(i + 1)
    Ugraph(i) = Ugraph(i + 1)
Next i
       
Tv1Graph(40) = 5                'valeur a afficher
Tv2Graph(40) = 10
ToilGraph(40) = 15
Pv1graph(40) = 20
Pv2graph(40) = 30
Igraph(40) = 40
Ugraph(40) = 50
    
    With MSChart1
    
     For ii = 1 To 40
        .Row = ii
        
        .Column = 1
        .Data = Tv1Graph(ii)
     
        .Column = 2
        .Data = Tv2Graph(ii)
        
        .Column = 3
        .Data = ToilGraph(ii)
        
        .Column = 4
        .Data = Pv1graph(ii)
        
        .Column = 5
        .Data = Pv2graph(ii)
       
        .Column = 6
        .Data = Igraph(ii)
        
        .Column = 7
        .Data = Ugraph(ii)
       
        Next ii
      End With
End Sub

Private Sub ResetingGraph()         'Sous Routine effacement du chart
    Dim iii, iiii As Integer
    For iii = 1 To 7             ' RESETING GRAPH location points
     MSChart1.Column = iii
        For iiii = 1 To 40
           MSChart1.Row = iiii
          MSChart1.Data = 0
        Next iiii
    Next iii
    Erase Tv1Graph              ' Reseting arrays
    Erase Tv2Graph
    Erase ToilGraph
    Erase Pv1graph
    Erase Pv2graph
    Erase Igraph
    Erase Ugraph
  MSChart1.Row = 1
End Sub

Conclusion

pour les remerciements ( au vu du nombre de demande sur le forum...)
un petit mail sympa a jojok65@hotmail.com ... :-)
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de pluplu le 10/10/2003 17:41:53

c'est surement bien ton truc, mais j'ai essayé vite fait de le projeter sur un form, ajouter les deux composants et voir ce que ça dit, et là ça foire avec des erreures de dépassement et on à alors le choix entre deux soluces, soit essayé de débogué ton code soit de voire ce que tu as voulu faire et le refaire de toute pièce...
Personnellemnt j'aurai préféré un exemple clé en main.

signaler à un administrateur
Commentaire de jojok65 le 10/10/2003 21:07:21

je vais envoyer un zip complet, mais autrement, il y a des petits reglages a faire sur l option personaliser de mschart

signaler à un administrateur
Commentaire de jojok65 le 10/10/2003 21:13:45

voila le zip est ajouter
enjoy it !!

signaler à un administrateur
Commentaire de pluplu le 11/10/2003 10:23:21

oui c'est mieux comme cela, et c'est encore plus démonstratif si l'on met des valeurs en random par ex.

Private Sub next_data()
Dim i, ii As Integer

For i = 1 To 39                  ' Avance graphique
    Tv1Graph(i) = Tv1Graph(i + 1)
    Tv2Graph(i) = Tv2Graph(i + 1)
    ToilGraph(i) = ToilGraph(i + 1)
    Pv1graph(i) = Pv1graph(i + 1)
    Pv2graph(i) = Pv2graph(i + 1)
    Igraph(i) = Igraph(i + 1)
    Ugraph(i) = Ugraph(i + 1)
Next i
      
Tv1Graph(40) = Int((15 * Rnd) + 1)               'valeur a afficher
Tv2Graph(40) = Int((15 * Rnd) + 1)
ToilGraph(40) = Int((15 * Rnd) + 10)
Pv1graph(40) = 20
Pv2graph(40) = 30
Igraph(40) = 40
Ugraph(40) = 50
.................................etc etc

signaler à un administrateur
Commentaire de jojok65 le 11/10/2003 20:09:36

tu as raison pluplu, mais le but premier etait de montrer l avancement du graphe suivant une base de temps reglable et surtout que ca ne plante pas a la 40ieme donnéés.
ce code fait partie d un soft qui fait l aquisition de donnée en temps reel, donc, j ai supprimer les var et taper des constantes a la place en vitesse
voila
:-)
joel

signaler à un administrateur
Commentaire de jojok65 le 11/10/2003 23:50:48

pas d autres commentaires ?

signaler à un administrateur
Commentaire de PROGRAMMIX le 12/10/2003 09:45:24

Ce serait bien de pouvoir limiter voire supprimer l'effet de clignotement lors de chaque changement du graphique.

signaler à un administrateur
Commentaire de mpays le 13/10/2003 10:58:33

Quelqu'un connait il la solution pour éviter le clignotement du graphique ?
Je suis à la recherche de ça depuis pas mal de temps à présent ...

signaler à un administrateur
Commentaire de gzed le 05/07/2004 17:01:27

mpays>> tu as trouve comment supprimer le clignotement??

signaler à un administrateur
Commentaire de renardeau le 28/07/2004 17:23:08

j'ai fait avant de voir ceci, que je n'ai pas testé, un graph en temps réel qui ne clignotte pas...

mais je n'ai pas de problèmes comme vous le voyez clignottement

même à plus de 30 000 données (hé oui, mon problème a même été de gérer le plus de 32000 et des poussière (cf un integer)) je n'ai eu aucun problème de ce type !

j'ai un appareil, lorsque je recois une donnée je l'indique au graphe et je complète ma mschart.rowcount au fur et a mesure.

signaler à un administrateur
Commentaire de renardeau le 28/07/2004 17:23:23

j'ai fait avant de voir ceci, que je n'ai pas testé, un graph en temps réel qui ne clignotte pas...

mais je n'ai pas de problèmes comme vous le voyez clignottement

même à plus de 30 000 données (hé oui, mon problème a même été de gérer le plus de 32000 et des poussière (cf un integer)) je n'ai eu aucun problème de ce type !

j'ai un appareil, lorsque je recois une donnée je l'indique au graphe et je complète ma mschart.rowcount au fur et a mesure.

signaler à un administrateur
Commentaire de PROGRAMMIX le 28/07/2004 21:08:46

>>> renardeau

Et peut-on voir ce que tu as fait ?

Parce que ce n'est pas ta source "MSChart vers BMP" qui peut nous éclairer sur la méthode à utiliser pour résoudre ce problème.

signaler à un administrateur
Commentaire de renardeau le 29/07/2004 10:15:03

je l'ai mis http://www.vbfrance.com/code.aspx?ID=24990

en espérant que vous la comprenniez bien

un zip suivra (pas avant 1 petit mois - vacances et bcp d'occupation) si le besoin s'en fait ressentir.


mais Programmix, je pensait que "j'ai un appareil, lorsque je recois une donnée je l'indique au graphe et je complète ma mschart.rowcount au fur et a mesure." pouvait suffire pour bien comprendre...

J'ai passé un peu plus de temps mais j'espère que cela aidera ;)

signaler à un administrateur
Commentaire de philochon le 22/10/2004 17:37:30

salut

est il possible d'inverser des axes X et Y, c'est a dire que la base de temps soit sur l'axe des Y et que les données soient sur l'axe des X ??

bye

signaler à un administrateur
Commentaire de renardeau le 22/10/2004 20:31:45

à toi à le faire lors de l'encodage....

de faire progresser les Y plutôt que les X ...


ou de le copier dans une image que tu as la grande joie de faire tourner ;)

signaler à un administrateur
Commentaire de PROGRAMMIX le 22/10/2004 22:01:24

>> renardeau,
à quand le zip promis pour ta source 24990 ?

signaler à un administrateur
Commentaire de renardeau le 16/01/2007 21:38:41

voir la modif du 31 janvier 2005

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Appels d'offres

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,406 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.