vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Oszilloskop über MS Chart 
Autor: Ortech
Datum: 06.11.19 14:56

hallo,

ich lese Daten von einem USB 6000 (National Instruments) mit VB.net ein und zeige es über ein Chart an.

Allerdings kenne ich mich mit den Eigenschaften dieser Chart Klasse nicht aus.

Speziell die x Achse betreffend, finde auch auch im www keine Erklärung, die mir weiterhilft.

Also, ich zeige Daten an, die in einem Wertebereich zwischen 0 und 5 (Volt) auf der Y-A an. Passt soweit.
Die Zeit läuft entlang der X-A.

Mein Code läuft in einem 10ms Timer.

Welche Parameter des Chart Objektes muss ich wie einstellen, dass ich ein gleichmäßiges horizontales Scrollen erreiche?

Gruß, Alois
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Oszilloskop über MS Chart 
Autor: HenryV
Datum: 08.11.19 09:31

Hallo Alois

Der Trick um das Chart zu "scrollen", ist das du beim hinzufügen des letzten Punktes den ersten aus der Serie entfernst.

Hier das Beispiel (WorkingWithData>RealTimeData) von Windows Forms Samples Environment for Microsoft Chart Controls.

Imports System.Windows.Forms.DataVisualization.Charting
...
 
Private random As New Random()
Private pointIndex As Integer = 0
...
 
Private Sub timerRealTimeData_Tick(sender As Object, e As System.EventArgs)
   ' Define some variables
   Dim numberOfPointsInChart As Integer = 200
   Dim numberOfPointsAfterRemoval As Integer = 150
 
   ' Simulate adding new data points
   Dim numberOfPointsAddedMin As Integer = 5
   Dim numberOfPointsAddedMax As Integer = 10
   Dim pointNumber As Integer
   For pointNumber = 0 To (random.Next(numberOfPointsAddedMin, _
     numberOfPointsAddedMax)) - 1
      chart1.Series(0).Points.AddXY(pointIndex + 1, random.Next(1000, 5000))
      pointIndex += 1
   Next pointNumber
 
   ' Adjust Y & X axis scale
   chart1.ResetAutoValues()
 
   ' Keep a constant number of points by removing them from the left
   While chart1.Series(0).Points.Count > numberOfPointsInChart
      ' Remove data points on the left side
      While chart1.Series(0).Points.Count > numberOfPointsAfterRemoval
         chart1.Series(0).Points.RemoveAt(0)
      End While
 
      ' Adjust X axis scale
      chart1.ChartAreas("Default").AxisX.Minimum = pointIndex - _
        numberOfPointsAfterRemoval
      chart1.ChartAreas("Default").AxisX.Maximum = chart1.ChartAreas( _
      "Default").AxisX.Minimum + numberOfPointsInChart
   End While
 
   ' Invalidate chart
   chart1.Invalidate()
End Sub 'timerRealTimeData_Tick
...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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-2024 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