Für die Synchronisation gibt es im Wesentlichen 2 Möglichkeiten:
a) Der Sender, der die 62 Byte sendet, arbeite als Slave. D.h er sendet jedes Paket nur nach Aufforderung, und Du liest dann genau 62 Byte ein. Der Vorteil ist, daß der Slave dann jedes Byte von 0..255 senden darf.
b) Der Sender sendet frei ohne Aufforderung alle 250ms. Dann muß das Ende eines Paketes durch ein besonderes Byte, genannt "TermChar", markiert sein. Standard ist n = 0xA. Das hat aber eine gravierende Einschränkung zur Folge, denn TermChar darf natülich nicht im normalen Datenstrom vorkommen. Alle Zahlen müssen ASCII-Codiert übertragen werden, d.h für ein Zahlenbyte, z.B Dezimal "255", muß "FF" gesendet werden, also 2 ASCII-Zeichen.
Die Einstellung zu b) wäre: End Read on TermChar aktivieren, zu lesende Bytes größer als 62 (Voreinstellung 1000 kann gelassen werden), Timeout gößere als 250 (10000 kann gelassen werden)
Wenn Du aber b) nimmst und Dein Datenstrom keinen Termchar enthält und das auch nicht von Dir geändert werden aknn, dann ist guter Rat teuer
Edit
@Jens
Zitat:wenn dein Paket immer 62 Bytes groß ist, dann lies doch immer 62 Zeichen aus, notfalls halt mit größerem Time-Out.
Wie ich schon sagte, funktioniert das sicher nur im Slave-Modus. Ansonsten kann es passieren, daß man zu Beginn der Übertragun ab dem 23. byte in der Datenstom hineinhört und bis zum 22. Byte des nächsten Paketes liest. Das wiederholt sich dann auf immer und ewig.
Aber mit zuätzlicher Intelligenz ist die Synchronisierung machbar. Z.B immer nur 1 byte einlesen, Timeaout kleiner als die Pause zwischen den Datenpaketen einstellen, und wenn es zum Timeut kommt, das als Ende eines Datenpaketes erkennen.