Einzelnen Beitrag anzeigen

moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

"Befehle" sequentiell verarbeiten

  Alt 22. Dez 2006, 12:24
Moin !

Ok, ich fange in einem neuen Fred nochmal an, denn ich merke dass mich das "Warten auf ein Flag" nicht wirklich weiter bringt. ( http://www.delphipraxis.net/internal...ct.php?t=99083 )

Vielleicht kommt ja auf diesem Wege eine ganz andere Lösung zum Vorschein, die mir eher weiterhilft.

Ich erkläre mal das Problem:
Wir haben da ein Gerät X. Dieses Gerät wird über eine Schnittstelle angesprochen. Nun muss man mit dem Gerät aber jeweils mehrere "Frage - Antwortspielchen" machen, bis man alle gewünschten Informationen hat.
BsP: Ich muss z.B. zum Auslesen von bestimmten Werten erst Hex 11 an das Gerät senden, dann Hex 21 und danach noch Hex 12. Also Antwort erhalte ich immer eine Zeichenkette. Jeder vorherige Befehl muss erst abgearbeitet sein, damit ich den nächsten abschicken kann.
In meiner bisherigen Lösung hat mich das halt veranlasst, einfach auf den Zustand eines Flags zu warten. Ganz glücklich war ich damit nicht und wie man aus dem "alten" Fred erkennen kann, wirft das auch eine Menge Probleme auf.

Die Frage wäre nun also, wie kann man mit möglichst einfachen Mitteln erreichen, dass ich sequentiell eine Folge von Befehlen abschicken kann und dazwischen immer die Antwort abgreife?

Meine jetzige Idee wäre folgende:
Ich schreibe eine Prozedur, die den ersten Befehl an das Gerät schickt. Diese Procedur ist allgemein ausgelegt und wir nennen sie mal SendeAnforderung.
Wenn das Gerät dann was sendet, schlägt ja die Empfangsroutine zu. Hier würde ich dann nach dem Auswerten der Daten die Prozedur SendeAnforderung erneut starten und zwar mit dem nächsten Befehl.

Probleme die sich hieraus ergeben:
Da ich eine unterschiedliche Anzahl von Befehlen senden muss (je nach Anforderung) müsst is irgend ein Array oder sowas geben, wo dirn steht, was noch abgearbeitet werden muss. Und evtl. auch was schon abgearbeitet ist.

Aber vielleicht hat einer von euch für diese Geschichte auch noch ne viel bessere Idee ?!

Greetz Dominik
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat