Announcement

Collapse
No announcement yet.

ReceiveText nach SendText mit TClientSocket

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ReceiveText nach SendText mit TClientSocket

    Hallo,

    ich habe folgendes Problem:
    Eine Waage die ich bisher immer seriell angesteuert habe möchte ich gerne mittels eines TCP/IP-Seriell-Adapters mit TClientSocket ansteuern. Das klappt auch einwandfrei bis auf folgendes:

    Ich sende einen String "READ + chr(13) + chr(10)" und erhalten dann einen Messwert mit einem Statuskennzeichen. Beim Start der Anwendung teste ich ob es sich bei dem Endgeräte tatsächlich um die Waage handelt und lese das Statuskennzeichen aus.

    Wie kann ich, nachdem ich den String mit "SendText" gesendet habe, warten bis ReceiveText eine Zeichenkette zurückliefert die ich dann im Anschluss
    auswerten kann?

    Vielleicht hat ja Jemand von Euch eine Idee!

    Vielen Dank und viele Grüße

    Christoph

  • #2
    Hallo.

    ich würde ein Flag setzen und einen Timer starten.
    Bei gesetztem Flag prüfst du in ClientSocket.OnRead + ReceiveText, ob die erwartete Bestätigung eingetroffen ist und setzt das Flag zurück.
    also

    Code:
    if flag then
    begin             // Initialisierung
      if check_response(clntsocket.readText) then
         flag:=false
    end
    else
      {read meter} // Normalbetrieb;
    Der Timer läuft einfach aus

    Code:
    TestTimer.OnTimer()
    begin
      if flag then
         {Timeout: Fehlermeldung und Abbruch}
      TestTimer.enabled:=false
    end;
    Ich hoffe, ich konnte mich etwas verständlich ausdrücken.
    Ich habs gleich!
    ... sagte der Programmierer.

    Comment

    Working...
    X