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-Klasse

 

Veröffentlicht: Oktober 2016

Stellt einen seriellen Anschluss (als entsprechende Ressource) dar.

Um den .NET Framework-Quellcode für diesen Typ zu durchsuchen, finden Sie unter der Reference Source.

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

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.IO.Ports.SerialPort

public class SerialPort : Component

NameBeschreibung
System_CAPS_pubmethodSerialPort()

Initialisiert eine neue Instanz der SerialPort-Klasse.

System_CAPS_pubmethodSerialPort(IContainer)

Initialisiert eine neue Instanz der SerialPort-Klasse mit dem angegebenen IContainer-Objekt.

System_CAPS_pubmethodSerialPort(String)

Initialisiert eine neue Instanz der SerialPort-Klasse unter Verwendung des angegebenen Anschlussnamens.

System_CAPS_pubmethodSerialPort(String, Int32)

Initialisiert eine neue Instanz der SerialPort-Klasse unter Verwendung des angegebenen Anschlussnamens und der Baudrate.

System_CAPS_pubmethodSerialPort(String, Int32, Parity)

Initialisiert eine neue Instanz der SerialPort-Klasse mit dem angegebenen Anschlussnamen, der Baudrate und dem Paritätsbit.

System_CAPS_pubmethodSerialPort(String, Int32, Parity, Int32)

Initialisiert eine neue Instanz der SerialPort-Klasse mit dem angegebenen Anschlussnamen, der Baudrate, dem Paritätsbit und Datenbits.

System_CAPS_pubmethodSerialPort(String, Int32, Parity, Int32, StopBits)

Initialisiert eine neue Instanz der SerialPort-Klasse mit dem angegebenen Anschlussnamen, der Baudrate, dem Paritätsbit, den Datenbits und Stoppbits.

NameBeschreibung
System_CAPS_pubpropertyBaseStream

Ruft das zugrunde liegende Stream-Objekt für ein SerialPort-Objekt ab.

System_CAPS_pubpropertyBaudRate

Ruft die serielle Baudrate ab oder legt diese fest.

System_CAPS_pubpropertyBreakState

Ruft den Zustand bei einer Signalunterbrechung ab oder legt diesen fest.

System_CAPS_pubpropertyBytesToRead

Ruft die Anzahl der Datenbytes im Empfangspuffer ab.

System_CAPS_pubpropertyBytesToWrite

Ruft die Anzahl der Datenbytes ab, die sich im Sendepuffer befinden.

System_CAPS_protpropertyCanRaiseEvents

Ruft einen Wert, der angibt, ob die Komponente ein Ereignis auslösen kann.(Geerbt von „Component“.)

System_CAPS_pubpropertyCDHolding

Ruft den Zustand des "Carrier Detect"-Eingangs ab.

System_CAPS_pubpropertyContainer

Ruft die IContainer enthält die Component.(Geerbt von „Component“.)

System_CAPS_pubpropertyCtsHolding

Ruft den Zustand des "Clear-to-Send"-Eingangs ab.

System_CAPS_pubpropertyDataBits

Ruft die Standardlänge der Datenbits pro Byte ab oder legt diese fest.

System_CAPS_protpropertyDesignMode

Ruft einen Wert, der angibt, ob die Component befindet sich derzeit im Entwurfsmodus befindet.(Geerbt von „Component“.)

System_CAPS_pubpropertyDiscardNull

Ruft einen Wert ab, der angibt, ob NULL-Bytes bei der Übertragung zwischen dem Anschluss und dem Empfangspuffer ignoriert werden, oder legt diesen fest.

System_CAPS_pubpropertyDsrHolding

Ruft den Zustand des DSR (Data Set Ready)-Signals ab.

System_CAPS_pubpropertyDtrEnable

Ruft einen Wert ab, der das Data Terminal Ready (DTR)-Signal während einer seriellen Kommunikation aktiviert, oder legt diesen fest.

System_CAPS_pubpropertyEncoding

Ruft die Bytecodierung für die Konvertierung von Text vor und nach der Übertragung ab oder legt diese fest.

System_CAPS_protpropertyEvents

Ruft die Liste der Ereignishandler, die mit dieser verknüpft sind Component.(Geerbt von „Component“.)

System_CAPS_pubpropertyHandshake

Ruft das Handshakeprotokoll für die Datenübertragung an seriellen Anschlüssen anhand eines Werts von Handshake ab oder legt dieses fest.

System_CAPS_pubpropertyIsOpen

Ruft einen Wert ab, der den offenen oder geschlossenen Status des SerialPort-Objekts angibt.

System_CAPS_pubpropertyNewLine

Ruft den Wert ab, mit dem das Ende eines Aufrufs der ReadLine-Methode und der WriteLine-Methode interpretiert wird, oder legt diesen fest.

System_CAPS_pubpropertyParity

Ruft das Paritätsprüfungsprotokoll ab oder legt dieses fest.

System_CAPS_pubpropertyParityReplace

Ruft das Byte ab, das ungültige Bytes in einem Datenstream ersetzt, wenn ein Paritätsfehler auftritt, oder legt dieses fest.

System_CAPS_pubpropertyPortName

Ruft den Anschluss für die Kommunikation ab oder legt diesen fest, einschließlich aller verfügbaren COM-Anschlüsse, aber nicht beschränkt auf diese.

System_CAPS_pubpropertyReadBufferSize

Ruft die Größe des SerialPort-Eingabepuffers ab oder legt diese fest.

System_CAPS_pubpropertyReadTimeout

Ruft die Anzahl der Millisekunden ab, bevor ein Timeout auftritt, wenn ein Lesevorgang nicht beendet wird, oder legt diese fest.

System_CAPS_pubpropertyReceivedBytesThreshold

Ruft die Anzahl von Bytes im internen Eingabepuffer ab, bevor ein DataReceived-Ereignis auftritt, oder legt diese fest.

System_CAPS_pubpropertyRtsEnable

Ruft einen Wert ab, der angibt, ob das Request to Send (RTS)-Signal während der seriellen Kommunikation aktiviert ist, oder legt diesen fest.

System_CAPS_pubpropertySite

Ruft ab oder legt die ISite von der Component.(Geerbt von „Component“.)

System_CAPS_pubpropertyStopBits

Ruft die Standardanzahl von Stoppbits pro Byte ab oder legt diese fest.

System_CAPS_pubpropertyWriteBufferSize

Ruft die Größe des Ausgabepuffers des seriellen Anschlusses ab oder legt diese fest.

System_CAPS_pubpropertyWriteTimeout

Ruft die Anzahl der Millisekunden ab, bevor ein Timeout auftritt, wenn ein Schreibvorgang nicht beendet wird, oder legt diese fest.

NameBeschreibung
System_CAPS_pubmethodClose()

Schließt die Anschlussverbindung, legt die IsOpen-Eigenschaft auf false fest und löscht das interne Stream-Objekt.

System_CAPS_pubmethodCreateObjRef(Type)

Erstellt ein Objekt, das alle relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind.(Geerbt von „MarshalByRefObject“.)

System_CAPS_pubmethodDiscardInBuffer()

Verwirft Daten aus dem Empfangspuffer des seriellen Treibers.

System_CAPS_pubmethodDiscardOutBuffer()

Verwirft Daten aus dem Übertragungspuffer des seriellen Treibers.

System_CAPS_pubmethodDispose()

Gibt alle vom Component verwendeten Ressourcen frei.(Geerbt von „Component“.)

System_CAPS_protmethodDispose(Boolean)

Gibt die von SerialPort verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.(Überschreibt Component.Dispose(Boolean).)

System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von „Object“.)

System_CAPS_protmethodFinalize()

Gibt nicht verwaltete Ressourcen frei und führt andere Bereinigungsvorgänge durch, bevor die Component durch die Garbage Collection wieder zugänglich gemacht wird.(Geerbt von „Component“.)

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion.(Geerbt von „Object“.)

System_CAPS_pubmethodGetLifetimeService()

Ruft die aktuellen Service-Objekt, das die Lebensdauerrichtlinien für diese Instanz steuert.(Geerbt von „MarshalByRefObject“.)

System_CAPS_pubmethodSystem_CAPS_staticGetPortNames()

Ruft ein Array der seriellen Anschlussnamen für den aktuellen Computer ab.

System_CAPS_protmethodGetService(Type)

Gibt ein Objekt zurück, das einen von der Component oder von deren Container bereitgestellten Dienst darstellt.(Geerbt von „Component“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodInitializeLifetimeService()

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinien für diese Instanz ab.(Geerbt von „MarshalByRefObject“.)

System_CAPS_protmethodMemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.(Geerbt von „Object“.)

System_CAPS_protmethodMemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject Objekt.(Geerbt von „MarshalByRefObject“.)

System_CAPS_pubmethodOpen()

Öffnet eine neue serielle Anschlussverbindung.

System_CAPS_pubmethodRead(Byte[], Int32, Int32)

Liest eine Anzahl von Bytes aus dem SerialPort-Eingabepuffer und schreibt diese Bytes am angegebenen Offset in ein Bytearray.

System_CAPS_pubmethodRead(Char[], Int32, Int32)

Liest eine Anzahl von Zeichen aus dem SerialPort-Eingabepuffer und schreibt diese am angegebenen Offset in ein Zeichenarray.

System_CAPS_pubmethodReadByte()

Liest synchron ein Byte aus dem SerialPort-Eingabepuffer.

System_CAPS_pubmethodReadChar()

Liest synchron ein Zeichen aus dem SerialPort-Eingabepuffer.

System_CAPS_pubmethodReadExisting()

Liest alle sofort verfügbaren Bytes auf Grundlage der Codierung sowohl im Stream als auch im Eingabepuffer des SerialPort-Objekts.

System_CAPS_pubmethodReadLine()

Liest bis zum NewLine-Wert im Eingabepuffer.

System_CAPS_pubmethodReadTo(String)

Liest eine Zeichenfolge bis zum angegebenen value im Eingabepuffer.

System_CAPS_pubmethodToString()

Gibt eine String mit dem Namen der Component, sofern vorhanden. Diese Methode darf nicht überschrieben werden.(Geerbt von „Component“.)

System_CAPS_pubmethodWrite(Byte[], Int32, Int32)

Schreibt eine angegebene Anzahl von Bytes unter Verwendung von Daten aus einem Puffer in den seriellen Anschluss.

System_CAPS_pubmethodWrite(Char[], Int32, Int32)

Schreibt eine angegebene Anzahl von Zeichen unter Verwendung von Daten aus einem Puffer in den seriellen Anschluss.

System_CAPS_pubmethodWrite(String)

Schreibt die angegebene Zeichenfolge in den seriellen Anschluss.

System_CAPS_pubmethodWriteLine(String)

Schreibt die angegebene Zeichenfolge und den NewLine-Wert in den Ausgabepuffer.

NameBeschreibung
System_CAPS_pubfieldSystem_CAPS_staticInfiniteTimeout

Gibt an, dass kein Timeout erfolgen soll.

NameBeschreibung
System_CAPS_pubeventDataReceived

Gibt an, dass Daten über einen Port empfangen wurden, der durch das SerialPort-Objekt dargestellt wird.

System_CAPS_pubeventDisposed

Tritt auf, wenn die Komponente, durch einen Aufruf freigegeben wird der Dispose Methode.(Geerbt von „Component“.)

System_CAPS_pubeventErrorReceived

Gibt an, dass ein Fehler bei einem Port aufgetreten ist, der durch ein SerialPort-Objekt dargestellt wird.

System_CAPS_pubeventPinChanged

Gibt an, dass ein Nicht-Datensignalereignis an dem Port aufgetreten ist, der durch das SerialPort-Objekt dargestellt wird.

System_CAPS_noteHinweis

Die .NET Framework-Quellcodes für diesen Typ finden Sie unter der Reference Source. Sie können den Quellcode online Durchsuchen, Referenz für die Offlineanzeige herunterladen und schrittweise durchlaufen (inklusive Patches und Updates) während des Debuggens; see instructions.

Verwenden Sie diese Klasse, um eine Ressource seriellen Anschluss zu steuern. Diese Klasse stellt synchrone und ereignisgesteuerte e/a-Zugriff auf PIN-und Unterbrechungszustände und den Zugriff auf Eigenschaften des seriellen Treibers. Darüber hinaus kann die Funktionen dieser Klasse umschlossen werden, in einer internen Stream Objekt über die BaseStream -Eigenschaft, und übergeben Sie Klassen, die Streams umschließen oder verwenden.

Die SerialPort Klasse unterstützt die folgenden Codierungen: ASCIIEncoding, UTF8Encoding, UnicodeEncoding, UTF32Encoding, und jede Codierung in "mscorlib.dll", bei denen die Codepage ist kleiner als 50000 oder die Codepage 54936, definiert. Können Sie alternative Codierungen, aber verwenden Sie die ReadByte oder Write Methode und die Codierung selbst durchführen.

Verwenden Sie die GetPortNames Methode, um die gültige Ports für den aktuellen Computer abzurufen.

Wenn ein SerialPort Objekt während eines Lesevorgangs blockiert wird, brechen Sie den Thread nicht ab. Stattdessen entweder die Basis schließen streamen oder löschen Sie die SerialPort Objekt.

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. Beide Computer müssen erzielen sämtliche Funktionen der in diesem Beispiel wird das Programm ausgeführt werden.

// Use this code inside a project created with the Visual C# > Windows Desktop > Console Application template.
// Replace the code in Program.cs with this code.

using System;
using System.IO.Ports;
using System.Threading;

public class PortChat
{
    static bool _continue;
    static SerialPort _serialPort;

    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) { }
        }
    }

    // Display Port values and prompt user to enter a port.
    public static string SetPortName(string defaultPortName)
    {
        string portName;

        Console.WriteLine("Available Ports:");
        foreach (string s in SerialPort.GetPortNames())
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("Enter COM port value (Default: {0}): ", defaultPortName);
        portName = Console.ReadLine();

        if (portName == "" || !(portName.ToLower()).StartsWith("com"))
        {
            portName = defaultPortName;
        }
        return portName;
    }
    // Display BaudRate values and prompt user to enter a value.
    public static int SetPortBaudRate(int defaultPortBaudRate)
    {
        string baudRate;

        Console.Write("Baud Rate(default:{0}): ", defaultPortBaudRate);
        baudRate = Console.ReadLine();

        if (baudRate == "")
        {
            baudRate = defaultPortBaudRate.ToString();
        }

        return int.Parse(baudRate);
    }

    // Display PortParity values and prompt user to enter a value.
    public static Parity SetPortParity(Parity defaultPortParity)
    {
        string parity;

        Console.WriteLine("Available Parity options:");
        foreach (string s in Enum.GetNames(typeof(Parity)))
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("Enter Parity value (Default: {0}):", defaultPortParity.ToString(), true);
        parity = Console.ReadLine();

        if (parity == "")
        {
            parity = defaultPortParity.ToString();
        }

        return (Parity)Enum.Parse(typeof(Parity), parity, true);
    }
    // Display DataBits values and prompt user to enter a value.
    public static int SetPortDataBits(int defaultPortDataBits)
    {
        string dataBits;

        Console.Write("Enter DataBits value (Default: {0}): ", defaultPortDataBits);
        dataBits = Console.ReadLine();

        if (dataBits == "")
        {
            dataBits = defaultPortDataBits.ToString();
        }

        return int.Parse(dataBits.ToUpperInvariant());
    }

    // Display StopBits values and prompt user to enter a value.
    public static StopBits SetPortStopBits(StopBits defaultPortStopBits)
    {
        string stopBits;

        Console.WriteLine("Available StopBits options:");
        foreach (string s in Enum.GetNames(typeof(StopBits)))
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("Enter StopBits value (None is not supported and \n" +
         "raises an ArgumentOutOfRangeException. \n (Default: {0}):", defaultPortStopBits.ToString());
        stopBits = Console.ReadLine();

        if (stopBits == "" )
        {
            stopBits = defaultPortStopBits.ToString();
        }

        return (StopBits)Enum.Parse(typeof(StopBits), stopBits, true);
    }
    public static Handshake SetPortHandshake(Handshake defaultPortHandshake)
    {
        string handshake;

        Console.WriteLine("Available Handshake options:");
        foreach (string s in Enum.GetNames(typeof(Handshake)))
        {
            Console.WriteLine("   {0}", s);
        }

        Console.Write("Enter Handshake value (Default: {0}):", defaultPortHandshake.ToString());
        handshake = Console.ReadLine();

        if (handshake == "")
        {
            handshake = defaultPortHandshake.ToString();
        }

        return (Handshake)Enum.Parse(typeof(Handshake), handshake, true);
    }
}

SecurityPermission

for the ability to call unmanaged code. Associated enumeration: F:System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode

.NET Framework
Verfügbar seit 2.0

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: