Ohne Buffer mit timeout ein Auszug was läuft:
Code:
Dim Char_vergleich(20) As Byte
Dim Char_da(20) As Byte
Const Timeoutfaktor=100 '100mSek
Charzaehler = 0 'Prüfen auf Startstring und IO / Startstring einlesen
Timeout = 0
Do
Hole_char = Ischarwaiting() 'RS232 Port auf Daten abfragen
If Hole_char = 0 Then 'keine Daten da
Waitms 1
Incr Timeout
Else 'Daten da
Timeout = 0
Hole_char = Inkey() 'Byte auslesen
Incr Charzaehler 'Feldzähler hoch
Char_da(charzaehler) = Hole_char
If Char_da(charzaehler) <> Char_vergleich(charzaehler) Then Charzaehler = 100 'Vergleiche Byte im Startsting
End If
If Timeout > Timeoutfaktor Then Exit Do 'Timeout abfragen
Loop Until Charzaehler > 8 'Schleife bis alle 8 Byte vom Startstring ausgelesen oder Timeout
If Charzaehler <> 9 Then
Datenuebergabe_rs232 = Fehler_im_startstring '10
Exit Sub
End If
Gento
Lesezeichen