Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TComPort - RS232 Ausgabe in Memo (https://www.delphipraxis.net/180433-tcomport-rs232-ausgabe-memo.html)

baumina 21. Mai 2014 12:10

AW: TComPort - RS232 Ausgabe in Memo
 
Hast du versehentlich oder absichtlich meine obige Antwort überlesen? Dort würdest du sicher die Antwort finden.

guinnes 21. Mai 2014 12:20

AW: TComPort - RS232 Ausgabe in Memo
 
Oder du benutzt, wie auch schon vorgeschlagen, ein TComDataPacket

MarkusReisser 21. Mai 2014 13:22

AW: TComPort - RS232 Ausgabe in Memo
 
Zitat:

Zitat von baumina (Beitrag 1259618)
Hast du versehentlich oder absichtlich meine obige Antwort überlesen? Dort würdest du sicher die Antwort finden.

Sorry, versehentlich überlesen :wink:

sReceive ist ein String?

himitsu 21. Mai 2014 13:28

AW: TComPort - RS232 Ausgabe in Memo
 
Ja.

TComDataPacket macht intern praktisch genau das Selbe, nur eben voll automatisch.
Man muß nur als Ende-Zeichen den Zeilenumbruch (#13) angeben.

MarkusReisser 21. Mai 2014 15:01

AW: TComPort - RS232 Ausgabe in Memo
 
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;

MarkusReisser 27. Mai 2014 06:59

AW: TComPort - RS232 Ausgabe in Memo
 
So,

alles funktioniert nun. Die Verbindung konnte nur bei einem bestimmten Gerät nicht vom Tool aus aufgebaut werden.

Ich danke Euch für die Hilfe.

Mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:30 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz