Hallo zusammen,
ich übertrage einen Datensatz bestehend aus Startbyte, 7 Datenbytes, Checksum über RS232. Funktioniert alles bestens.
Nun möchte ich Vor dem Startbyte aber noch 10 einzelne Bytes als "Header" laufen lassen.
Die ersten 10Bytes dienen nur als Zeitgewinn und sollen nicht ausgewertet werden.
Ich arbeite testweise mit Funkstrecke und die Empfängerhardware braucht ein bischen Zeit. Die ersten Bytes kommen meist verstümmelt an. Deshalb die "Headerbytes" um sicher zu gehen, das das Starbyte an 11 Stelle richtig ankommt.
Wie kann ich in Bascom dem Teil beibringen das er nach dem 10 Byte schauen muss, Das Starbyte(233) vergleichen ob es stimmt und ab da erst die ganze Auswerterei beginnt?
Ich mache das beim Empfänger bisher so:
Code:
Dim T As Byte
Dim U As Long
Dim V As Word
Dim B(7) As Byte At T Overlay
Dim A As Byte
Dim C As Byte
Dim D As Byte
....
Do
If Ischarwaiting() = 1 Then Empfang
If D = 9 Then Auswertung
.....
Loop
Empfang:
A = Waitkey()
If D > 0 Then Empfang2
If A = 233 Then Incr D
Return
Empfang2:
If D < 8 Then B(d) = A
C = C Xor A
Incr D
Return
Auswertung:
If C <> 0 Then
D = 0
C = 0
Return
End If
'---Auswertung der Daten T,U,V----
EDIT : Codetags gespendet -- PicNick
Hat jemand einen Tip? Stehe irgendwei voll auf der Leitung...
Ach, und mit INPUTBIN und IF B(11) = 233 then ....bla bla kann ich nicht arbeiten - das blockiert mir den rest des Programms. Hab ich schon ausprobiert - geht nicht.
Lesezeichen