![]() |
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? |
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:
Gruß Bit
//für x zahlen eintragen ;-) 1000 = 1 Sekunde!
sleep(x); |
Re: Programm pausieren lassen
Hi!
Ich würde eher Delay (siehe Code-Lib) verwenden. Ciao fkerber |
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.
|
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 10:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz