WinFuture-Forum.de: Serieller Anschluss Mit Delphi 7 - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Serieller Anschluss Mit Delphi 7 Prüfen wie viele Bytes anliegen


#1 Mitglied ist offline   DonElTomato 

  • Gruppe: aktive Mitglieder
  • Beiträge: 311
  • Beigetreten: 04. Oktober 05
  • Reputation: 0

geschrieben 27. März 2007 - 15:56

Hallo,

ich habe ein kleines Problem mit Delphi 7 und der Seriellen Schnittstelle. Das Problem sieht wie folgt aus.
Ich habe ein Programm entwickelt welches über die Serielle Schnittstelle Daten schreiben und lesen kann.

Das Schreiben klappt bisher einwandfrei, auch das Lesen aber nur in teilen.

Denn ich habe die Methode zum Auslesen der Daten in einen Timer geschrieben der Regelmäßig vorhandene Daten am Seriellen Anschluss einliest. Das klappt auch einwandfrei ABER:

Wenn keine Daten am Anschluss vorliegen bleibt das Programm hängen! Gibt es da eine Möglichkeit das zu verhindern? Ich hätte daran gedacht vorher zu ermitteln wie viele Bytes vorliegen bevor sie ausgelesen werden. Auch eine Info OB bytes vorliegen wäre hilfreich.

Allerdings konnte ich etwas in der Richtung nicht finden. Es ist zwar möglich ein Programm zu pausieren bis Daten vorliegen aber das wäre nur eine Notlösung.

Falls jemand eine Möglichkeit kennt herauszufinden wie viele Bytes am Anschluss vorliegen wäre das eine große Hilfe.

MFG

Don
0

Anzeige



#2 _MagicAndre1981_

  • Gruppe: Gäste

geschrieben 27. März 2007 - 16:31

welche Komponente nutzt du überhaupt?
0

#3 Mitglied ist offline   DonElTomato 

  • Gruppe: aktive Mitglieder
  • Beiträge: 311
  • Beigetreten: 04. Oktober 05
  • Reputation: 0

geschrieben 27. März 2007 - 17:35

Ich nutze WriteFile und ReadFile um auf die COM-Ports zuzugreifen.

Mittlerweile habe ich festgestellt das der Timeout greift und daher das Programm hängen bleibt, allerdings ist der bei einem Array von 255 Bytes ziemlich lang und somit ist das Problem eigentlich auch nicht gelöst ;-)
0

#4 Mitglied ist offline   bluecifer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.286
  • Beigetreten: 16. Mai 04
  • Reputation: 0
  • Interessen:Fahrrad fahren, feiern, in den Penny Markt gehen,

geschrieben 31. März 2007 - 12:28

ALso bei den Indy-Komponenten für Netzwerke kann man "timeout" angeben, das heißt von mir aus, wenn er 100ms nix kriegt bricht er ab... gibt's da ja vielleicht auch.

ansonsten könntest du mit TRY und EXCEPT programmieren um den Fehler zu vermeiden.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0