Zitat Zitat von oberallgeier Beitrag anzeigen
Ich habe mein Protokoll dran aufgehängt, dass ich eine führende Kennung bei mehreren Bytes verwende, wobei für sehr wichtige Aktionen die Kennung als Information alleine (also NUR EIN Byte senden!) ausreicht.
Und das ist ein sehr interessanter Fall, weil man hier nämlich mit einer Kombination aus beiden Techniken arbeiten kann/muss. Du hast einen Protokollkopf (bei dir ein Byte), der mitteilt was für einen Datagrammtyp eigentlich gesendet wird. Der Zustandsautomat müsste folglich das erste Mal eine Prüfung starten, wenn der Protokollkopf vollständig ist. Danach könnte der Code dann warten bis das Datagramm komplettiert wurde. Das reduziert die Anzahl der Zustände auf Datagrammanzahl + 1 anstelle der max. Datagrammlänge bei der reinen Zustandsautomatenlösung.

Übrigens: In einem union können mehrere Datenstrukturen überlagert werden. Zum Beispiel besagter Protokollkopf, Datagrammtyp1, Datagrammtyp2 etc., womit du gleich auf alles bequem zugreifen kannst.

Grüße,
Markus