AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Programm hängt bei Kommunikation über RS232 (Com)
Thema durchsuchen
Ansicht
Themen-Optionen

Programm hängt bei Kommunikation über RS232 (Com)

Ein Thema von DoktorD · begonnen am 27. Apr 2007 · letzter Beitrag vom 27. Apr 2007
Antwort Antwort
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#1

Programm hängt bei Kommunikation über RS232 (Com)

  Alt 27. Apr 2007, 06:16
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?
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Programm hängt bei Kommunikation über RS232 (Com)

  Alt 27. Apr 2007, 06:57
Moin Moin,

du könntest innerhalb der Messung ein Paar mal application.ProcessMessages aufrufen, oder falls das nicht geht die Messung in einen eigenen Thread laufen lassen.
Dazu einfach mal nach TThread oder CreateThread() suchen.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#3

Re: Programm hängt bei Kommunikation über RS232 (Com)

  Alt 27. Apr 2007, 07:49
Danke für die Antwort. Das sagt mir leider noch garnichts, aber ich werde mich mal im Forum zu diesen Themen durchlesen.
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Programm hängt bei Kommunikation über RS232 (Com)

  Alt 27. Apr 2007, 07:50
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.
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Programm hängt bei Kommunikation über RS232 (Com)

  Alt 27. Apr 2007, 08:05
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?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Gruber_Hans_12345

Registriert seit: 14. Aug 2004
1.426 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Programm hängt bei Kommunikation über RS232 (Com)

  Alt 27. Apr 2007, 08:10
Zitat von alzaimar:
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.
aber nur dann, wenn man die schnittstelle mit dem zusätzlichen parameter FILE_FLAG_OVERLAPPED öfffnet, ansonsten ist die blockierend
Gruss Hans

2B or not 2B, that is FF
  Mit Zitat antworten Zitat
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#7

Re: Programm hängt bei Kommunikation über RS232 (Com)

  Alt 27. Apr 2007, 08:18
Zitat von alzaimar:
Wie greifst Du denn auf RS-232 zu? Mit welchem Tool?
Ich mache das wie hier:

hier klicken
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Programm hängt bei Kommunikation über RS232 (Com)

  Alt 27. Apr 2007, 11:45
Das sind aber viele Alternativen in dem Thread....
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
DoktorD

Registriert seit: 13. Dez 2005
153 Beiträge
 
#9

Re: Programm hängt bei Kommunikation über RS232 (Com)

  Alt 27. Apr 2007, 12:06
Ok stimmt. Ich meine den DelphiCode der da hinterlegt ist
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Programm hängt bei Kommunikation über RS232 (Com)

  Alt 27. Apr 2007, 12:17
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 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