Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Programm pausieren lassen (https://www.delphipraxis.net/16235-programm-pausieren-lassen.html)

Generalissimo 13. Feb 2004 12:34


Programm pausieren lassen
 
Hallo,

folgendes Problem: ich hole über die serielle Schnittstelle Daten von einem Messgerät.
Das Gerät ist so konzipiert das man erst einen bestimmten Befehl zum Gerät senden muss,
voraufhin das Gerät dann die Daten rüberschickt. Mein Programm bekommt dies über ein Event (OnChar)
mit, das eine Komponente für den Zugriff auf die serielle Schnittstelle bereitstellt.
Die Daten sollen in eine DB geschrieben werden.
Das Messgerät schickt die Daten aber nicht in "Echtzeit" zurück. Zwischen eintreffen des Sendbefehls und dem losschicken der Daten vom Gerät, können schon mal 2 Sekunden vergehen
Mein Problem ist nun wie ich 100% sicher gehen kann, das mein Programm wirklich erst weiter geht wenn die Daten von dem Messgerät eingetroffen sind.

Gibts da irgendwelche Möglichkeiten?

Bit Juggler 14. Feb 2004 20:59

Re: Programm pausieren lassen
 
Hallo Generalissimo,
es gibt in der Komponente die Du benutzt bestimmt ein Ereigniss "OnRxChar", da kannst Du überprüfen ob Zeichen übertragen worden sind!
Und zu der Pause im Programm:
Delphi-Quellcode:
//für x zahlen eintragen ;-) 1000 = 1 Sekunde!
sleep(x);
Gruß Bit

fkerber 14. Feb 2004 22:56

Re: Programm pausieren lassen
 
Hi!

Ich würde eher Delay (siehe Code-Lib) verwenden.

Ciao fkerber

IcyT 15. Feb 2004 00:35

Re: Programm pausieren lassen
 
Ja, da in der Delay-Prozedur Application.Processmessages; vorkommt arbeitet es auch noch die Windowsnachrichten ab und bleibt nicht hängen wie bei sleep.

peschai 15. Feb 2004 17:43

Re: Programm pausieren lassen
 
Hallo,

Fragestellung so wie verstanden:
du sendest ein kommando wohin worauf due später eine Antwort erhälst. Unbekannts si tdie Zeit bis wann die Anwort eintrifft. Du bekommst die Anwort mit indem bei dier in einer komponente ein Ereignis "OnChar" ausgelöst wird.

Anwort:
Benutze eine Steuervariable welche du auf z.b. "1" setzt wenn du das kommando abgesetzt hast.
Im OnChar ereignis nimmst du die daten entgegen und setzt die steurvariable auf z.b "0". dann sartest du deine anderen aktionen. wenn du gefahr läudfst daß die anderen folgenden aktioen evemntuell durch die Ereignissteuerung von Windows für dich zu früh oder "unkontrolliert kommen" so fsnge sie mit einer Abfrage der Steeurervariablen ab ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz