Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

SerialPort-Klasse

Stellt einen seriellen Anschluss (als entsprechende Ressource) dar.

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

public class SerialPort : Component

Der SerialPort-Typ macht die folgenden Member verfügbar.

  NameBeschreibung
Öffentliche MethodeSerialPort()Initialisiert eine neue Instanz der SerialPort-Klasse.
Öffentliche MethodeSerialPort(IContainer)Initialisiert eine neue Instanz der SerialPort-Klasse mit dem angegebenen IContainer-Objekt.
Öffentliche MethodeSerialPort(String)Initialisiert eine neue Instanz der SerialPort-Klasse unter Verwendung des angegebenen Anschlussnamens.
Öffentliche MethodeSerialPort(String, Int32)Initialisiert eine neue Instanz der SerialPort-Klasse unter Verwendung des angegebenen Anschlussnamens und der Baudrate.
Öffentliche MethodeSerialPort(String, Int32, Parity)Initialisiert eine neue Instanz der SerialPort-Klasse mit dem angegebenen Anschlussnamen, der Baudrate und dem Paritätsbit.
Öffentliche MethodeSerialPort(String, Int32, Parity, Int32)Initialisiert eine neue Instanz der SerialPort-Klasse mit dem angegebenen Anschlussnamen, der Baudrate, dem Paritätsbit und Datenbits.
Öffentliche MethodeSerialPort(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.
Zum Seitenanfang

  NameBeschreibung
Öffentliche EigenschaftBaseStreamRuft das zugrunde liegende Stream-Objekt für ein SerialPort-Objekt ab.
Öffentliche EigenschaftBaudRateRuft die serielle Baudrate ab oder legt diese fest.
Öffentliche EigenschaftBreakStateRuft den Zustand bei einer Signalunterbrechung ab oder legt diesen fest.
Öffentliche EigenschaftBytesToRead Ruft die Anzahl der Datenbytes im Empfangspuffer ab.
Öffentliche EigenschaftBytesToWrite Ruft die Anzahl der Datenbytes ab, die sich im Sendepuffer befinden.
Geschützte EigenschaftCanRaiseEventsRuft einen Wert ab, der angibt, ob die Komponente ein Ereignis auslösen kann. (Von Component geerbt.)
Öffentliche EigenschaftCDHolding Ruft den Zustand des "Carrier Detect"-Eingangs ab.
Öffentliche EigenschaftContainerRuft den IContainer ab, der die Component enthält. (Von Component geerbt.)
Öffentliche EigenschaftCtsHolding Ruft den Zustand des "Clear-to-Send"-Eingangs ab.
Öffentliche EigenschaftDataBitsRuft die Standardlänge der Datenbits pro Byte ab oder legt diese fest.
Geschützte EigenschaftDesignModeRuft einen Wert ab, der angibt, ob sich Component gegenwärtig im Entwurfsmodus befindet. (Von Component geerbt.)
Öffentliche EigenschaftDiscardNullRuft einen Wert ab, der angibt, ob NULL-Bytes bei der Übertragung zwischen dem Anschluss und dem Empfangspuffer ignoriert werden, oder legt diesen fest.
Öffentliche EigenschaftDsrHoldingRuft den Zustand des DSR (Data Set Ready)-Signals ab.
Öffentliche EigenschaftDtrEnableRuft einen Wert ab, der das Data Terminal Ready (DTR)-Signal während einer seriellen Kommunikation aktiviert, oder legt diesen fest.
Öffentliche EigenschaftEncodingRuft die Bytecodierung für die Konvertierung von Text vor und nach der Übertragung ab oder legt diese fest.
Geschützte EigenschaftEventsRuft die Liste der Ereignishandler ab, die dieser Component angefügt sind. (Von Component geerbt.)
Öffentliche EigenschaftHandshakeRuft das Handshakeprotokoll für die Datenübertragung an seriellen Anschlüssen ab oder legt dieses fest.
Öffentliche EigenschaftIsOpenRuft einen Wert ab, der den offenen oder geschlossenen Status des SerialPort-Objekts angibt.
Öffentliche EigenschaftNewLineRuft den Wert ab, mit dem das Ende eines Aufrufs der ReadLine-Methode und der WriteLine-Methode interpretiert wird, oder legt diesen fest.
Öffentliche EigenschaftParityRuft das Paritätsprüfungsprotokoll ab oder legt dieses fest.
Öffentliche EigenschaftParityReplaceRuft das Byte ab, das ungültige Bytes in einem Datenstream ersetzt, wenn ein Paritätsfehler auftritt, oder legt dieses fest.
Öffentliche EigenschaftPortNameRuft 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.
Öffentliche EigenschaftReadBufferSizeRuft die Größe des SerialPort-Eingabepuffers ab oder legt diese fest.
Öffentliche EigenschaftReadTimeoutRuft die Anzahl der Millisekunden ab, bevor ein Timeout auftritt, wenn ein Lesevorgang nicht beendet wird, oder legt diese fest.
Öffentliche EigenschaftReceivedBytesThresholdRuft die Anzahl von Bytes im internen Eingabepuffer ab, bevor ein DataReceived-Ereignis auftritt, oder legt diese fest.
Öffentliche EigenschaftRtsEnableRuft einen Wert ab, der angibt, ob das Request to Send (RTS)-Signal während der seriellen Kommunikation aktiviert ist, oder legt diesen fest.
Öffentliche EigenschaftSiteRuft die ISite der Component ab oder legt diese fest. (Von Component geerbt.)
Öffentliche EigenschaftStopBitsRuft die Standardanzahl von Stoppbits pro Byte ab oder legt diese fest.
Öffentliche EigenschaftWriteBufferSizeRuft die Größe des Ausgabepuffers des seriellen Anschlusses ab oder legt diese fest.
Öffentliche EigenschaftWriteTimeoutRuft die Anzahl der Millisekunden ab, bevor ein Timeout auftritt, wenn ein Schreibvorgang nicht beendet wird, oder legt diese fest.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeCloseSchließt die Anschlussverbindung, legt die IsOpen-Eigenschaft auf false fest und löscht das interne Stream-Objekt.
Öffentliche MethodeCreateObjRefErstellt ein Objekt mit allen relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt erforderlich sind. (Von MarshalByRefObject geerbt.)
Öffentliche MethodeDiscardInBufferVerwirft Daten aus dem Empfangspuffer des seriellen Treibers.
Öffentliche MethodeDiscardOutBufferVerwirft Daten aus dem Übertragungspuffer des seriellen Treibers.
Öffentliche MethodeDispose() Gibt alle von Component verwendeten Ressourcen frei. (Von Component geerbt.)
Geschützte MethodeDispose(Boolean)Gibt die von SerialPort verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei. (Überschreibt Component.Dispose(Boolean).)
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Geschützte MethodeFinalize Gibt nicht verwaltete Ressourcen frei und führt andere Bereinigungsvorgänge durch, bevor die Component durch den Garbage Collector entfernt wird. (Von Component geerbt.)
Öffentliche MethodeGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetLifetimeServiceRuft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinien für diese Instanz steuert. (Von MarshalByRefObject geerbt.)
Öffentliche MethodeStatischer MemberGetPortNamesRuft ein Array der seriellen Anschlussnamen für den aktuellen Computer ab.
Geschützte MethodeGetServiceGibt ein Objekt zurück, das einen von der Component oder von deren Container bereitgestellten Dienst darstellt. (Von Component geerbt.)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeInitializeLifetimeServiceRuft ein Lebensdauerdienstobjekt ab, mit dem die Lebensdauerrichtlinien für diese Instanz gesteuert werden können. (Von MarshalByRefObject geerbt.)
Geschützte MethodeMemberwiseClone()Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Geschützte MethodeMemberwiseClone(Boolean)Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts. (Von MarshalByRefObject geerbt.)
Öffentliche MethodeOpenÖffnet eine neue serielle Anschlussverbindung.
Öffentliche MethodeRead(Byte[], Int32, Int32)Liest eine Anzahl von Bytes aus dem SerialPort-Eingabepuffer und schreibt diese Bytes am angegebenen Offset in ein Bytearray.
Öffentliche MethodeRead(Char[], Int32, Int32)Liest eine Anzahl von Zeichen aus dem SerialPort-Eingabepuffer und schreibt diese am angegebenen Offset in ein Zeichenarray.
Öffentliche MethodeReadByteLiest synchron ein Byte aus dem SerialPort-Eingabepuffer.
Öffentliche MethodeReadCharLiest synchron ein Zeichen aus dem SerialPort-Eingabepuffer.
Öffentliche MethodeReadExistingLiest alle sofort verfügbaren Bytes auf Grundlage der Codierung sowohl im Stream als auch im Eingabepuffer des SerialPort-Objekts.
Öffentliche MethodeReadLineLiest bis zum NewLine-Wert im Eingabepuffer.
Öffentliche MethodeReadToLiest eine Zeichenfolge bis zum angegebenen value im Eingabepuffer.
Öffentliche MethodeToString Gibt einen String zurück, der den Namen dieser Componente enthält, sofern vorhanden. Diese Methode sollte nicht überschrieben werden. (Von Component geerbt.)
Öffentliche MethodeWrite(String)Schreibt die angegebene Zeichenfolge in den seriellen Anschluss.
Öffentliche MethodeWrite(Byte[], Int32, Int32)Schreibt eine angegebene Anzahl von Bytes unter Verwendung von Daten aus einem Puffer in den seriellen Anschluss.
Öffentliche MethodeWrite(Char[], Int32, Int32)Schreibt eine angegebene Anzahl von Zeichen unter Verwendung von Daten aus einem Puffer in den seriellen Anschluss.
Öffentliche MethodeWriteLineSchreibt die angegebene Zeichenfolge und den NewLine-Wert in den Ausgabepuffer.
Zum Seitenanfang

  NameBeschreibung
Öffentliches EreignisDataReceivedStellt die Methode dar, die das Datenempfangs-Ereignis eines SerialPort-Objekts behandelt.
Öffentliches EreignisDisposed Wird ausgelöst, wenn die Komponente durch einen Aufruf der Dispose-Methode freigegeben wird. (Von Component geerbt.)
Öffentliches EreignisErrorReceivedStellt die Methode dar, die das Fehlerereignis eines SerialPort-Objekts behandelt.
Öffentliches EreignisPinChangedStellt die Methode dar, die das Änderungsereignis für serielle Pins eines SerialPort-Objekts behandelt.
Zum Seitenanfang

  NameBeschreibung
Öffentliches FeldStatischer MemberInfiniteTimeoutGibt an, dass kein Timeout erfolgen soll.
Zum Seitenanfang

Verwenden Sie diese Klasse, um serielle Anschlüsse als Dateiressource zu steuern. Diese Klasse stellt synchrone und ereignisgesteuerte E/A, den Zugriff auf Pins und Unterbrechungen und den Zugriff auf serielle Treibereigenschaften bereit. Außerdem können die Funktionen dieser Klasse mit einem internen Stream-Objekt umschlossen werden, auf das über die BaseStream-Eigenschaft zugegriffen werden kann, und an Klassen übergeben werden, die Streams umschließen oder verwenden.

Die SerialPort-Klasse unterstützt die Codierungen folgenden: ASCIIEncoding, UTF8Encoding, UnicodeEncoding, und jede UTF32Encoding, die Codierung in mscorlib.dll definiert wird, in dem die Codepage, kleiner ist als 50000 oder die Codepage ist 54936. Sie können andere Codierungen verwenden, jedoch müssen Sie die Methode ReadByte oder Write verwenden und die Codierung selbst ausführen.

Sie verwenden die GetPortNames-Methode, um die gültigen Ports für den aktuellen Computer abzurufen.

Wenn ein Objekt vom Typ SerialPort während eines Lesevorgangs blockiert wird, brechen Sie den Thread nicht ab. Stattdessen entweder schließen Sie den Basispfad Stream oder freigeben Sie sich das SerialPort-Objekt.

Im folgenden Codebeispiel wird veranschaulicht, wie es zwei Benutzern mithilfe der SerialPort-Klasse ermöglicht wird, auf zwei getrennten Computern, die durch ein Null-Modem-Kabel verbunden sind, miteinander zu chatten. In diesem Beispiel werden die Benutzer vor dem Chatten zur Angabe der Anschlusseinstellungen und des Benutzernamens aufgefordert. Um den vollen Funktionsumfang des Beispiels nutzen zu können, muss das Programm auf beiden Computern ausgeführt werden.


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("End Handshake value (Default: {0}):", defaultPortHandshake.ToString());
        handshake = Console.ReadLine();

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

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


.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft