Hallo,
ich bin VB (Version 5)-Hobbynutzer und mache die statistische Auswertung der Daten meiner Wetterstation mit einem kleinen, selbst geschriebenen Programm.
Dazu übertrage ich mittels des Programms die Daten aus einer von der Wetterstationssoftware angelegten Dat-Datei in eine Excel-Datei und es werden die gewünschten Auswertungen ausgeführt.
Die Wetterstation überträgt alle 10 Sekunden einen Datenblock via COM-Schnittstelle an den PC.
In der *.dat Datei wird der Datenblock in einer Zeile wie folgt abgelegt:
04:15:00 0,0 0,0 0,0 110 108 111 5,1 5,0 5,1 97 97 97 5,0 5,0 5,0 1014,0 1014,0 1014,0 19,6 19,6 19,6 46 46 46 0,0 5,0 5,0 5,0
(Uhrzeit MaxTemperatur MinTemperatur MittelwertTemperatur MaxLuftdruck MinLuftdruck usw. / immer mit Leerzeichen getrennte Werte)
Ich möchte die Daten gerne direkt mit einem VB-Programm einlesen.
Das gelingt mir aber nur bedingt.
Folgende Befehlsfolge liest mir scheinbar den ganzen Datenblock in einem für mich nicht auswertbaren Format ein.
Sub Einlesen()
Dim Instring As String
MSComm1.CommPort = 1
MSComm1.InputMode = comInputModeBinary
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 180
Instring = MSComm1.Input
Eingabezelle = Instring
lblEmpfang.Caption = Eingabezelle
MSComm1.PortOpen = False
End Sub
Bei InputMode: MSComm1.InputMode = comInputModeBinary
erhalte ich:
? ???%?????? ???:???????????????????????????c?8???C??=??Â????? ?
und bei InputMode: MSComm1.InputMode = comInputModeText
Ï 0% p ‡1%%
Wie kann ich den Datenblock richtig zerlegen bzw. ein sinnvolles Format erhalten?
Für einen Tipp wäre ich sehrdankbar
Volker Kunz
ich bin VB (Version 5)-Hobbynutzer und mache die statistische Auswertung der Daten meiner Wetterstation mit einem kleinen, selbst geschriebenen Programm.
Dazu übertrage ich mittels des Programms die Daten aus einer von der Wetterstationssoftware angelegten Dat-Datei in eine Excel-Datei und es werden die gewünschten Auswertungen ausgeführt.
Die Wetterstation überträgt alle 10 Sekunden einen Datenblock via COM-Schnittstelle an den PC.
In der *.dat Datei wird der Datenblock in einer Zeile wie folgt abgelegt:
04:15:00 0,0 0,0 0,0 110 108 111 5,1 5,0 5,1 97 97 97 5,0 5,0 5,0 1014,0 1014,0 1014,0 19,6 19,6 19,6 46 46 46 0,0 5,0 5,0 5,0
(Uhrzeit MaxTemperatur MinTemperatur MittelwertTemperatur MaxLuftdruck MinLuftdruck usw. / immer mit Leerzeichen getrennte Werte)
Ich möchte die Daten gerne direkt mit einem VB-Programm einlesen.
Das gelingt mir aber nur bedingt.
Folgende Befehlsfolge liest mir scheinbar den ganzen Datenblock in einem für mich nicht auswertbaren Format ein.
Sub Einlesen()
Dim Instring As String
MSComm1.CommPort = 1
MSComm1.InputMode = comInputModeBinary
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputLen = 0
MSComm1.PortOpen = True
Do
DoEvents
Loop Until MSComm1.InBufferCount >= 180
Instring = MSComm1.Input
Eingabezelle = Instring
lblEmpfang.Caption = Eingabezelle
MSComm1.PortOpen = False
End Sub
Bei InputMode: MSComm1.InputMode = comInputModeBinary
erhalte ich:
? ???%?????? ???:???????????????????????????c?8???C??=??Â????? ?
und bei InputMode: MSComm1.InputMode = comInputModeText
Ï 0% p ‡1%%
Wie kann ich den Datenblock richtig zerlegen bzw. ein sinnvolles Format erhalten?
Für einen Tipp wäre ich sehrdankbar
Volker Kunz