Einzelnen Beitrag anzeigen

Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#1

Senden und Empfangen mit Dejan ComPort

  Alt 22. Dez 2004, 16:18
Hallo, ich komme mit dem (?asynchronen?) Datensenden/-empfangen über serielle Schnittstelle nicht klar.
Ich sende über COM1 einen Befehl an ein Messgerät, warte einige Zeit und lese dann den seriellen Port mit der Antwort wieder aus (weil ich es nicht anders kann/weiss). Bei mir sieht es ungefähr so aus

Delphi-Quellcode:
procedure MessgeraetAbfragen;
var
    stri : string;
begin
    ComPort.Open;
    Stri:'WERT'+#13#10;
    ComPort.WriteStr(Stri); // senden eines Messbefehls an das Messgerät
    windows.Beep(100,150); // dem Messgerät Zeit zum Überlegen lassen
    ComPort.ReadStr(Stri,100); // Messwert vom Messgerät auslesen
    ComPort.Close;
end;
Ja, das ist wohl etwas komisch von mir programmiert
Nun braucht das Messgerät für jede Anfrage unterschiedlich viel Zeit zum Reagieren, und das Messgerät liefert mir öfters falsche Rückantworten, weil es entweder noch nicht so weit ist oder die Frage längst überfällig ist.
Wie kann man dieses Problem lösen, wann weiß man, wann das Messgerät eine fertige Antwort auf dem seriellen Port bereitgestellt hat?

Vielen Dank für Hilfe und ein frohes Fest

EccoBravo

[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat