Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

SerialPort.Open-Methode: ()

 

Veröffentlicht: Oktober 2016

Öffnet eine neue serielle Anschlussverbindung.

Namespace:   System.IO.Ports
Assembly:  System (in System.dll)

public void Open()

Exception Condition
UnauthorizedAccessException

Der Zugriff auf den Port verweigert.

- oder -

Den aktuellen Prozess oder ein anderer Prozess auf dem System bereits den angegebenen COM-Anschluss durch Öffnen einer SerialPort Instanz oder in nicht verwaltetem Code.

ArgumentOutOfRangeException

Mindestens eine der Eigenschaften für diese Instanz sind ungültig. Z. B. die Parity, DataBits, oder Handshake Eigenschaften sind keine gültigen Werte; der BaudRate ist kleiner oder gleich 0 (null); die ReadTimeout oder WriteTimeout Eigenschaft ist kleiner als 0 (null) und nicht InfiniteTimeout.

ArgumentException

Der Portname beginnt nicht mit "COM".

- oder -

Der Dateityp des Anschlusses wird nicht unterstützt.

IOException

Der Port ist in einem ungültigen Zustand.

- oder -

Festlegen des Status für den zugrunde liegenden Port ist fehlgeschlagen. Z. B. die Parameter übergeben, von diesem SerialPort Objekt war ungültig.

InvalidOperationException

Der angegebene Port auf der aktuellen Instanz der SerialPort ist bereits geöffnet.

Kann nur eine offene Verbindung pro vorhanden SerialPort Objekt.

Die bewährte Methode für jede Anwendung ist, warten, für einige Zeit nach dem Aufruf der Close Methode vor dem Aufrufen der Open -Methode als Port kann nicht geschlossen werden, sofort.

Das folgende Codebeispiel veranschaulicht die Verwendung der SerialPort -Klasse ermöglicht zwei Benutzern auf zwei verschiedenen Computern, die durch ein null-Modem-Kabel verbunden zu chatten. In diesem Beispiel werden die Benutzer für die Porteinstellungen und einen Benutzernamen vor chatten aufgefordert. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels, das sich für die 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) { }
    }
}

SecurityPermission

for calling unmanaged code. Associated enumeration: F:System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode Security action: F:System.Security.Permissions.SecurityAction.LinkDemand

.NET Framework
Verfügbar seit 2.0
Zurück zum Anfang
Anzeigen: