Einzelnen Beitrag anzeigen

Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Tcomport on RXChar Problem

  Alt 10. Okt 2012, 11:21
Hast du denn einen EventChar definiert, damit das OnRxChar gefeuert wird?

So reagiere ich auf neue Daten:

Delphi-Quellcode:
procedure TRS232Thread.ComPortRxChar(Sender: TObject; Count: Integer);
var
  Received: string;
  CRPosition: Integer;
begin
  (Sender as TComPort).ReadStr(Received, Count);
  FResponse := FResponse + Received;
  CRPosition := Pos(Chr(13), FResponse);
  if CRPosition > 0 then
  begin
    FReceivedStr := Copy(FResponse, 1, CRPosition);
    FResponse := '';
    if MeasureDataValid(FReceivedStr, FValue1, FValue2) then
      Synchronize(DoOnDataRead);
  end;
  FCycles := 0;
end;
Versuchs mal so, ich weiß ja nicht wie das Intervall deines Timer ist:

Delphi-Quellcode:
procedure TForm2.Timer1Timer(Sender: TObject);
var
  Str: String;
begin
  (Sender as TTimer).Enabled := False;
  try
    ComPort1.ReadStr(Str, 10);
    if str <>'then
      memo2.Lines.Add(stringtohex(str));
  finally
    (Sender as TTimer).Enabled := True;
  end;
end;
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es

Geändert von divBy0 (10. Okt 2012 um 11:24 Uhr)
  Mit Zitat antworten Zitat