SerialPort.Open Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee opent u een nieuwe seriële poortverbinding.
public:
void Open();
public void Open();
member this.Open : unit -> unit
Public Sub Open ()
Uitzonderingen
De toegang tot de poort wordt geweigerd.
– of –
Het huidige proces, of een ander proces op het systeem, heeft de opgegeven COM-poort al geopend door een SerialPort exemplaar of in onbeheerde code.
Een of meer eigenschappen voor dit exemplaar zijn ongeldig. De , of eigenschappen zijn bijvoorbeeld Parityongeldige waarden; de BaudRate waarde is kleiner dan of gelijk aan nul; de ReadTimeout eigenschap WriteTimeout of eigenschap is kleiner dan nul en niet InfiniteTimeout.HandshakeDataBits
De poortnaam begint niet met COM.
– of –
Het bestandstype van de poort wordt niet ondersteund.
De poort heeft een ongeldige status.
– of –
Een poging om de status van de onderliggende poort in te stellen, is mislukt. De parameters die van dit SerialPort object zijn doorgegeven, zijn bijvoorbeeld ongeldig.
De opgegeven poort op het huidige exemplaar van de poort SerialPort is al geopend.
Voorbeelden
Het volgende codevoorbeeld laat het gebruik van de SerialPort klasse zien, zodat twee gebruikers kunnen chatten vanaf twee afzonderlijke computers die zijn verbonden met een null-modemkabel. In dit voorbeeld worden de gebruikers gevraagd om de poortinstellingen en een gebruikersnaam voordat ze chatten. Dit codevoorbeeld maakt deel uit van een groter codevoorbeeld dat is opgegeven voor de SerialPort klasse.
public static void Main()
{
string name;
string message;
StringComparer stringComparer = StringComparer.OrdinalIgnoreCase;
Thread readThread = new Thread(Read);
// Create a new SerialPort object with default settings.
_serialPort = new SerialPort();
// Allow the user to set the appropriate properties.
_serialPort.PortName = SetPortName(_serialPort.PortName);
_serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate);
_serialPort.Parity = SetPortParity(_serialPort.Parity);
_serialPort.DataBits = SetPortDataBits(_serialPort.DataBits);
_serialPort.StopBits = SetPortStopBits(_serialPort.StopBits);
_serialPort.Handshake = SetPortHandshake(_serialPort.Handshake);
// Set the read/write timeouts
_serialPort.ReadTimeout = 500;
_serialPort.WriteTimeout = 500;
_serialPort.Open();
_continue = true;
readThread.Start();
Console.Write("Name: ");
name = Console.ReadLine();
Console.WriteLine("Type QUIT to exit");
while (_continue)
{
message = Console.ReadLine();
if (stringComparer.Equals("quit", message))
{
_continue = false;
}
else
{
_serialPort.WriteLine(
String.Format("<{0}>: {1}", name, message));
}
}
readThread.Join();
_serialPort.Close();
}
public static void Read()
{
while (_continue)
{
try
{
string message = _serialPort.ReadLine();
Console.WriteLine(message);
}
catch (TimeoutException) { }
}
}
Public Shared Sub Main()
Dim name As String
Dim message As String
Dim stringComparer__1 As StringComparer = StringComparer.OrdinalIgnoreCase
Dim readThread As New Thread(AddressOf Read)
' Create a new SerialPort object with default settings.
_serialPort = New SerialPort()
' Allow the user to set the appropriate properties.
_serialPort.PortName = SetPortName(_serialPort.PortName)
_serialPort.BaudRate = SetPortBaudRate(_serialPort.BaudRate)
_serialPort.Parity = SetPortParity(_serialPort.Parity)
_serialPort.DataBits = SetPortDataBits(_serialPort.DataBits)
_serialPort.StopBits = SetPortStopBits(_serialPort.StopBits)
_serialPort.Handshake = SetPortHandshake(_serialPort.Handshake)
' Set the read/write timeouts
_serialPort.ReadTimeout = 500
_serialPort.WriteTimeout = 500
_serialPort.Open()
_continue = True
readThread.Start()
Console.Write("Name: ")
name = Console.ReadLine()
Console.WriteLine("Type QUIT to exit")
While _continue
message = Console.ReadLine()
If stringComparer__1.Equals("quit", message) Then
_continue = False
Else
_serialPort.WriteLine([String].Format("<{0}>: {1}", name, message))
End If
End While
readThread.Join()
_serialPort.Close()
End Sub
Public Shared Sub Read()
While _continue
Try
Dim message As String = _serialPort.ReadLine()
Console.WriteLine(message)
Catch generatedExceptionName As TimeoutException
End Try
End While
End Sub
Opmerkingen
Er kan slechts één geopende verbinding per SerialPort object bestaan.
De aanbevolen procedure voor elke toepassing is om enige tijd te wachten nadat de Close methode is aangeroepen voordat de Open methode wordt aangeroepen, omdat de poort mogelijk niet direct wordt gesloten.