Laden...

SerialPort: Mehrere Daten aus Wetterstation auslesen und zusammenfassen

Erstellt von bZzR vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.125 Views
Thema geschlossen
B
bZzR Themenstarter:in
7 Beiträge seit 2011
vor 12 Jahren
SerialPort: Mehrere Daten aus Wetterstation auslesen und zusammenfassen

Schönen guten Tag

Die Wetterstation enhält einen Microcontroller und Temperaturfühler, Luftdrucksensor, Luftfeuchtigkeitsensor.
Diese Komponenten wurden von meinen Klassenkameraden programmiert.

Nun muss ich mit meinen C# Programm die Daten empfangen und will diese Zahlen in verschiedene Textboxen anzeigen. Und immer aktualisiert werden.

Also müsste ich zuerst "getTemp" senden damit mir die Wetterstation die Temperaturdaten zusendent und denn in der richtigen Textbox anzeigen lassen
Als nächsten das mit dem Druck ("getDruck") und denn mit der Feuchtigkeit(getDruck)

Wie sende ich dies nach und nach und weise es den richtigen textboxen zu ?

C
2.122 Beiträge seit 2010
vor 12 Jahren

Was getTemp ist und so kann von uns ja keiner wissen.
Dei eigentliches Problem scheint also zu sein, dass du nicht weißt wie man seriell Daten sendet und empfängt. Dazu gibts aber sicher schon einiges zu finden.
SerialPort-Klasse
Hier dürften einige Beispiele drin sein.

B
bZzR Themenstarter:in
7 Beiträge seit 2011
vor 12 Jahren

hey 😃

doch ich kann schon senden und empfangen

gehen wir nun mal nur von dem druck aus und einer textbox
ich sende einfach ein string alle 3sek "getPressure"

nun wird mir seriell nacheinander zB eine 4stellige zahl gesendet 4214
beim ersten versuch hat meine textbox diese aber nicht in einer zeile angezeigt sonder nur nach einander
4
2
1
4

nun muss ich beim einlesen diese ziffern zwischen speichern? in form in einem array und einer schleife?

296 Beiträge seit 2007
vor 12 Jahren

Hallo bZzR,

nun muss ich beim einlesen diese ziffern zwischen speichern? in form in einem array und einer schleife?

Habt ihr ein Steuerzeichen vereinbart, das angibt wann die letzte Ziffer gesendet wurde? Oder sind es immer vier Ziffern?

Eigentlich egal... das einfachste ist wohl ein StringBuilder, wo du jede Ziffer einfach anhängst und am ende den String in den richtigen Typ parst.

B
bZzR Themenstarter:in
7 Beiträge seit 2011
vor 12 Jahren

versteh ich das so richtig?

  StringBuilder builder = new StringBuilder();

            Text = serialPort1.ReadExisting();

            builder.Append(Text);
            builder.Append(Text);
            builder.Append(Text);
            builder.Append(Text);

            textBoxPressure.Text = builder.ToString();
296 Beiträge seit 2007
vor 12 Jahren

Nein,

du liest gerade alle übertragenen Zeichen aus dem Buffer und schreibst diese viermal hintereinander in den StringBuilder.

Ich dachte an sowas:


StringBuilder builder = new StringBuilder();

while(builder.Length < 4) {
   builder.Append(serialport1.ReadChar());
}

int value = int.Parse(builder.toString());

Hinweis von herbivore vor 12 Jahren

nun wird mir seriell nacheinander zB eine 4stellige zahl gesendet 4214
beim ersten versuch hat meine textbox diese aber nicht in einer zeile angezeigt sonder nur nach einander

das ist nun wirklich ein Problem, das unter [Hinweis] Wie poste ich richtig? Punkt 1.1.1. fällt. Das hat mit SerialPort auch kaum was zu tun, sondern eigentlich nur mit String-Verarbeitung. Und die sollte sitzen. Wenn nicht, siehe [FAQ] Wie finde ich den Einstieg in C#?.

Thema geschlossen