vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Real Time Chart - Teil1 
Autor: Manfred X
Datum: 17.02.11 08:15

Hallo!

Hier mal ein Beispiel für einen RealTimeChart.
Die Klasse ist vom Chart-Control abgeleitet.
Sie muss zunächst initialisiert werden.
Dabei wird angegeben, wieviele Datenpunkte
anzuzeigen sind, wie die Y-Achse (=Datenausprägung)
zu skalieren ist u.a. - z.B. ob eine Liste
der Datenpunkte erstellt wird.

Die Datenpunkte werden einfach per "AddDataPoint"
angefügt und in der Klasse mit einem Zeitstempel versehen.
Das Beispiel arbeitet mit einer Sekundenskala auf der
X-Achse, die variabel auf die Zeitdifferenz zwischen dem
ersten und letzten angezeigten Datenpunkt reagiert.
"Veraltete" Datenpunkte werden aus dem Chart entfernt.

Hier Teil 1:

Imports System.Windows.Forms.DataVisualization
 
Public Class clsChartRealTime
    Inherits Charting.Chart
    Dim _maxpoints As Integer   'Anzahl der angezeigten Datenpunkte
    Dim _starttime As Long      'Startzeitpunkt  (Bezugspunkt für Zeitstempel)
    Dim _showmarker As Boolean      'Datenpunkt-Marker zeigen
    Dim _showvaluelabel As Boolean 'Datenpunkt-Wert als Label zeigen 
    Dim _createdatalist As Boolean    'Datenliste führen
    Dim _Initialized As Boolean
    Const cDataSeries As String = "DataSeries"
    Const cTicksPerSecond As Long = CLng(10 ^ 7)  'Anzahl Ticks pro Sekunde
 
    Public Structure strucChartData
        Dim time As Date
        Dim value As Double
    End Structure
 
    Dim DataList As New List(Of strucChartData) 'optionale Liste der Daten
 
    ''' <summary>Definition und Initialisierung des RealTimeCharts</summary>
    ''' <param name="PointsToShow">Wie viele Punkte sollen maximal angezeigt 
    ' werden?</param>
    ''' <param name="ymax">Obergrenze der Y.Achse (größter Datenwert)</param>
    ''' <param name="ymin">Untergrenze der Y-Achse (kleinster Datenwert)</param>
    ''' <param name="ShowPointMarker">Sollen Datenpunkte zusätzlich markiert 
    ' werden?</param>
    ''' <param name="ShowValueAsLabel">Sollen Datenwerte als Label im Chart 
    ' angezeigt werden?</param>
    ''' <param name="CreateDataList">Sollen alle Daten in einer Liste 
    ' gesammelt werden?</param>
    Public Sub Init(ByVal PointsToShow As Integer, ByVal ymax As Double, ByVal _
      ymin As Double, _
                    Optional ByVal ShowPointMarker As Boolean = False, _
                    Optional ByVal ShowValueAsLabel As Boolean = False, _
                    Optional ByVal CreateDataList As Boolean = False)
        'Parameter übernehmen
        If PointsToShow < 3 Then PointsToShow = 3
        ymax = Math.Max(ymin + 0.0001, ymax)
        _maxpoints = PointsToShow : _starttime = Now.Ticks
        _showmarker = ShowPointMarker : _showvaluelabel = ShowValueAsLabel
        _createdatalist = CreateDataList
 
        'Achsen einrichten
        With MyBase.ChartAreas(0)
            With .AxisX
                .CustomLabels.Clear()
                .MajorGrid.Enabled = False
                .MajorTickMark.TickMarkStyle = Charting.TickMarkStyle.AcrossAxis
                .MajorTickMark.Enabled = True
                .MajorTickMark.Size = 6
                .LabelAutoFitStyle = Charting.LabelAutoFitStyles.DecreaseFont
                .IntervalType = Charting.DateTimeIntervalType.Number
                .Interval = cTicksPerSecond
            End With
            .AxisY.Minimum = ymin : .AxisY.Maximum = ymax
        End With
 
        MyBase.Series.Clear() : MyBase.Legends.Clear()
        'Datenserie einrichten
        MyBase.Series.Add(cDataSeries)
        With MyBase.Series(cDataSeries)
            .ChartType = Charting.SeriesChartType.Line : .BorderWidth = 2
        End With
        DataList.Clear()
        _Initialized = True
    End Sub


Beitrag wurde zuletzt am 17.02.11 um 08:16:21 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Chart Control mit Array6.311Seo16.02.11 15:47
Re: Chart Control mit Array5.612ModeratorDaveS16.02.11 16:01
Re: Chart Control mit Array6.070Manfred X16.02.11 17:32
Re: Chart Control mit Array5.650Seo17.02.11 07:45
Real Time Chart - Teil17.175Manfred X17.02.11 08:15
Real Time Chart - Teil 25.976Manfred X17.02.11 08:17
Re: Real Time Chart - Teil 25.552Seo17.02.11 09:49
Kleine Demo zum Real Time Chart5.820Manfred X17.02.11 10:16
Re: Kleine Demo zum Real Time Chart5.837Seo17.02.11 10:26
Re: Kleine Demo zum Real Time Chart5.597Seo17.02.11 11:09
Re: Kleine Demo zum Real Time Chart5.732Manfred X17.02.11 13:06
Re: Kleine Demo zum Real Time Chart5.443Seo17.02.11 15:06
Re: Kleine Demo zum Real Time Chart5.160norman.koplansky24.11.11 18:52
Re: Kleine Demo zum Real Time Chart5.191Manfred X24.11.11 19:22
Re: Kleine Demo zum Real Time Chart5.219norman.koplansky25.11.11 07:48

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel