Hallo,
ich habe mit Visual Basic angefangen und man kommt sehr schell voran. Wenn ich nicht weiter wusste, hab ich einfach im Internet nachgeschaut und bisher kam ich so auch durch.
Nun habe ich bei meinem jetzigen Programm ein Problem, mit der Abfrage der empfangenen Daten:
Schicke ich über den COM Port die 1 raus, dann erhalte ich die aktuelle Temperatur zurück, die steht dann in Temp1.Text.
Im Prinzip funktioniert es, aber der Temperaturwert der abgespeichert wird, ist immer der vorherige und nicht der aktuelle, der gerade abgefragt wurde.
Also angenommen Temp1.Text ist jetzt 23 und ich führe Button7_Click aus, dann frägt er zwar die aktuelle Temperatur z.B. 24°C ab, aber er speichert dann die 23 ab und trägt erst dann die 24 bei Temp1.Text ein.
Und dann wird erst beim nächsten Mal die 24 verwendet abgespeichert.
Ich will aber, dass der die aktuelle Temperatur, die er im Moment abgefragt hat, dann sofort abspeichert.
Ich hab es unter anderem auch schon mit ReadExisting oder ReadLine versucht, aber dann bekomme ich immer den Fehler, das der abgefragte Wert 0 ist.
Danke vorab.
ich habe mit Visual Basic angefangen und man kommt sehr schell voran. Wenn ich nicht weiter wusste, hab ich einfach im Internet nachgeschaut und bisher kam ich so auch durch.
Nun habe ich bei meinem jetzigen Programm ein Problem, mit der Abfrage der empfangenen Daten:
VB.NET-Quellcode
- Private Sub SerialPort1_DataReceived(sender As System.Object, e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
- Me.Invoke(Sub() Temp(SerialPort1.ReadExisting))
- End Sub
- Private Sub Temp(ByVal s As String)
- Temp1.Text = s
- RichTextBox2.Text &= s
- End Sub
- Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
- Dim Uhrzeit As String
- Uhrzeit = Now.ToString("HH:mm") 'Timeofday
- Dim Datum As String
- Datum = Now.ToString("dd.MM.yyyy") 'Dateofday
- If TextBox1.Text <> "" Then
- SerialPort1.Write(1 & vbCr)
- System.Threading.Thread.Sleep(1000)
- Dim textResult As String = Datum + " " + Uhrzeit + ";" + Temp1.Text & vbCrLf
- My.Computer.FileSystem.WriteAllText(FolderBrowserDialog1.SelectedPath & "\Temperaturwerte.csv", (textResult), True)
- End If
- End Sub
Schicke ich über den COM Port die 1 raus, dann erhalte ich die aktuelle Temperatur zurück, die steht dann in Temp1.Text.
Im Prinzip funktioniert es, aber der Temperaturwert der abgespeichert wird, ist immer der vorherige und nicht der aktuelle, der gerade abgefragt wurde.
Also angenommen Temp1.Text ist jetzt 23 und ich führe Button7_Click aus, dann frägt er zwar die aktuelle Temperatur z.B. 24°C ab, aber er speichert dann die 23 ab und trägt erst dann die 24 bei Temp1.Text ein.
Und dann wird erst beim nächsten Mal die 24 verwendet abgespeichert.
Ich will aber, dass der die aktuelle Temperatur, die er im Moment abgefragt hat, dann sofort abspeichert.
Ich hab es unter anderem auch schon mit ReadExisting oder ReadLine versucht, aber dann bekomme ich immer den Fehler, das der abgefragte Wert 0 ist.
Danke vorab.