Einzelnen Beitrag anzeigen

PhilippW

Registriert seit: 9. Jun 2005
10 Beiträge
 
#1

RS232 - Daten empfangen funktioniert nur halb

  Alt 31. Jul 2005, 15:45
Hallo, an alle!

Ich habe folgendes Problem:
Für ein Roboter-Projekt habe ich an der seriellen Schnittstelle einen Mikro-Controller (C-Control) angeschlossen.
Dieser ist so programmiert, dass er, immer wenn er über die serielle Schnittstelle die Zahl 6 empfängt, einen Wert von einem Distanz-Sensor zurücksendet (Der Wert liegt zwischen 0 und 255).
Soweit klappt das auch alles, nur kommt nicht der komplette Wert im meinem Delphi-Programm an.
Ich habe mir zur Realisierung die Klasse TCOMPort ein wenig vereinfacht und in eine eigene Unit gepackt (Datei ist angehängt).
Aufgerufen wird das ganze folgendermaßen:

Delphi-Quellcode:
const
  D1: PChar = '6' + #13#10;
COM:=TCOM.Init;
Delphi-Quellcode:
function TSensors.Distance1: String;
var
  Distance1: String;
begin
  COM.SendString(D1);
  Distance1:=Trim(COM.ReadString);
  if Distance1='then Distance1:='0';
  Result:=Distance1;
end;
COM.Destroy; Die Funktion gibt bei ersten Aufruf 0 zurück.
Beim zweiten beispielsweise 39 (was auch richtig ist) und
bei allen weiteren Aufrufen nur die erste Zahl (also z.B. 3).
Ändert sich die Entfernung bei meinem Distanz-Sensor so, dass der Rückgabewert über 100 kommt, wird die komplette Zahl ausgegeben.

Aber wo liegt nun der Fehler?
Warum gibt er ab dem dritte Aufruf nur die erste Zahl zurück?
Ich hoffe, ihr könnt mir helfen!

Mit freundlichen Grüßen

Philipp
Angehängte Dateien
Dateityp: pas ucom_102.pas (3,5 KB, 31x aufgerufen)
  Mit Zitat antworten Zitat