' schrieb:Beim Einschalten des Messgerätes sendet es über die serielle Schnittstelle RS-422 nonstop die Messdaten. Wenn ich die Datenaufnahme starte, dann beginnt die Aufnahme mit großer Sicherheit nicht am Anfang des Datenpaketes (siehe Abb.). Jedes Datenpaket ist 55 Stellen groß und am Ende wird CR ® angehängt.
Beim Starten der Datenaufnahme kann es nicht nur passieren, daß die Aufnahme mitten in einem Datenpaket beginnt, sondern es kann ebenso passieren, daß die Aufnahme mitten in einem (seriellem) Byte beginnt. Dann wird das falsche Bit für das Startbit gehalten, der Fehler wird einige Bit später erkannt und man erhält die Meldung "Frame Error".
Dieser Fehler ist abzufangen und das Starten der Datenaufnahme ist so oft zu wiederholen, bis der Fehler nicht mehr kommt. Danach sind solange einzelne Bytes einzulesen und in den Papierkorb zu schmeißen, bis CR kommt.
Dann ist alles synchronisiert und dem ersten gültigen Empfang eines ganzen Datenpaketes steht nichts mehr im Wege.
Diese Operationen bis zur Synchronisation müssen in Realtime geschehen, d.h die Stringbytes müssen einzeln gelesen und analysiert werden. Das Einlesen eines längeren Strings und Zerlegen desselben wäre nicht der richtige Weg zurm Erreichen der Synchronisation.
Erst nach Erreichen der Synchronisatin können alle Bytes eines Datenpaketes bis CR auf einmal gelesen werden.
Aber besser wäre natürlich diese Alternative: Erst den Empfänger einschalten, und dann den Sender. Dann dürfte es schon mit dem Senden des ersten Datenpaketes keine Synchronisationsprobleme geben.