🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.vbasic
Article #103653

Re: [VB.NET 2005] kontrolka SerialPort

#103653
From: Marcin Dzióbek
Date: Mon, 06 Oct 2008 15:05
50 lines
2943 bytes
Użytkownik "Marcin" <mgradzki@o2.pl> napisał w wiadomości news:gccllk$d45$1@nemesis.news.neostrada.pl...
> Witam, mam problem z w pewien sposób związany z portem szeregowym w VB.NET
>
> Używam kontrolki SerialPort do komunikacji po porcie szeregowym emulowanym
> na USB (chipset FTDI). Wszystko działa w porządku do momentu kiedy nie
> zostanie odłączona przejściówka RS/USB.
> Po odłączeniu znika z systemu port com. Program idzie dalej, bo wszelkie
> odwołania do portu są w sekcjach TRY / END TRY. Zasadniczy problem pojawia
> się, gdy chcę zamknąć aplikację. Próbuje ona zamknąć nieistniejący w
> systemie port, co kończy się wyjątkiem "Access to port is denided" (którego
> nie mogę obsłużyć przez TRY).
> Szukam jakiegoś sposobu zlikwidowania portu przed zamknięciem, albo
> zablokowania komunikatu o wystąpieniu wyjątku.
> Jeśli ktoś ma pojęcie jak to zrobić to proszę o jakieś info.


Nie napisałeś czy sam zamykasz port i ew. jak to robisz - tj. czy używasz jawnie metody close, czy pozwalasz aby dotnet 
robił to za ciebie.

Podlacz usb, uruchom taki kod i w trakcie oczekiwania na Enter odlacz usb:

    Sub Main()
        Dim p As New System.IO.Ports.SerialPort("COM1")
        p.Open()
        Console.Write("port otwarty; odlacz usb i palnij w Enter")
        '...
        Console.ReadLine()
         Try
            p.Close() 'jawnie zamykam port
        Catch ex As Exception
        End Try
    End Sub

albo tak:

    Sub Main()
        Dim p As New System.IO.Ports.SerialPort("COM1")
        p.Open()
        Console.Write("port otwarty; odlacz usb i palnij w Enter")
        '...
        Console.ReadLine()
        'p.Close() troche nieladnie: teraz celowo nie zamykam portu - sam sie zamknie (choć niekoniecznie 
natychmiast)...
    End Sub

Czy w którymś, z w/w przypadków też dostajesz "Access to port is denied"?

Pozdr
MDz
Technical Details
Message-ID: <gcd9tg$il7$1@nemesis.news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!nemesis.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
References: <gccllk$d45$1@nemesis.news.neostrada.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!wsisiz.edu.pl!newsfeed.neostrada.pl!nemesis.news.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail
From: Marcin Dzióbek <m-dz@wp.pl.>
Newsgroups: pl.comp.lang.vbasic
Subject: Re: [VB.NET 2005] kontrolka SerialPort
Date: Mon, 6 Oct 2008 17:05:04 +0200
Organization: TP - http://www.tp.pl/
Lines: 54
Message-ID: <gcd9tg$il7$1@nemesis.news.neostrada.pl>
References: <gccllk$d45$1@nemesis.news.neostrada.pl>
NNTP-Posting-Host: fgv198.internetdsl.tpnet.pl
Mime-Version: 1.0
X-Trace: nemesis.news.neostrada.pl 1223305969 19111 83.13.177.198 (6 Oct 2008 15:12:49 GMT)
X-Complaints-To: usenet@news.neostrada.pl
NNTP-Posting-Date: Mon, 6 Oct 2008 15:12:49 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5512
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit