Für den Datenabruf von einem seriellen Gerät verwende ich den folgenden Code:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| ApdComPort.PutString('Send');
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
Narses: Topic aus Programmierwerkzeuge verschoben am Di 22.01.2008 um 21:24