Hi,
ich habe aktuell ein paar Schwierigkeiten Daten mit der TApdComPort Komponente korrekt zu empfangen. Die Objekteigenschaften habe ich zum Großteil (bis auf Kleinigkeiten wie Port, Baud, usw) auf default gelassen.
Die Hardware sendet nun folgendes:
Ein Startbyte als Char und darauf folgendend ein Kommando ebenfalls als Char. Anschließend folgt dann eine Liste, bei der jede Zeile als String gesendet wird. Die Stringliste wird mit linefeeds gesendet.
Nun möchte ich die gesendete Liste in Delphi in eine TStringlist befördern.
Der aktuelle Code den ich mir zusammengebastelt habe sieht so aus:
Code:
procedure TForm1.ComPortTriggerAvail(CP: TObject; Count: Word);
var
I: Word;
C: Char;
S: string;
begin
S := '';
for i := 1 to Count do
begin
c := ComPort.GetChar;
case Ord(C) of
255: test.Clear;
201: ShowMessage('Liste erfolgreich übertragen');
202: ShowMessage('Übertragung fehlgeschlagen !');
203: test.Clear;
else
case C of
#10: ;
#13:
begin
test.Add(trim(s));
s := '';
end;
else
s := s + c;
end;
end;
end;
if test.Count = 16 then
ShowMessage(test.Text);
end;
Eigentlich funktioniert der Code im großen und ganzen auch. Allerdings werden ab und zu zeichen verschluckt und kommen nicht korrekt an so kann aus einem "2500" schonmal ein "500" werden.
Nutze ich zur Kommunikation z.B. Hterm wird alles korrekt angezeigt.
Wo kann das Problem liegen ?
Grüße