Autor Beitrag
JRadke
Hält's aus hier
Beiträge: 1


Delphi7
BeitragVerfasst: Di 22.01.08 21:30 
Für den Datenabruf von einem seriellen Gerät verwende ich den folgenden Code:


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
//Befehl an Gerät senden:
  ApdComPort.PutString('Send');

//anschließend wird ein Timer aufgezogen und auf den Empfang gewartet:
  repeat
    if ApdComPort.CharReady then begin
      C := ApdComPort.GetChar;
      RxBuffer[RxPoi] := C;
      Inc(RxPoi);
    end;
  until (RxPoi = MaxDataLen) or Timeout;

Im Prinzip funktioniert das auch, aber häufig passiert es, dass einzelne Zeichen doppelt empfangen werden, obwohl diese vom externen Gerät mit Sicherheit nicht gesendet wurden.
Obwohl ich schon seit langem mit AsyncPro arbeite, ist mir dieser Effekt noch nicht untergekommen.
Hat jemand eine Idee, woran das liegt bzw. was dagegen zu tun ist?

Danke im voraus
JRadke


Moderiert von user profile iconNarses: Topic aus Programmierwerkzeuge verschoben am Di 22.01.2008 um 21:24