Einzelnen Beitrag anzeigen

Real-TTX

Registriert seit: 7. Mai 2008
Ort: Stuttgart / Wertheim
136 Beiträge
 
Delphi 2007 Enterprise
 
#1

ComPort - AsynPro - Empfang aufgeteilt.

  Alt 17. Mai 2008, 19:44
Hallo Jungs,

Ich habe mittels AsyncPro ComPort Komponente Daten eingelesen. Das Funktionert auch, leider nur bedingt. Ich bekomme es einfahc nicht hin.Die Daten, wie es auch sein soll, auf einmal kommen. Sondern die mitgelieferte Procedure OnTriggerAvail, wird 2 mal aufgerufen.

Ich habe ein Digitalen Messschieber/Messlehre. Auf dem Gerät ist eine Taste "DATA". Diese Sendet Daten über den ComPort. Sobald ich die drücke, führt er 2 mal diese Funktion aus.

Beim ersten mal: die ersten 8 char's
Beim zweiten mal: die letzen 4 char's


Ich Prüfe auf die Längen des einkommenden Strings / Zeichen. Und Setze das dementsprechend zusammen. Ist eine sehr schlechte Lösung....

Vielleicht habt ihr ja eine Idee.
Delphi-Quellcode:
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 C of
      #0..#31 : {Don't display} ;
      else S := S + C;
    end;
  end;
  //Memo1.Lines.Add(IntToStr(length(S)));
   if (length(S) = 8) then
   begin
    Result := S;
   end;
   if (length(S) = 4) then
   begin
    Result := Result + S;
    Memo1.Lines.Add(Result);
   end;

end;

Gruß, Real-TTX
  Mit Zitat antworten Zitat