AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TComPort - RS232 Ausgabe in Memo

Ein Thema von MarkusReisser · begonnen am 20. Mai 2014 · letzter Beitrag vom 27. Mai 2014
Antwort Antwort
MarkusReisser

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

AW: TComPort - RS232 Ausgabe in Memo

  Alt 21. Mai 2014, 12:03
Ich seh schon... Aber er unterrichtet natürlich noch im Fach Informatik. Vielleicht habe ich es aber auch nur falsch aufgefasst. Es ist doch schon so lange her

Nun zu der Ausgabe.
Delphi-Quellcode:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
Ausgabe:String; // Variable vom Typ String
begin
ComPort1.ReadStr(Ausgabe, 80);
Memo1.Lines.Add(Ausgabe);
end;
Es funktioniert grundsätzlich über die RxChar. Die Ausgabe in das Memo kann man ja noch auf anderen Wegen machen.

Der Fehler lag im ReadInterval Timeout des TComPort. Dieser ist per Default auf -1 gesetzt! Somit blieb mein Memo immer leer! Ich bin durch Zufall darauf gestoßen... Die Ausgabe ist ja sogar in dieser Form in den Examples aufgeführt - also muss diese Methode ja auch funktionieren.

Das ReadInterval Timeout habe ich nun mal auf 1000 gesetzt. Das Memo füllt sich schön mit dem Ausgabetext und natürlich auch mit meinen Befehlen.

So sieht der ausgegebene Inhalt aktuell aus:

Zitat:
C876#ena
C876#conf t
Enter configuration commands, one per line. End with C
NTL/Z.
C876(config)#username Test6 password Test6
C876(config)#exit
C876#copy
run start
Destination filename [startup-config]?
Building configuration...


*Mar 2 01:20:33.610: %SYS-5-CONFIG_I: Configured from console by console[OK]


C876#
C876#
C876#
Ich möchte aber, dass dieser so aussieht:

Zitat:
C876#ena
C876#conf t
Enter configuration commands, one per line. End with CNTL/Z.
C876(config)#username Test6 password Test6
C876(config)#exit
C876#copy run start
Destination filename [startup-config]?
Building configuration...


*Mar 2 01:20:33.610: %SYS-5-CONFIG_I: Configured from console by console[OK]


C876#
C876#
C876#
Er bringt dort ab und zu Zeilenumbrüche rein (hier bei dem Befehl "copy run start"). Wie kann ich dem vorbeugen? Hat da jemand eine Idee?

Auf alle Fälle schon mal ein großes Danke an Euch!
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TComPort - RS232 Ausgabe in Memo

  Alt 21. Mai 2014, 12:10
Hast du versehentlich oder absichtlich meine obige Antwort überlesen? Dort würdest du sicher die Antwort finden.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#3

AW: TComPort - RS232 Ausgabe in Memo

  Alt 21. Mai 2014, 12:20
Oder du benutzt, wie auch schon vorgeschlagen, ein TComDataPacket
Glückauf
  Mit Zitat antworten Zitat
MarkusReisser

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

AW: TComPort - RS232 Ausgabe in Memo

  Alt 21. Mai 2014, 13:22
Hast du versehentlich oder absichtlich meine obige Antwort überlesen? Dort würdest du sicher die Antwort finden.
Sorry, versehentlich überlesen

sReceive ist ein String?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.342 Beiträge
 
Delphi 12 Athens
 
#5

AW: TComPort - RS232 Ausgabe in Memo

  Alt 21. Mai 2014, 13:28
Ja.

TComDataPacket macht intern praktisch genau das Selbe, nur eben voll automatisch.
Man muß nur als Ende-Zeichen den Zeilenumbruch (#13) angeben.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
MarkusReisser

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

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
MarkusReisser

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

AW: TComPort - RS232 Ausgabe in Memo

  Alt 27. Mai 2014, 06:59
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
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:40 Uhr.
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