Hat jemand von euch noch Anregungen zum Thema "Kommando Interpreter"?
Ich möchte quasie so eine "allgemeingehaltene" Bibliothek schreiben die man mehr oder weniger universell
einsetzen kann.
Diese Funktionen sollen mir quasie Befehle die über eine Schnittstelle kommen auswerten und verarbeiten können. Fehlt noch was im "cmd_struct" ? Würdest du es anders machen?
Habe schon mal ein bisschen was dazu geschrieben. Was kann man besser machen? Was kann man ergänzen?
Bsp.:
Ich empfange über der Seriellen Schnittstelle folgenden String "233281-DAS_IST_EIN_BEFEHL#123!"
Nun kommt meine Funktion "srchCmd" zum tragen. Dort übergebe ich als ersten Parameter den eingehenden String von der Seriellen Schnittstelle, der zweite Parameter ist der zu suchende "Befehl".
Wurde dieser Befehl gefunden, bekomme ich einen Zeiger auf dessen Anfang zurück. Das "besondere" an der Funktion ist, dass sie mir auch die "Rohdaten" zurück geben kann.
Wenn in dem Kommando ein '#' sollte, weiß ich das "Rohdaten" mit übertragen wurden. Diese werden dann zurückgegeben ohne den eigentlichen Befehl. Das ganze Kommando wird mit einem '!' abgeschlossen. So kann ich sicherstellen das dort der "Stream" vorbei ist.
Mit der Funktion "getCmd" suche ich aus meiner "Struktur" nun den Befehl raus. Ist dort ein passender hinterlegt, gebe ich die Adresse von der "Struktur" zurück. Später kann ich dann halt entscheiden was ich damit machen möchte.
Würde mich über Anregungen freuen.
Ich möchte quasie so eine "allgemeingehaltene" Bibliothek schreiben die man mehr oder weniger universell
einsetzen kann.
Diese Funktionen sollen mir quasie Befehle die über eine Schnittstelle kommen auswerten und verarbeiten können. Fehlt noch was im "cmd_struct" ? Würdest du es anders machen?
Habe schon mal ein bisschen was dazu geschrieben. Was kann man besser machen? Was kann man ergänzen?
Bsp.:
Ich empfange über der Seriellen Schnittstelle folgenden String "233281-DAS_IST_EIN_BEFEHL#123!"
Nun kommt meine Funktion "srchCmd" zum tragen. Dort übergebe ich als ersten Parameter den eingehenden String von der Seriellen Schnittstelle, der zweite Parameter ist der zu suchende "Befehl".
Wurde dieser Befehl gefunden, bekomme ich einen Zeiger auf dessen Anfang zurück. Das "besondere" an der Funktion ist, dass sie mir auch die "Rohdaten" zurück geben kann.
Wenn in dem Kommando ein '#' sollte, weiß ich das "Rohdaten" mit übertragen wurden. Diese werden dann zurückgegeben ohne den eigentlichen Befehl. Das ganze Kommando wird mit einem '!' abgeschlossen. So kann ich sicherstellen das dort der "Stream" vorbei ist.
Mit der Funktion "getCmd" suche ich aus meiner "Struktur" nun den Befehl raus. Ist dort ein passender hinterlegt, gebe ich die Adresse von der "Struktur" zurück. Später kann ich dann halt entscheiden was ich damit machen möchte.
Würde mich über Anregungen freuen.
Anhänge
Zuletzt bearbeitet: