Einzelnen Beitrag anzeigen

MarkusReisser

Registriert seit: 26. Mai 2007
17 Beiträge
 
Delphi 7 Personal
 
#15

AW: TComPort - RS232 Ausgabe in Memo

  Alt 21. Mai 2014, 15:01
Heyho,

das TComDataPacket habe ich nun mal probiert und die Formatierung ist so, wie sie sein soll.

Aber:

Stelle ich die COM-Verbindung in meinem Tool her und starte dann erst den Cisco Router, sehe ich die Ausgabe vom Startprozess des Routers im Memo. Danach kann ich meine Befehle absetzen und auch dort wird alles im Memo angezeigt. Alles super!

Wenn der Cisco Router aber schon gestartet ist, ich die COM-Verbindung im Tool dann erst herstelle und im Anschluss meine Befehle absetze, bleibt das Memo leer...

Woran kann das denn liegen? Es sieht so aus, als wolle mein Tool von der Gegenstelle aus das erste mal getriggert werden...

Mein Code sieht aktuell so aus:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
ComDataPacket1.StopString:=#13;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
// Verbindungseinstellungen Cisco-Defaults und COM1
ComPort1.Port:='COM1';
ComPort1.BaudRate:=br9600;
ComPort1.DataBits:=dbEight;
ComPort1.Parity.Bits:=prNone;
ComPort1.StopBits:=sbOneStopBit;
ComPort1.FlowControl.FlowControl:=fcNone;
ComPort1.Connected:=true; // Verbindung herstellen
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ComPort1.Connected:=false; // Verbidnung trennen
end;

procedure TForm1.Button3Click(Sender: TObject);
var
Befehl1:String; // Variable vom Typ string
begin
// Wenn die Verbindung hergestellt ist, dann Befehl senden
if ComPort1.Connected=true then begin
 Befehl1:='Ich bin ein Befehl' + #13;
 ComPort1.WriteStr(Befehl1); // Befehl senden
end;
end;

procedure TForm1.ComPort1AfterClose(Sender: TObject);
begin
Label13.Caption:='Status: Nicht Verbunden'; // Status "Nicht Verbunden" anzeigen
end;

procedure TForm1.ComPort1AfterOpen(Sender: TObject);
begin
Label13.Caption:='Status: Verbunden'; // Status "Verbunden" anzeigen
end;

procedure TForm1.ComDataPacket1Packet(Sender: TObject; const Str: string);
begin
Memo1.Lines.Add(Str); // Ausgabe Rx/Tx Data in Memo
end;
  Mit Zitat antworten Zitat