RS232 Datenstring einlesen und in einer Textbox anzeigen

Alle Fragen zur Programmierung, die nicht in die speziellen Themen passen
Antworten
Seecosmea
Foriker
Beiträge: 31
Registriert: So 17. Sep 2017, 15:05
Wohnort: Leer (Ostfriesland)
Kontaktdaten:

RS232 Datenstring einlesen und in einer Textbox anzeigen

Beitrag von Seecosmea » Do 4. Jan 2018, 16:48

Hallo,

ich versuche über eine IR Schnittstelle meinen Stromzähler (Easymeter Q3DA) auszulesen und in Gambas in einer Textbox anzuzeigen. Hier erstmal was ich im 2 sec takt über den seriellen Port reinbekomme:

/ESY5Q3DA1004 V3.02

1-0:0.0.0*255(0273011003143)
1-0:1.8.0*255(00028472.7466511*kWh)
1-0:21.7.255*255(000258.41*W)
1-0:41.7.255*255(000442.63*W)
1-0:61.7.255*255(000001.68*W)
1-0:1.7.255*255(000702.72*W)
1-0:96.5.5*255(82)
0-0:96.1.255*255(1ESY1011003143)
!

Habe folgendes Programm zusammengewürfelt:

Public v24Settings As Settings
Public sStrom As String

Public Sub Form_Open()

GridView1.Columns.Count = 10
GridView1.Rows.Count = 150
GridView1.Columns[0].Width = 20
GridView1.Columns[1].Width = 300
GridView1.rows.Height = 50
If RS232.Status = Net.Active Then
Close RS232
Else
RS232.PortName = "/dev/ttyUSB0"
RS232.Speed = "9600"
RS232.Parity = "1"
RS232.DataBits = "7"
RS232.StopBits = "1"
RS232.FlowControl = "0"
Try RS232.Open()
If Error Then
Message.Error("Fehler beim Öffnen der V24-RS232-USB-Adapter-Schnittstelle!")
Return
Endif
Endif
End '


Public Sub RS232_Read()
Dim x As Integer
Dim Einzelwert As String
Dim Liste As String[]
Dim text As String
If sStrom Like "*!*" Then TextArea1.Clear
If sStrom Like "*!*" Then GridView1.Clear
Read #RS232, sStrom, Lof(RS232)
TextArea1.Text = TextArea1.Text & SStrom
x = 0
text = TextArea1.Text
Liste = Split(text, Chr$(41))
For Each Einzelwert In Liste
GridView1[x, 1].Text = Einzelwert
GridView1[x, 0].Text = x
x = x + 1
Next
e_count.text = Mid(GridView1[1, 1].Text, 16, 16)
e_Watt.text = Mid(GridView1[5, 1].Text, 18, 9)

End

Die Daten werden erstmal in einer Textarea1 geschrieben, von dort gehen die Daten Zeile für Zeile in die GridView1.
Danach werden über Mid String Funktion die Daten in Textbox e_count & e_Watt angezeigt.

Mein Programm besteht aus:

1 * TextArea
1 * GridView
2 * Textboxen

Das Programm funktioniert ! - Ich bin mir sicher das man es auch besser machen kann, kürzer, effizienter ! Ich würde mich sehr über Verbesserungsvorschläge freuen.

Benutzeravatar
gambi
Moderator
Beiträge: 319
Registriert: Mi 8. Mai 2013, 21:46
Kontaktdaten:

Re: RS232 Datenstring einlesen und in einer Textbox anzeigen

Beitrag von gambi » Sa 6. Jan 2018, 14:28

Hallo Seecosmea,
ein Ansatz zur Verbesserung wäre z.B., die Daten in einem Schwung in das GridView zu bringen. Wie das geht, ist im Gambas-Buch beschrieben:
https://gambas-buch.de/dw/doku.php?id=k ... ]=gridview

Viel Erfolg
gg

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste