![]() |
Programm hängt bei Kommunikation über RS232 (Com)
Servus!!!
Habe ein Programm geschrieben, mit dem ich über die Com-Schnittstelle Werte einlese. Das funktioniert auch alles super (Aufbau der Verbindung usw.). Aber wenn ich irgendetwas messe, dass macht mein Programm während der Messung garnichts mehr. Habe da z.B. eine Zeitanzeige mit Sekunden. Diese hängt dann solange ich messe. Weiß einer von Euch warum das so ist? Kann man das irgendwie ändern? |
Re: Programm hängt bei Kommunikation über RS232 (Com)
Moin Moin,
du könntest innerhalb der Messung ein Paar mal
Delphi-Quellcode:
aufrufen, oder falls das nicht geht die Messung in einen eigenen Thread laufen lassen.
application.ProcessMessages
Dazu einfach mal nach TThread oder CreateThread() suchen. |
Re: Programm hängt bei Kommunikation über RS232 (Com)
Danke für die Antwort. Das sagt mir leider noch garnichts, aber ich werde mich mal im Forum zu diesen Themen durchlesen.
|
Re: Programm hängt bei Kommunikation über RS232 (Com)
du könntest vor dem lesen immer überprüfen, wieviele bytes bereits in der seriellen schnittstelle angekommen sind, und nur diese bytes lesen, dann blockiert der lese befehl auch nicht.
|
Re: Programm hängt bei Kommunikation über RS232 (Com)
Hm...
Normalerweise ist die Kommunikation mit Schnittstellen unter Windows Event-gesteuert. D.h., Du bzw. deine Anwendung wird benachrichtigt, sobald sich etwas an der Schnittstelle tut. Daher kann da eigentlich Nichts hängen. Wie greifst Du denn auf RS-232 zu? Mit welchem Tool? |
Re: Programm hängt bei Kommunikation über RS232 (Com)
Zitat:
|
Re: Programm hängt bei Kommunikation über RS232 (Com)
Zitat:
![]() |
Re: Programm hängt bei Kommunikation über RS232 (Com)
Das sind aber viele Alternativen in dem Thread....
|
Re: Programm hängt bei Kommunikation über RS232 (Com)
Ok stimmt. Ich meine den DelphiCode der da hinterlegt ist
|
Re: Programm hängt bei Kommunikation über RS232 (Com)
Genau, Du setzt dich auf die Schnittstelle (per read) und wartest, bis alle Daten da sind.
Mit den anderen in dem angesprochenen Thread geposteten Komponenten passiert das nicht. Denn dann meldet sich die Komponente, sobald Daten zum Empfang bereit stehen. Alternative: Du verlagerst die Kommunikation in einen Thread: Der kann dann warten, bis der Arzt kommt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 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