Hallo hallo,
ich hab mal wieder ein Problem mit der ordentlichen Struktur meines
C-Codes und würde gern wissen, wie es besser gemacht werden kann.
Ich mache z.Z. folgendes: ich sende eine Zeichenkette vom PC via UART an
einen Microcontroller (Atmega88). Der soll dann erkennen, ob die
Zeichenkette einen gültigen Befehl enthält.
Zum Empfangen des Arrays hab ich erstmal den Code aus dem Tutorial
genommen. Es werden also solange Zeichen empfangen, bis entweder "Enter"
gesendet wurde, oder mein Array voll ist.
Jetzt mach ich das z.Z. so:
1 | if((buffer[0] == 'c') && (buffer[1] == 'o') && (buffer[2] == 'm') und so weiter)
|
2 | {
|
3 | // mach irgendwas
|
4 | }
|
Das muß ich dann aber für jeden Befehl den es geben soll und dafür
auchnoch für jedes Arrayelement einzelnd machen. Das find ich echt
unsouverän. Ich hab auch diesen "strcmp()"-Befehl gefunden. Da bezweifel
ich aber, daß der für die Ausführung auf einem µC optimiert ist.
Gibt es eine bessere Möglichkeit meinen Befehl aus dem Array raus zu
filtern? Zum Beispiel so in der Art:
1 | if(buffer[] == "com sollwert 5")
|
2 | {
|
3 | // Sollwert auf 5 setzen
|
4 | }
|
5 |
|
6 | else if(buffer[] == "com send istwert")
|
7 | {
|
8 | // sende den Istwert raus
|
9 | }
|
Was ist für sowas die beste (Code- und Speicher-optimalste)
Vorgehensweise?
Würde mich auch schon helfen, wenn einer weiß, wo ich das nachlesen kann
:)
Gruß,
Joachim