| |
VB.NET - Ein- und UmsteigerSensordaten in Array speichern und GUTEN Zugriff darauf haben | | | Autor: Seek1 | Datum: 05.07.12 16:02 |
| Hallo Leute,
Möchte mir ein Visualisierprogramm machen, um Daten zu speichern.
Das einlesen des Mikrocontrollers über USB funktioniert bereits.
Was geht nicht:
Ich kann die Daten nicht sonderlich gut "einreihen".
Ich lese die Sensornamen in eine Checklistbox ein.
Dort steht z.B.
Sensornummer 1
Aussensensor 67
Innensensor 34
usw.
Wie kann ich nun eine Struktur anlegen, um die Daten als erstes in einem Array zu speichern und dann geschickt darauf zuzugreifen?
z.B. so:
msgbox(SensorArray. (Sensorlist.SelectedItem).Temperature(12))
Bzw. neue Werte einzutragen.
SensorArray.((Sensorlist.SelectedItem).Temperature(Ubound(SensorArray.((Sensorlist.SelectedItem).Temperature) +1) = "23.78"
Gibt es da eine vernünftige Lösung? | |
Re: Sensordaten in Array speichern und GUTEN Zugriff darauf haben | | | Autor: xirton | Datum: 05.07.12 18:48 |
| Man sollte vermeiden die Daten direkt in das Control zu werfen (bei dir die Listbox). Besser ist es, sich eine Datenstruktur aufzubauen und die per Databinding an deine Listbox zu übergeben.
Schreib dir zum Beispiel eine Klasse, welche die Sensoren abbildet. Mit Eigenschaften für den Sensornamen, Beschreibung und eine Liste von Messwerten (z.B. List of(Double)).
Für jeden der Sensoren erzeugst du eine Instanz, setzt den Namen, Beschreibung und in die Liste trägst du neue Werte ein (Messwertliste.add(<Wert>)).
Zum schluß einfach alle Sensorobjekte in eine einfache Liste werfen (List (of deinSensorObjekt) oder besser noch eine Bindinglist verwenden, wenn du Änderungen automatisch in der Listbox erkennen willst.
Nun einfach die Liste an deine Listbox binden: listbox.datasource = deineListe.
Anschließend die Anzeige setzen: Listbox.displaymember = "Sensorname".
Nun hast du all deine Sensoren in der Listbox. Wenn du nun zum Beispiel den letzten Wert deines gerade ausgewählten Sensors wissen willst: msgbox(ctype(Listbox.selecteditem,<deinSensorObjekt>).Messwertliste(Messwertliste.count - 1).tostring).
Wenn du keine Lust auf die Objektstruktur hast, kannst du auch ein Dictionary (of String, List(of Double)) machen. Und das Dictionary per Bindingsource an die Listbox binden.
Wenn du detailiertere Hilfe benötigst, einfach nochmal melden.
Beitrag wurde zuletzt am 05.07.12 um 18:50:42 editiert. | |
Re: Sensordaten in Array speichern und GUTEN Zugriff darauf haben | | | Autor: Manfred X | Datum: 05.07.12 19:01 |
| Hallo!
Deine Struktur ist davon abhängig, wie die Messungen bei Dir einlaufen.
Kommt z.B. zu einem bestimmten Zeitpunkt ein Datenpaket, das die
aktuell ermittelten Messwerte aller Sensoren enthält, würde ich eine
DataTable erstellen (Spalten = Zeitstempel und Namen der Messkanäle).
In jede Zeile kommt der Inhalt eines Datenpakets.
Datenbindung der Table-Spalten an beliebige Controls ist möglich.
MfG
Manfred | |
Re: Sensordaten in Array speichern und GUTEN Zugriff darauf haben | | | Autor: Manfred X | Datum: 05.07.12 19:06 |
| Hallo!
Beim Binden längerer Listen: Zuerst Member festlegen, danach die Source zuweisen. | |
| 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 |
|
|
Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|
|
|
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
|
|