Forum: PC-Programmierung C# serial port Konflikte mit Putty


von Dell (Gast)


Lesenswert?

Hallo zusammen,

Ich schreibe Grade einen Datenlogger in c# mit visual c#.

Ich verwende einen mm232 USB-to-Serial/Uart Controller.

Dieser wird in meiner Software erkannt und ich erhalte keinerlei 
Fehlermeldungen, wenn ich den port öffne oder wenn ich Daten schreiben 
möchte.

Nun wollte ich mal kontrollieren, ob mein Teststring wirklich raus geht.
Dafür benutze ich Putty.

Allerdings sperren sich die beiden Programme aus.

Fall 1:
Ich öffne den Port mit Putty
Ich starte mein Programm und möchte einen String senden:
Das Programm stürzt ab mit der Begründung, dass der port nicht offen ist 
(an der stelle, wo der String gesendet werden soll)
Füge ich vorher noch einmal serialport1.openport() ein, so bekomme ich 
an dieser stelle die Fehlermeldung, dass er keinen Zugriff auf den port 
hat. Zum öffnen des ports habe ich eh if(serialport.isopened==False){ 
serialport.open();}
eingesetzt

Fall 2:
Ich starte mein Programm. Der serial port wird erkannt, ich wähle ihn 
aus, er wird geöffnet und ich kann meinen String scheinbar senden. Es 
gibt keinerlei Fehlermeldung.
Allerdings ist es mir jetzt nicht mehr möglich den port mit Putty zu 
öffnen und zu beobachten

Code gibt es da nicht viel zu Posten, denke ich.

Oder könnte es an dem mm232 liegen? An diesem ist bisher nichts 
angeschlossen. Lediglich der ft232 Chip wird über USB-powered-Config. 
Betrieben. Das sollte auch so passen, denn schließlich wird er auch als 
COM5 erkannt.

von Thorsten (Gast)


Lesenswert?

Das ist Absicht. Ein serieller Port kann nur von einem Programm 
gleichzeitig geöffnet werden.

von Dell (Gast)


Lesenswert?

und wie kann ich nun die daten mit putty lesen, wenn ich dort den port 
nicht öffnen kann?

von Peter II (Gast)


Lesenswert?

Dell schrieb:
> und wie kann ich nun die daten mit putty lesen, wenn ich dort den port
> nicht öffnen kann?

gar nicht.

von Dell (Gast)


Lesenswert?

oder ist putty nur für daten, die von außen kommen gedacht facepalm

von Peter II (Gast)


Lesenswert?

Dell schrieb:
> oder ist putty nur für daten, die von außen kommen gedacht facepalm

mit putty kann man über die serielle schnittstelle Datenaustauschen, 
nicht mehr und nicht weniger.

Die Serielle schnittstelle ist eine Resource die nur ein Porgramm 
gleichzeitig verwenden kann. Also entweder ein C# oder Putty.

Warum sollte dein C# programm denn den STring nicht versenden, wenn du 
es richtig programiert hast. Da gibt es eigentlich nichts zu prüfen.

von Dell (Gast)


Lesenswert?

Peter:
Ich würde es eben doch prüfen wollen.

und ich dachte, man könnte mit putty den serial port mitlesen. also 
sowohl ankommende daten von einem uC o.ä. und eben auch die daten der 
anwendung

gibt es eine solche software?

von Peter II (Gast)


Lesenswert?

Dell schrieb:
> gibt es eine solche software?

ja, suche mal nach Portmon oder SerialPortMon

aber viele laufen unter Win7 64bit nicht mehr.

von Uhu U. (uhu)


Lesenswert?

Dell schrieb:
> gibt es eine solche software?

Möglich, aber nimm doch einfach einen zweiten Adapter und verbinde beide 
mit einem gekreuzten Kabel. An den anderen Port kannst du dann mit putty 
o.Ä ran.

von Ralf (Gast)


Lesenswert?

Einfach RxD und TxD miteinander verbinden ist billiger und schneller ;) 
Nennt man dann Hardware-Echo :D

Ralf

von Mathias L. (mat33333)


Lesenswert?

google mal nach: HHD Free Serial Port Monitor. Das sollte dir helfen.

von Christian S. (christian_1981)


Lesenswert?

Schau dir mal das Programm an:
http://www.eterlogic.com/Products.VSPE.html

Das sollte dir dabei helfen. Damit kann man virtuelle Ports erstellen, 
die miteinander verbunden sind.
Dein C# Programm verwendet dann den einen Port und schreibt Daten rein, 
Putty hängt dann am anderen virtuellen Port und empfängt die Daten.
Habe das Tool schon öfters verwendet, klappt ganz gut.

Mfg,

Christian

von Hank P. (hp67)


Lesenswert?

Ein weiteres empfehlenswertes Programm für virtuelle Nullmodem-Kabel ist 
com0com.

http://com0com.sourceforge.net/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.