;1234 TN 12:34:56.780 ;1234 TN 5678.910 EnableExplicit Define Format.i, Teilnehmernummer.i, Stunden.i, Minuten.i, Sekunden.i, Zehntel.i, Zeile.s, Ausgabe.s, Bytebuffer.i, ser.i, out.i Define Schnittstelle.s = ProgramParameter(0) Define Dateiname.s = ProgramParameter(1) If OpenConsole() ser = OpenSerialPort(#PB_Any, Schnittstelle, 9600, #PB_SerialPort_NoParity, 8, 1, #PB_SerialPort_NoHandshake, 2048, 2048) If ser PrintN("Schnittstelle " + Schnittstelle + " geoeffnet") out.i = OpenFile(#PB_Any, Dateiname, #PB_File_Append) If out PrintN("Datei " + GetFilePart(Dateiname) + " geoeffnet") PrintN("Einlesen der Daten mit >ESC< beenden") Repeat If AvailableSerialPortInput(ser) If ReadSerialPortData(ser, @Bytebuffer, 1) If Bytebuffer = 13 Teilnehmernummer = Val(Left(Zeile, 4)) If Mid(Zeile, 6, 2) = "TN" If Mid(Zeile, 8, 5) = " " Format = 1 Stunden = 0 Minuten = 0 Sekunden.i = Val(Mid(Zeile, 13, 4)) Zehntel.i = Val(Mid(Zeile, 18, 2)) Else Format = 0 Stunden.i = Val(Mid(Zeile, 10, 2)) Minuten.i = Val(Mid(Zeile, 13, 2)) Sekunden.i = Val(Mid(Zeile, 16, 2)) Zehntel.i = Val(Mid(Zeile, 19, 2)) EndIf EndIf Ausgabe = Str(Format) + ";" + Str(Teilnehmernummer) + ";" Ausgabe + Str(Stunden) + ";" + Str(Minuten) + ";" + Str(Sekunden) + ";" Ausgabe + Str(Zehntel) If out WriteStringN(out, Ausgabe, #PB_Ascii) FlushFileBuffers(out) EndIf Zeile = "" Else Zeile + Chr(Bytebuffer) EndIf EndIf Else If Inkey() = Chr(27) : Break : EndIf Delay(10) EndIf Until Inkey() = Chr(27) ; Programmabbruch mit ESC Else PrintN("Kann Datei " + GetFilePart(Dateiname) + " nicht oeffnen") EndIf Else PrintN("Kann Schnittstelle " + Schnittstelle + " nicht oeffnen") EndIf If out : CloseFile(out) : PrintN("Datei " + GetFilePart(Dateiname) + " geschlossen") : EndIf If ser : CloseSerialPort(ser) : PrintN("Schnittstelle " + Schnittstelle + " geschlossen") : EndIf PrintN(">ENTER< fuer Programmende") Input() CloseConsole() EndIf End