LECTEUR DE CSV GRACE À ZEDGRAPH

cs_megamario Messages postés 145 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 14 février 2013 - 29 oct. 2009 à 14:07
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 - 13 mai 2012 à 18:51
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50762-lecteur-de-csv-grace-a-zedgraph

Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
13 mai 2012 à 18:51
Salut, une petite astuce qui simplifie la vie
pour remplir les courbes, je passe désormais par une méthode de ma classe "gestion de compte bancaire" Cls_compte
1- je déclare une structure :
Public Structure tableau_bilan
Public _valeur() As Double
Public _date() As Double 'converti en OADate
End Structure ' structure d'un tableau de bilan mensuel pour graphique

2-j'écris le code qui vas bien pour la remplir
'----------------------------------------------------------------------
' Function qui retourne le bilan crédit/débit par mois (_valeur,_date)
' ou le bilan d'un budget par mois (_valeur,_date)
'----------------------------------------------------------------------
Public Function bilan() As tableau_bilan If Me.lignes.Count 0 Then bilan Nothing : Exit Function

' récupére le nombre d'année total du compte pour définir le nombre de _valeur
Dim premiére_an As Integer = Me.lignes(Me.lignes.Count - 1).L_date.Year
Dim derniére_an As Integer = Date.Now.Year
Dim nombre_an As Integer = derniére_an - premiére_an

' déclare un nouveau type de tableau_bilan
Dim _Bilan As New tableau_bilan
ReDim _Bilan._valeur(12 * (nombre_an + 1)) '+1 car il y a forcément une année au minimun
ReDim _Bilan._date(12 * (nombre_an + 1))

'débute une boucle pour le nombre d'année trouvé
For années As Integer = 0 To nombre_an
'pour toutes les lignes de mon compte chargé (en marche arriére donc step -1)
For ligne As Integer = Me.lignes.Count To 1 Step -1
'si l'année correspond
If Me.lignes(ligne - 1).L_date.Year = premiére_an + années Then

'puis pour chaque mois de l'année en cours
For mois As Integer = 1 To 12
' si le mois correspond
If mois = Me.lignes(ligne - 1).L_date.Month Then
' ajoute la valeur en euro
_Bilan._valeur((mois - 1) + (années * 12)) += Me.lignes(ligne - 1).L_credit - Me.lignes(ligne - 1).L_debit
' ajoute la date au milieu du mois
_Bilan._date((mois - 1) + (années * 12)) = Convert.ToDateTime(Me.lignes(ligne - 1).L_date.Year & "/" & _
Me.lignes(ligne - 1).L_date.Month & "/15").ToOADate

End If
Next mois

End If
Next ligne
Next années
Return _Bilan
End Function

3- dans ma form de visu des courbes je n'ai plus qu'a écrire :
'calcul et ajoute les points aux batons 'crédit/débit'
Dim monBilan As Cls_compte.tableau_bilan = Mon_compte.bilan()
' Création des batons
Dim mesBarres As BarItem
' batons 'crédit/débit'
mesBarres = myPane.AddBar("", monBilan._date, monBilan._valeur, Color.Transparent) 'Couleur_forms)

c'est vachement plus lisible une fois fait ;)

bonne prog à tous.
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
7 nov. 2011 à 13:23
Merci claudetom pour ta participation. Cordialement ADN
cs_claudetom Messages postés 115 Date d'inscription jeudi 11 octobre 2001 Statut Membre Dernière intervention 15 octobre 2012
7 nov. 2011 à 10:24
J'ai testé ce programme mais impossible de lire le CSV (format incompatible)
Solution à cause des options régional :
Ajout :
Dans load_courbes
Dim SeparateurDécimal As String = NumberFormatInfo.CurrentInfo.NumberDecimalSeparator
Pour chaque valeur qui est converti en double :
CDbl(valeur.Replace(",", SeparateurDécimal).Replace(".", SeparateurDécimal))

Après cela chargement OK
Bonne source
dudu1513 Messages postés 51 Date d'inscription jeudi 2 juin 2011 Statut Membre Dernière intervention 1 août 2012
21 août 2011 à 18:32
Maintenant il faut que j'impémente la partie des axes. Et désolé si c'est un peu codé en mode spaghetti, j'en apprends tout les jours sur ce VB.NET! Je suis donc ouvert à tous conseils permettant de m'améliorer.
Merci
dudu1513 Messages postés 51 Date d'inscription jeudi 2 juin 2011 Statut Membre Dernière intervention 1 août 2012
21 août 2011 à 18:28
La fonction pour créer les courbes:

Public Curve(100) As LineItem
Public DataPointsList As PointPairList

#Region "Creating of the curves versus time"
Public Sub CreateCurvesVsTime(ByVal zgc As ZedGraphControl)
Dim myPane As GraphPane = zgc.GraphPane
Dim yAxisData As String
Dim xAxisData(UBound(Analysis_windows.CSV1_Data) - 4) As Double
Dim OldxAxisData As New Double
Dim Difference As New Double
Dim Offset As New Double
Dim i, j As Double
Dim lst As New List(Of PointPairList)

' Reading of first value of time channel in order to define the offset
Offset = Val(Analysis_windows.CSV1_Data(3, 74))

' Reading of the time channel for X axis
For j = 2 To UBound(Analysis_windows.CSV1_Data) - 3
' Reading of new value of xAxisData
xAxisData(j - 2) = Val(Analysis_windows.CSV1_Data(j, 74)) - Offset
' Checking of difference between new and old value of time data in order to
' detect and remove the jumps of time (due to GPS accuracy)
Difference = xAxisData(j - 2) - OldxAxisData
If j <> 2 And Difference > 0.2 Then
Offset = Offset + Difference
xAxisData(j - 2) = Val(Analysis_windows.CSV1_Data(j, 74)) - Offset
End If
' Reading of old value of xAxisData
OldxAxisData = xAxisData(j - 2)
Next

' Reading of the channels data and saving in lists of points
For i = 0 To 99
DataPointsList = New PointPairList
For j = 2 To UBound(Analysis_windows.CSV1_Data) - 3
' Reading of y axis data
yAxisData = Analysis_windows.CSV1_Data(j, i)
If yAxisData = "" Then
DataPointsList.Add(xAxisData(j - 2), 0)
Else
DataPointsList.Add(xAxisData(j - 2), Val(yAxisData))
End If
Next
' Creating of curves
lst.Add(DataPointsList)
Curve(i) = myPane.AddCurve(Analysis_windows.CSV1_Data(0, i), lst(i), Analysis_windows.color(i), SymbolType.None)
Curve(i).IsVisible = False
Curve(i).Label.IsVisible = False
zgc.GraphPane.XAxis.Scale.Min = 0
zgc.GraphPane.XAxis.Scale.Max = xAxisData(UBound(xAxisData) - 1)
zgc.AxisChange()
zgc.Refresh()
Next
End Sub
#End Region
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
21 août 2011 à 18:21
trop tard lol, je suis qu'a l'interface de paramétrage du CSV, mais bon. Post ta solution niveau déclaration et génération des courbes que je fussione avec ma config du CSV lu ;) kenavo
dudu1513 Messages postés 51 Date d'inscription jeudi 2 juin 2011 Statut Membre Dernière intervention 1 août 2012
21 août 2011 à 18:12
Yes j'ai trouvé!!!! Ca fonconne enfin! Merci ADN de m'avoir mis sur la bonne voix. Du coup, pas besoin de te reponger dedans ;-)
dudu1513 Messages postés 51 Date d'inscription jeudi 2 juin 2011 Statut Membre Dernière intervention 1 août 2012
15 août 2011 à 21:00
hi hi. j'ai déjà essayé de faire ainsi... Mais en utilisant qu'une seule PointPairList qu'on rempli puis qu'on met dans la liste "point_courbe", il faut l'effacer avant d'introduire la 2ème série de point. Ce qui est bizarre c'est que ça efface aussi les points dans "point_courbe"... Un casse tête!
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
15 août 2011 à 20:35
c'est la définition de ce qui te manque pour le reste j'ai pas eu le temps de bosser dessus lol mais un jour viendra ou peut être une nuit, un aigle noir....
dudu1513 Messages postés 51 Date d'inscription jeudi 2 juin 2011 Statut Membre Dernière intervention 1 août 2012
15 août 2011 à 19:03
Le dédut du code c'est ces trois lignes ou il manque un bout?
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
13 août 2011 à 19:07
voila comment je démarre mon nouveau codage, j'ai pas encore tester mais cela devrait ressembler à un truc de ce style. reste ensuite à définir le nombre d'index par lecture du csv.


Dim courbes() As LineItem
Dim point_courbe() As List(Of PointPairList)
Dim zg1 As ZedGraphControl
dudu1513 Messages postés 51 Date d'inscription jeudi 2 juin 2011 Statut Membre Dernière intervention 1 août 2012
12 août 2011 à 07:16
Oui oui je suis tout à fait...Et je pense de plus en plus que je vais être obligé de créer 100 LineItem et 100 PointPairList... Dans ce cas existe-t-il une méthode simple de déclarer ces data sans le répéter 100fois? En faisant une boucle mais comment nommer la LineItem ou la PointPairList?

Merci et don't stress!
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
11 août 2011 à 21:38
pour dudu1513, je pense savoir pourquoi cela merdouille !
en effet pour chaque pointpairlist il faut une LineItem (ou autre mais un support pour celui ci)
j'explique :
1-je définis tout d'abord les courbes en lignes ! soit :
Dim HR_mousse, HR_four, HR_ext, T_mousse, T_four, T_ext, P_mousse, V_four, P_ext, P_four As LineItem
2-Et seulement ensuite je définis des zones de mémoire pour les points de ces lignes ! soit :
Dim HR1, HR2, HR3, T1, T2, T3, P1, V1, P2, P3 As New PointPairList() ' une par courbe !
donc il suffit pas de dim un tableau de x valeur de pointpairlist, mais aussi et surtout les courbes ! tu me suis ? à te lire je bosse dessus ce soir, mais bon le temps de me remettre dans le bain aprés 1 an cela ne sera pas pret pour ce soir lol, kenavo à vous deux ;) ++
adn56
berserker42 Messages postés 32 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 26 juillet 2015
11 août 2011 à 08:20
Salut,

Bon ben là ça dépasse mes compétences.

Je suis arrivé à finir mon application pour faire des tracés de déformée de poutre (il faut que je le débug encore). Mais pour faire de l'acquisition et de la lecture de CSV c'est pas pour tous de suite.

Mais merci pour les infos et le code.
dudu1513 Messages postés 51 Date d'inscription jeudi 2 juin 2011 Statut Membre Dernière intervention 1 août 2012
10 août 2011 à 21:11
Le "dim liste2points(100) as new pointpairlist" j'ai déjà essayé et ça coince... Bonne idée pour la musique, je vais faire de même! :D
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
10 août 2011 à 21:03
dans mon code tu as cela : Dim HR1, HR2, HR3, T1, T2, T3, P1, V1, P2, P3 As New PointPairList() il te faudrait faire un Dim liste2points as new list of pointpairlist ou peut être un dim liste2points(100) as new pointpairlist si tu connais ton nombre de courbes. c'est la différence entre une liste et un tableau ;) mais je pense qu'en .NET une liste et plus propre ;) essaye ! j'écoute de la zik pour me vider la tête là ^^
dudu1513 Messages postés 51 Date d'inscription jeudi 2 juin 2011 Statut Membre Dernière intervention 1 août 2012
10 août 2011 à 20:53
Ben c'est ça que je comprends pas. Je peux pas créer une PointPairList pour chaque, je les nomme comment après? A part déclarer 100 PointPairList je voi pas comment je peux faire. Faire une boucle de 0 à 99 et créer comme suit: DataListX as new PointPairList où X correspond au numéro d'itération? Déjà essayé mais ca le fait pas... Enfin voilà, merci de ton aide et bonne soirée!
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
10 août 2011 à 20:46
créé simplement une nouvelle pointpairlist pour chaque colonne trouvé (une liste ou un tableau anciennement) cela devrait le faire je pense, dés que j'ai une paire d'heure j'y boss ;) kenavo sieur et bonne prog !
dudu1513 Messages postés 51 Date d'inscription jeudi 2 juin 2011 Statut Membre Dernière intervention 1 août 2012
10 août 2011 à 20:24
En fait, comme dans le tiens, je crée dynamiquement des checkbox pour chacun des canals avec une couleur qui lui est associée et que l'on peut modifier via une "ColorDialog" (couleur qui vient ensuite s'enregistrer dans un fichier ini). Jusque là j'ai vraiment pris l'idée dans ton soft, ce qui fonctionne bien, d'ailleurs je t'en remercie.
Par contre c'est créer les courbes qui me paraît plus difficile. Si tu utilise une seule PointPairList, les points de chaque courbe se mettent à la suite pour ne faire qu'une courbe. Et si tu efface la PointPairList pour y insérer la courbe suivante, les données précédentes sont effacées sur le graph... Tu vois un peu comment?
Je pensais que, une fois la PointPairList remplie d'une liste de points pour un canal et celle-ci associée à un GraphPane (p.ex myPane.AddCurve(...)), on pouvait réutiliser la même PointPairList pour une liste de points suivantes..Mais en fait non apparement..
Bref je creuse, je creuse! :D
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
10 août 2011 à 19:13
je vais essayer de trouver un peu de temps pour commencer, mais cela ne semble pas impossible, regarde
1-lire la premiére ligne (prévoir une case à cocher si titre présent ou non)
2-afficher les valeurs trouvées dans des textbox créés dynamiquement et ce tant que valeur de colonne+index <> null
3-demander de saisir le numéro de la colonne qui représente l'axe des X
4-demander de saisir le titre et l'unité de chaque valeur des axes Y (couleur, mini,maxi ou en auto, etc...)
5-afficher les courbes.
voila comment je vois la chose.
dudu1513 Messages postés 51 Date d'inscription jeudi 2 juin 2011 Statut Membre Dernière intervention 1 août 2012
9 août 2011 à 18:03
Merci de ta réponse ADN56, cela ne me paraît pas si évident mais je vais essayer!
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
30 juil. 2011 à 19:34
En fait à l'époque mon idée était de faire une analyse du csv en lisant les deux premiére ligne et en les affichant à l'écran pour que l'opérateur puisse sélectionné le type de donnée (date/heure/incrément) et la colone pour l'axe des X et enfin les unitées pour chaque autre colonne des axes Y. Cette source à déja deux ans et pour me remettre dedans il faudra une bonne dose de motivation LOL d'autant plus que l'aide en ligne de la DLL Zedgraph n'est plus disponible sur thecodeprojet -_-" cordialement et merci pour la note.
berserker42 Messages postés 32 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 26 juillet 2015
30 juil. 2011 à 18:15
J'ai quelque suggestions pour d'éventuelles amélioration.

Un moment dans votre code vous parler de récupérer chaque nom des cellules de la première ligne. Chose qui m’intéresserais.
Car pour l'instant c'est vrais hormis d'avoir les mêmes données à chaque fichier c'est un soft limiter à ce processus.

Ma propositions principale est la suivante.
dans le fichier CSV pouvons nous faire aussi la récupération des unités associées aux colonnes?
Si oui dans ce cas en même temps que de récupérer chaque cellules de la première ligne, faire la même opération pour la ligne de dessous avec les unités.

Par contre je ne sais pas si les data loger peuvent faire ça. J'ai bien un datataker un DT500 mais pas le soft de configuration je l'ai jamais utilisé d'ailleurs.

encore merci pour cette source
berserker42 Messages postés 32 Date d'inscription mardi 17 août 2010 Statut Membre Dernière intervention 26 juillet 2015
30 juil. 2011 à 10:15
Salut,

Super source. Actuellement je regarde pour comprendre. Je voudrais faire la m^me chose avec des efforts.
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
22 juil. 2011 à 19:21
oui en effet cela devient vite le foutoir, d'où les BP placés à gauche pour selectionner les courbes à voir. Maintenant s'il y a plus de 100 courbes je vois pas comment faire autrement que de déclarer autant de pointpairlist (faire une boucle ne pas écrire 100 fois la même chose biensûr) ! ou alors il faut en déclarer qu'un seul et le réafecter à chaque changement d'affichage d'une courbe - ce qui peux être long sur des courbes avec plusieurs millier de valeurs ! - Méthode : faire une fonction d'affichage de la courbes en passant en paramétres la list des points et des labels axes X et Y. voila bonne prog et merci pour la note ;) @DN
cs_megamario Messages postés 145 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 14 février 2013
22 juil. 2011 à 17:54
Bonsoir dudu1513 dans mon projet j'ai la possibilité de sauvegarder en CSV énormément de courbe mais je donne la possibilité à l'utilisateur d'en afficher en temps réel (ou en mode lecture) que 4 maximums en même temps. En plus dans mon projet je n'est pas les mêmes unités d'axe Y donc se serait vraiment le foutoir s'il y avait plus de 4 courbes en même temps
dudu1513 Messages postés 51 Date d'inscription jeudi 2 juin 2011 Statut Membre Dernière intervention 1 août 2012
9 juil. 2011 à 22:18
Bonsoir,

Une question concernant la gestion des courbes en insérant les points dans des Pointpairlist. Dans ce logiciel, une liste par courbe est créée, ce qui en fait 15 je crois. Cette méthode est pratique tant qu'il n'y a pas trop de courbe. Mais comment faire lorsque l'on a 100 courbes et que je ne veux pas déclarer 100 Pointpairlist? Voyez-vous une solution?

Merci d'avance
Rminator Messages postés 12 Date d'inscription mardi 17 mai 2011 Statut Membre Dernière intervention 15 juin 2011
14 juin 2011 à 17:03
Bonjour,serait il possible,dŽavoir le lien contenant le code C# de cette application SVP merci,celui indiqué plus haut ne contient que le code VB merci dŽavance
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
2 juin 2011 à 18:20
essaye d'ouvrir le projet sans passer pas le .SLN et testant directement le vbprj pour voir, sinon ce projet à été commencé sous 2005. cordialement
dudu1513 Messages postés 51 Date d'inscription jeudi 2 juin 2011 Statut Membre Dernière intervention 1 août 2012
2 juin 2011 à 17:56
Merci mais est-ce compatible avec la version 2005? (je dois faire mon logiciel en VB 2005..). Je dois également faire un programme où je dois récupérer des données depuis des fichiers CSV (données enregistrées sur une voiture de course) puis les afficher dans des graphes pour faire des analyses de données. Je cherche depuis un moment la meilleure méthode pour utiliser les fichiers CSV..mais j'ai du mal à trouver.

Merci de votre aide
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
2 juin 2011 à 17:50
Bonjour Microsoft Visual Studio Solution File, Format Version 10.00
soit Visual Basic Express 2008.
cordialement
dudu1513 Messages postés 51 Date d'inscription jeudi 2 juin 2011 Statut Membre Dernière intervention 1 août 2012
2 juin 2011 à 10:57
Bonjour,

Merci beaucoup pour ce post, c'est exactement ce qu'il me faut! Par contre avec quelle version de VB ouvrez-vous le projet? J'ai VB 2005 Express Edition et ça ne fonctionne pas...

Merci d'avance
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
11 mars 2011 à 20:32
en effet j'ai relus ma source et l'idéale serait que la premiére ligne du csv contienne le titre de chaque courbe, puis le format (date/double/bool) et enfin la couleur et autres. Le reste serait des datas.
cordialement ADN.
johnvlesk Messages postés 11 Date d'inscription jeudi 16 novembre 2006 Statut Membre Dernière intervention 25 mai 2011
11 mars 2011 à 20:17
Je m'excuse mais j'étais au travail alors pas eu le temps d'analyser, en effet, je me suis vite aperçu que le format ne correspondait pas à mes options régionales (Suisse) :-)).

J'ai réglé ce point et pu tester succinctement l'application et c'est à priori stable. Le code est bien documenté et les améliorations proposées ci-dessus sont de très bonnes idées. Les unités des valeurs de courbes ainsi que le nombre de courbes totales pourraient également pouvoir être configurées (comme le nom et couleur de la courbe).
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
11 mars 2011 à 19:27
En fait, la modif qui bute serais de pouvoir lire n'importe qu'elle CSV, et ce qu'elle que soit le nombre de données à lire et le séparateur ! En ce moment j'ai des soucis d'ordre perso qui m'empéche de me pencher dessus, mais cela est faisable. Comment je vois le truc :
1-lire la premiére ligne du fichier et essayer (try/catch) de le splitter dans un tableau de string ou autre
2-compter le nombre d'occurence de ce tableau et y définir le nombre de courbes à générer
3-lire toutes les lignes dans une boucle depuis le début et les affecter au zedgraph
devrait pas être trop dur, si question je reste dasn les parages.

PS : pour le probléme de csv je vois pas d'ou cela vient , fait des points d'arrêts pour voir d'ou viens le binss. ++ (ce soft tourne chez un client depuis plus d'1 ans
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
11 mars 2011 à 17:02
en effet, merci pour le comm.
johnvlesk Messages postés 11 Date d'inscription jeudi 16 novembre 2006 Statut Membre Dernière intervention 25 mai 2011
11 mars 2011 à 14:16
Hello, j'ai un souci lors du chargement du fichier CSV, y compris avec celui dans ta source... Impossible de lire le fichier de données, incompatible ! Sélectionner un autre fichier.
dans le fichier config.ini ne figure que les couleurs de courbes, il serait agréable de pouvoir paramétrer le type de fichier CSV (séparateur ";" ou "," et décimale "," ou ".").

Sinon le design est attractif et l'idée est excellente, bravo.
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
24 nov. 2009 à 19:00
mise à jour de la capture écran ne marche pas dsl...
Mais c'est bien les nouveaux controles de Mayzz et claudetom qui sont utilisés.
Merci aussi à Sid_Mohammed pour l'idée et le premier dev de ce controle.
Kénavo
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
15 nov. 2009 à 19:18
mise à jour online !
cs_megamario Messages postés 145 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 14 février 2013
2 nov. 2009 à 08:28
Merci, cela me donne une bonne base pour commencer
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
31 oct. 2009 à 17:28
ajout un point à la courbe et tu fais par exemple :

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
' Timer1.Stop()
'**************************************************************************************************
'************************* LECTURE DES VALEURS TOR ET DES PORTS COM RS232 *************************
'**************************************************************************************************
Select Case Second(Now)
Case 0
y(0) = lecturePoids()

Case 10
Dim val_ambiant As Double() = lectureHD2001(SerialPort2) ' °C / %HR / HPA
y(6) = val_ambiant(0)
y(7) = val_ambiant(1)
y(8) = val_ambiant(2)

Case 20
Dim val_four As Double() = lectureHD2001(SerialPort3) ' °C / %HR / HPA / m/s
y(3) = val_four(0)
y(4) = val_four(1)
y(9) = val_four(2)
y(5) = val_four(3)

Case 30
Dim val_mousse As Double() = lectureTH200() ' %HR / °C
y(2) = val_mousse(0)
y(1) = val_mousse(1)

Case 40
'variable de l'axe X = temporelle
axeX = New XDate(Year(Now), Month(Now), DateAndTime.Day(Now), Hour(Now), Minute(Now), Second(Now))
'variable de l'axe Y() = datas lues
M1.Add(axeX, y(0)) 'mousse
C1.Add(axeX, y(1)) 'mousse
HR1.Add(axeX, y(2)) 'mousse
C2.Add(axeX, y(3)) 'four
HR2.Add(axeX, y(4)) 'four
v1.Add(axeX, y(5)) 'four
C3.Add(axeX, y(6)) 'ambiant
HR3.Add(axeX, y(7)) 'ambiant
P1.Add(axeX, y(8)) 'ambiant
P2.Add(axeX, y(9)) ' four
Case 45
' mise à jour des graphs
zg1.GraphPane.AxisChange()
zg2.GraphPane.AxisChange()
zg3.GraphPane.AxisChange()
zg4.GraphPane.AxisChange()
' rafraichi la feuille, sinon les courbes ne se mettent plus à jour !
Me.Refresh()
etc....
cs_megamario Messages postés 145 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 14 février 2013
31 oct. 2009 à 09:43
C'est parfait pour afficher mes courbes avec quelque modif mais par contre je cherche à faire du temps réel. C'est a dire crée et afficher bien sur la courbe en même temps qu'arrive mes données a savoir d'un intervalle de 1 seconde a 1 minute. et pour une durée de quelques minutes a plusieurs heures.

Apparemment j'ai vu que c'était possible, mais je pense qu'il faut réactualisé la courbe à chaque acquisition. Mais vu la qualité de zedgraph y a t'il quelque chose de plus simple et moins gourmand en ressource que de recrée la courbe a chaque acquisition.
cs_megamario Messages postés 145 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 14 février 2013
31 oct. 2009 à 09:38
Merci
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
29 oct. 2009 à 17:40
Alors une petite note pour encourager ^^ merci
cs_megamario Messages postés 145 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 14 février 2013
29 oct. 2009 à 14:07
Merci beaucoup, j'allais justement implémenter ZEDGRAPH à mon projet de stage. Pour afficher des courbes de charge décharge batterie grâce à mes données reçu et stocker en CSV.
Rejoignez-nous