Also erstmal muß es natürlich <char+8> bzw. <char+16> sein (Asche über mein Haupt).Zitat von PicNick
Ich werde das am besten mal an einem Beispiel erklären:
Bestehe die Nachricht aus den möglichen Buchstaben A-Z.
Seien ABCD die Kontrollzeichen, A=STX, B=ETX, C=PFX, D unbelegt. (vorerst ohne Verschiebung)
Der Sender sendet:
<ABCD EFGH>
Nach dem Prefixen + framen:
<A CACBCCCD EFGH B>
Durch eine Blöde Störung kommen die ersten beiden Zeichen nicht an:
<--><ACBCCCD EFGH B>
Dummerweise ist das, was ankommt immer noch eine korrekte Nachricht (allerdings falsch).
(Kann aber durch Checksumme abgefangen werden)
Jetzt mit Verschiebung:
Die Daten A, B, C, D werden auf CE, CF, CG, CH abgebildet.
<ABCD EFGH>
Nach dem Prefixen + framen:
<A CECFCGCH EFGH B>
Wenn hier ein Zeichen verlorengeht, ist das ganze kein Problem (Zeichen ausserhalb des Frames werden verworfen, Störung)
Ein weiterer Vorteil: In oberen Beispiel muß der Empfänger für jedes Empfangene Zeichen immer erst anhand des letzten Zeichens prüfen, ob das empfangene Zeichen wirklich ein Kontrollzeichen ist. Mit der Verschiebung kann er jedes eingehende Zeichen direkt überprüfen und nur bei Bedarf (nämlich im Falle eines Datenzeichens) schauen, ob das letzte Zeichen das Prefix war.
ciao,
Ragnar
Lesezeichen