Bei einer seriellen Übertragung arbeitet man gerne zeilenweise. Also, eine Zeile Text abgeschlossen mit CR oder LF oder auch beidem. Und auf die Zeile schreibt man hin, was man sagen will. Als Beispiel: "vorn=17, hinten=28". Dann kann man immer auf einem Terminal mitlesen und weiß, was gemeint ist. Das läßt sich auch leicht parsen, ein Komma trennt die Records, ein Gleichheitszeichen Parameter von Wert. Das kann bei weiteren Parametern leicht verlängert werden. In diesem einfachen Fall reicht es, den ersten Buchstaben des Parameters auszuwerten, wenn es mal mehr werden, muß man den ganzen Namen vergleichen. Auch die umgekehrte Richtung läßt sich da leicht unterbringen: "hinten=?" fragt den Wert für hinten ab.

Wenn da mal etwas verloren geht, kann man sich leicht wieder synchronisieren. Auf ein Linefeed oder auf ein Komma warten und loslegen. Der Name des Parameters ist ja eindeutig. Der Sender könnte auch einen Parameter mal auslassen. Dazu könnte man verabreden, daß dann der letzte Wert immer noch gilt.

Die libc hilft einem beim Parsen von Strings, von den einfachen Sachen wie strcmp() bis zu strtok().

MfG Klebwax