Serialport Object kann nicht zerstört werden

06/05/2010 - 07:54 von Holger Vorberg | Report spam
Ich habe ein Problem mit der System.IO.Ports.SerialPort Klasse.

Dieses Benutze ich, um ein externes Geràt (in diesem Fall ein EFT
Terminal) anzusteuern. Der Hersteller schreibt gewisse Testszenarien
vor, wozu auch gehört, dass mal die Verbindung zwischen PC und Geràt
unterbrochen sein muss. Nach der Wiederherstellung der Verbindung soll
in einem bestimmten Workflow weitergearbeitet werden. Ich ziehe ganz
einfach mal den Stecker des Seriellen Kabels raus und stecke ihn
irgendwann wieder rein. Meine Anwendung erkennt zwar, dass für einen
bestimmten Zeitraum keine Kommunikation stattgefunden hat, aber eine
erneute Aufnahme der Kommunikation ist nicht möglich weil der
entsprechende Comport dann blockiert ist. Es gibt eine Exception, die
besagt, dass der Zugriff auf diesen Port verweigert wird. Meine Idee war
es nun, das entsprechende Serialportobjekt zu zerstören und ein neues zu
instanziieren. Klappt aber nicht, weil sich das alte nicht zerstören làsst.

Hat jemand eine Idee, was ich da machen kann?

MfG
Holger Vorberg
 

Lesen sie die antworten

#1 Peter Götz
06/05/2010 - 09:37 | Warnen spam
Hallo Holger,

Ich habe ein Problem mit der System.IO.Ports.SerialPort Klasse.

Dieses Benutze ich, um ein externes Geràt (in diesem Fall ein EFT
Terminal) anzusteuern. Der Hersteller schreibt gewisse Testszenarien vor,
wozu auch gehört, dass mal die Verbindung zwischen PC und Geràt
unterbrochen sein muss.



"Muss" oder "kann"?
Ich verstehe nicht, warum die Verbindung unterbrochen sein muss.

Nach der Wiederherstellung der Verbindung soll in einem bestimmten
Workflow weitergearbeitet werden. Ich ziehe ganz einfach mal den Stecker
des Seriellen Kabels raus



Dies erkennst Du am Signal

RS232 Signal: "Carrier Dectect" an Pin1
V24 Signal: M5

und stecke ihn irgendwann wieder rein. Meine Anwendung erkennt zwar, dass
für einen bestimmten Zeitraum keine Kommunikation stattgefunden hat,



Wie erkennst Du das in Deinem Code?

aber eine erneute Aufnahme der Kommunikation ist nicht möglich weil der
entsprechende Comport dann blockiert ist.



Wie sieht der relevante Code zum erneuten Aufnehmen der
Kommunikation aus?


Es gibt eine Exception, die besagt, dass der Zugriff auf diesen Port
verweigert wird.



s.oben: relevanter Code?


Meine Idee war es nun, das entsprechende Serialportobjekt zu zerstören und
ein neues zu instanziieren. Klappt aber nicht, weil sich das alte nicht
zerstören làsst.

Hat jemand eine Idee, was ich da machen kann?



Ohne Deinen relevanten Code zu kennen, kann man dazu
nichts zielführendes sagen.

Unter

www.gssg.de -> Visual Basic -> VB.net
-> Sonstige
-> Serial Port (RS232) Chat

findest Du ein Beispiel für die Kommunikation zwischen zwei
RS232 (V24) Schnittstellen, die auf verschiedenen oder auch
auf dem selben Rechner sein können.
Vielleicht bringt dieses Beispiel schon mal einen Aha-Effekt.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen