Hallo Leute, ich möchte am Pc Daten vom Mikrocontroller in einer Graphik darstellen. Das ganze möchte ich in C# realisieren. Die Daten vom Mikrocontroller zum Pc bringe ich über die Serielle Schnittstelle und das kriege ich auch schon recht gut hin. Für den Graph verwende möchte ich die Chart Klasse verwenden. Was ich jetzt noch nicht weiß wie ich die Daten die ich alle 100mS kriege vernünftig anzeige und ob ich für die x Achse die 100mS Takt verwenden soll. Wie soll man die Daten vernünftig in "Series" packen und wann giebt man das Ganze aus. Entschuldigt meine Unwissenheit bin noch ein blutiger Anfänger. Vielen Dank für Eure Hilfe sepp d
Das kommt drauf an, was du für Daten hast und wie die Zuordnung ist. Wenn du zum Beispiel pro Zeiteinheit nur einen Wert hast (sagen wir mal, du misst alle 100ms eine Spannung), dann sind diese Werte nur eine Series im Chart-Control. Deine Zuordnung ist also: t(ms) U(V) [0] [2.1] [100] [2.2] [200] [2.3] [300] [2.4] ... (Angenommen, die 2.x sind deine gemessenen Werte) Diese Datenzuordnung (z.B. als Dictonary verpackt) sind eine Series.
Wann aber gebe ich die Series aus? Ich möchte ziemlich in Echtzeit ausgeben aber geht das so überhaupt? Danke für deine Hilfe Sepp
Wann man die ausgibt? Das ist falsch gedacht, denke ich. Dein Chart ist immer da, sobald das Programm läuft. Wenn du einen neuen Messwert bekommst, packst du ihn in die Serie, z.B. mit
1 | series.Points.Add(...); |
Dann musst du sicher noch das Chart refreshen. Wie die Methodenaufrufe aussehen, musst du dir mal selber raussuchen.
Vielen Dank für Deine Hilfe. Ich habe ein wenig experimentiert und dabei bin ich auf folgendes Problem gestoßen. Ich möchte in meinen Series immer gleich viele Einträge haben das heißt die ältesten sollten gelöscht werden und die neuen vorne dazugegeben ist das möglich. Ich hoffe ich hab mich richtig ausgedrückt! Gruß Sepp
Ich komme nicht weiter mit meinem Problem. Wäre nett wenn mir jemand helfen könnte! Danke Sepp
Hallo die Lösung ist eigentlich ganz einfach. Du legst eine Queue (FIFO) oder eine List mit den Datenpunkten an. Dann bindest du diese Queue mittels Databinding an dein Chart. (Beispiele findest du genügend im Internet) Beim einfügen in die Queue prüfst du ob eine bestimmte Größe überschritten ist und entnimmst ggf. das älteste Element aus der Queue/List. Deine Grafik solltest du nach dem einfügen und entfernen von Elementen aus der List natürlich aktuallisieren. Viele Grüße, Warhawk
Super Tipp mit Queue echt super Klasse. Wenn ich jetzt aber in den Eigenschaften meiner Chart unter DataSurce mein Queue auswählen will klappt das nicht. Muss ich die Bindung irgendwie anders machen? Entschuldigt mich wenn ich mich dumm anstelle aber bin leider noch ganz am Anfang in c# Danke und schönen Abend Sepp
sepp schrieb: > Wenn ich jetzt aber in den Eigenschaften meiner Chart unter DataSurce > mein Queue auswählen will klappt das nicht. > Muss ich die Bindung irgendwie anders machen? Woher sollen wir denn wissen, wie du es machst und was dabei nicht funktioniert? Es gibt im WWW unzählige Beispielcodes für DataBindings unter C#. Such einfach mal ein bisschen und probiere rum. Dabei kann man ne Menge lernen. Ich glaube ja, du solltest dich erstmal mit den Grundlagen von OO-Programmierung und C# auseinander setzen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.