Hallo,
vom Prinzip könnte man es so auffassen:
Der Header könnte so aussehen:
Delphi-Quellcode:
header = record
STX : Byte; // ansiChar
IdTo: Byte;
IdFrom: Byte;
Lng: Byte;
end;
data ist dann ein byteArray ( Array of Byte, Größe Lng-1)
trailer: Byte;
Beim Empfangen wertestDu erst den Header aus.
Abhängig von der Anzahl der Datenbytes (header.Lng -1)
werden die Daten gelesen.
Anschliessend wird der Trailer gelesen.
Aus den empfangenen Daten wird ein neuer LRC gebildet.
Dieser LRC wird mit dem empfangenen verglichen.
Stimmen sie überein sind die Daten ok.
Grüße
Klaus
@Klaus oder jemand der mir weiter helfen könnte.
Ich hätte da ein paar Fragen, zu deiner lösung.
Ref:
http://www.delphipraxis.net/1311438-post18.html
Delphi-Quellcode:
header = record
STX : Byte; // ansiChar
IdTo: Byte;
IdFrom: Byte;
Lng: Byte;
end;
Beispiel:
Code:
'#'(61)(0)(10)(1)(60)(60)(0)(0)(0)(0)(0)(0)(1)
Laut diesem Beispiel währe der header dann:
Code:
STX:# IdTo:61 IdFrom:0 Lng:10
header.Lng -1 währe demnach 9
data wäre byteArray 1 - (Lng-1)?
Trailer währe demnach 1
Wie bilde ich denn nun den neuen LRC?
mfg
Jeng