AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TComPort auf Daten warten

Ein Thema von gruen2 · begonnen am 6. Mär 2010 · letzter Beitrag vom 9. Mär 2010
Antwort Antwort
gruen2

Registriert seit: 2. Mär 2010
7 Beiträge
 
#1

TComPort auf Daten warten

  Alt 6. Mär 2010, 16:41
Hallo,
ich möchte Daten über den Comport empfangen nachdem ich Sie vorher angefragt habe, um am Comport zu lauschen möchte ich da Event OnRxChar verwenden, jedoch habe ich noch nicht herausgefunden, wie ich dieses Verwenden kann.
Kann mir jemand weiterhelfen?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: TComPort auf Daten warten

  Alt 6. Mär 2010, 16:44
Guten Abend,

vielleicht wäre es hilfreich und nützlich um einige Antworten zu bekommen,
wenn Du uns mitteilen könntest welche Komponente du benutzt.


steht im Titel - blind wie ich bin

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
LargoD

Registriert seit: 8. Jun 2007
42 Beiträge
 
#3

Re: TComPort auf Daten warten

  Alt 6. Mär 2010, 17:38
Nicht warten, sondern Eventhandler benutzen.
Im Event OnRxChar erfährst Du, wieviele Zeichen angekommen sind. Die kannst Du dann, im Eventhandler, mit ReadStr abholen und weiter verarbeiten.
Gruß
Erich
  Mit Zitat antworten Zitat
gruen2

Registriert seit: 2. Mär 2010
7 Beiträge
 
#4

Re: TComPort auf Daten warten

  Alt 6. Mär 2010, 17:46
Gibt es denn eine Möglichkeit am dem Programm zu sagen des es auf ankommende Daten warten soll?
  Mit Zitat antworten Zitat
LargoD

Registriert seit: 8. Jun 2007
42 Beiträge
 
#5

Re: TComPort auf Daten warten

  Alt 6. Mär 2010, 18:06
Wozu?
Wenn es was anderes zu tun gibt, tu es, wenn nicht, lass es. Das Event passiert, wenn ein oder mehrere Zeichen angekommen sind.

Wenn es denn unbedingt sein soll, dass Du warten willst, kannst Du ReadStr aufrufen. Es kehrt erst dann zurück, wenn die angeforderte Anzahl von Zeichen angekommen ist. Dann geht aber in der Zeit nichts anderes.
Oder Du fragst in einer Schleife InputCount ab, und holst die Daten dann mit ReadStr ab. Um das Weiterleben von Windows musst Du dich dann selbst kümmern (ProcessMessages).
Gruß
Erich
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: TComPort auf Daten warten

  Alt 7. Mär 2010, 10:55
Hallo gruen2,

ist TComPort die Komponente von MS? Wenn ja, würde ich an Deiner Stelle auf Async Prof. umsteigen, Komponente ist kostenlos und es gibt eine Umfangreiche Hilfe dabei.

Link:

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
gruen2

Registriert seit: 2. Mär 2010
7 Beiträge
 
#7

Re: TComPort auf Daten warten

  Alt 7. Mär 2010, 17:59
Hallo,

Danke schonmal für die schnellen Antworten!

Nein die Komponente ist nicht von MS.

Zu LargoD:
Ich habe versucht es mit ReadStr zu machen, jedoch funktioniert es irgendwie nicht, er wartet nicht sondern sendet gleich die nächsten Daten. Hier ein Code Beispiel:
Delphi-Quellcode:
ComPort.WriteStr('!rkm');
ComPort.ReadStr(km,12);
kmPanel.Caption:=strzuschnitt(km);
ComPort.WriteStr('!rrw!');
ComPort.ReadStr(rw,10);
rwPanel.Caption:=strzuschnitt(rw);
Über den Comport kommen dabei sofort folgende Werte:
Zitat:
!rkm!rrw
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#8

Re: TComPort auf Daten warten

  Alt 8. Mär 2010, 11:16
Kann es sein, dass du das zurückliest, was du hingeschickt hast ?
Erzeugt das Device am Ende der Leitung ein Echo ?
Hast Du das mit einem Terminalprogramm mal überprüft ?

Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
LargoD

Registriert seit: 8. Jun 2007
42 Beiträge
 
#9

Re: TComPort auf Daten warten

  Alt 8. Mär 2010, 11:59
Das Gerät am anderen Ende der Leitung sendet wohl die Kommandos als Echo zurück.
Dennoch sollte ReadStr erst dann zurückkehren, wenn die angeforderte Anzahl von Zeichen empfangen wurde.
Könnte am Timeout liegen, stell das mal ab. (Auf Null setzen)

Gruß
Erich
  Mit Zitat antworten Zitat
gruen2

Registriert seit: 2. Mär 2010
7 Beiträge
 
#10

Re: TComPort auf Daten warten

  Alt 9. Mär 2010, 13:40
Vielen Dank, es klappt jetzt, es lag am Timeout, der war anscheinend auf -1 voreingestellt...
  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 05:45 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