Laden...

Serial Port richtig freigeben

Erstellt von samo vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.490 Views
S
samo Themenstarter:in
1 Beiträge seit 2015
vor 8 Jahren
Serial Port richtig freigeben

Hallo zusammen

ich arbeite an einem Projekt wo ich über eine Serielle Schnittstelle mit einem Terminal kommuniziere. Ich arbeite mit C# und Visual Studio 2010. Die Kommunikation mit dem Terminal funktioniert über AT-Kommandos. Das funktioniert auch alles einwandfrei. Nun habe ich aber das Problem das man das Terminal ab und an mal neustarten muss, da es aus einem Fehler nicht mehr herauskommt. Herunterfahren geht auch super, nur neu starten geht nicht. Wenn ich das Ganze mit Putty mache funktioniert es einwandfrei. Ich sende dann das AT-Kommando zum runterfahren, was auch funktioniert. Dann starte ich Putty neu, stelle eine neue Verbindung zum ComPort her und das Terminal springt wieder an. In meinem C#-Programm funktioniert das wieder anspringen leider nicht. Ich vermute dass es am Garbage Collector liegt, der die Resource nicht gleich frei gibt. Denn herunterfahren funktioniert noch.

Hier mein Code zum abschalten des Terminals:

 public void Shutdown()
        {
            _comPort.Open();
            String commandShutDown = BuildATCommand(_shutdownModem);
            SendATCommand(commandShutDown);
            _comPort.Close();
            _comPort.Dispose();
            _isInitialized = false;
        }

Ich habe auch schon versucht ein neues Objekt zu erzeugen dass dann den gleichen ComPort bekommt. Aber das Terminal springt nicht wieder an. Fehlermeldung bekomme ich allerdings auch keine. Weiß jemand wie ich das richtig mache? Also Terminal herunterfahren, ComPort schließen und dann sozusagen neu starten am gleichen ComPort?

Vielen Dank für jegliche Hilfe.

Y
102 Beiträge seit 2005
vor 8 Jahren

Poste doch mal deinen Code zum Neustarten des Terminals.
Wie lange benötigt das Terminal zum Herunterfahren?