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 ?
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.
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?
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.
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();
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());
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#?.