Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase SerialPort

 

Publicado: octubre de 2016

Representa un recurso de puerto serie.

Para examinar el código fuente de .NET Framework para este tipo, vea la Reference Source.

Espacio de nombres:   System.IO.Ports
Ensamblado:  System (en System.dll)

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

public class SerialPort : Component

NombreDescripción
System_CAPS_pubmethodSerialPort()

Inicializa una nueva instancia de la clase SerialPort.

System_CAPS_pubmethodSerialPort(IContainer)

Inicializa una nueva instancia de la clase SerialPort utilizando el objeto IContainer especificado.

System_CAPS_pubmethodSerialPort(String)

Inicializa una instancia nueva de la clase SerialPort utilizando el nombre de puerto especificado.

System_CAPS_pubmethodSerialPort(String, Int32)

Inicializa una instancia nueva de la clase SerialPort utilizando el nombre de puerto y la velocidad en baudios especificados.

System_CAPS_pubmethodSerialPort(String, Int32, Parity)

Inicializa una instancia nueva de la clase SerialPort utilizando el nombre del puerto, la velocidad en baudios y el bit de paridad especificados.

System_CAPS_pubmethodSerialPort(String, Int32, Parity, Int32)

Inicializa una instancia nueva de la clase SerialPort utilizando el nombre del puerto, la velocidad en baudios, el bit de paridad y los bits de datos especificados.

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

Inicializa una instancia nueva de la clase SerialPort utilizando el nombre del puerto, la velocidad en baudios, el bit de paridad, los bits de datos y el bit de parada especificados.

NombreDescripción
System_CAPS_pubpropertyBaseStream

Obtiene el objeto Stream subyacente para un objeto SerialPort.

System_CAPS_pubpropertyBaudRate

Obtiene o establece la velocidad en baudios del puerto serie.

System_CAPS_pubpropertyBreakState

Obtiene o establece el estado de la señal de interrupción.

System_CAPS_pubpropertyBytesToRead

Obtiene el número de bytes de datos en el búfer de recepción.

System_CAPS_pubpropertyBytesToWrite

Obtiene el número de bytes de datos en el búfer de envío.

System_CAPS_protpropertyCanRaiseEvents

Obtiene un valor que indica si el componente puede provocar un evento.(Heredado de Component).

System_CAPS_pubpropertyCDHolding

Obtiene el estado de la línea de detección de portadora para el puerto.

System_CAPS_pubpropertyContainer

Obtiene IContainer que contiene Component.(Heredado de Component).

System_CAPS_pubpropertyCtsHolding

Obtiene el estado de la línea Listo para enviar.

System_CAPS_pubpropertyDataBits

Obtiene o establece la longitud estándar de los bits de datos por byte.

System_CAPS_protpropertyDesignMode

Obtiene un valor que indica si la Component está actualmente en modo de diseño.(Heredado de Component).

System_CAPS_pubpropertyDiscardNull

Obtiene o establece un valor que indica si no se tienen en cuenta los bytes nulos en las transmisiones entre el puerto y el búfer de recepción.

System_CAPS_pubpropertyDsrHolding

Obtiene el estado de la señal Conjunto de datos preparado (DSR).

System_CAPS_pubpropertyDtrEnable

Obtiene o establece un valor que habilita la señal Terminal de datos preparado (DTR) durante la comunicación en serie.

System_CAPS_pubpropertyEncoding

Obtiene o establece la codificación de bytes para la conversión de texto previa y posterior a la transmisión.

System_CAPS_protpropertyEvents

Obtiene la lista de controladores de eventos que se adjuntará a este Component.(Heredado de Component).

System_CAPS_pubpropertyHandshake

Obtiene o establece el protocolo de enlace para la transmisión de datos a través del puerto serie desde Handshake.

System_CAPS_pubpropertyIsOpen

Obtiene un valor que indica el estado abierto o cerrado del objeto SerialPort.

System_CAPS_pubpropertyNewLine

Obtiene o establece el valor utilizado para interpretar el final de una llamada a los métodos ReadLine y WriteLine.

System_CAPS_pubpropertyParity

Obtiene o establece el protocolo de comprobación de la paridad.

System_CAPS_pubpropertyParityReplace

Obtiene o establece el byte que reemplaza los bytes no válidos en una secuencia de datos cuando se produce un error de paridad.

System_CAPS_pubpropertyPortName

Obtiene o establece el puerto de comunicaciones, incluidos por lo menos todos los puertos COM disponibles.

System_CAPS_pubpropertyReadBufferSize

Obtiene o establece el tamaño del búfer de entrada de SerialPort.

System_CAPS_pubpropertyReadTimeout

Obtiene o establece el número de milisegundos que transcurren antes de que se agote el tiempo de espera si una operación de lectura no finaliza.

System_CAPS_pubpropertyReceivedBytesThreshold

Obtiene o establece el número de bytes en el búfer de entrada interno antes de que ocurra un evento DataReceived.

System_CAPS_pubpropertyRtsEnable

Obtiene o establece un valor que indica si la señal Solicitud de envío (RTS) está habilitada durante la comunicación en serie.

System_CAPS_pubpropertySite

Obtiene o establece la ISite de la Component.(Heredado de Component).

System_CAPS_pubpropertyStopBits

Obtiene o establece el número estándar de bits de parada por byte.

System_CAPS_pubpropertyWriteBufferSize

Obtiene o establece el tamaño del búfer de salida del puerto serie.

System_CAPS_pubpropertyWriteTimeout

Obtiene o establece el número de milisegundos que transcurren antes de que se agote el tiempo de espera si una operación de escritura no finaliza.

NombreDescripción
System_CAPS_pubmethodClose()

Cierra la conexión del puerto, establece el valor de la propiedad IsOpen en false y elimina el objeto Stream interno.

System_CAPS_pubmethodCreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar a un proxy que se utiliza para comunicarse con un objeto remoto.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodDiscardInBuffer()

Descarta los datos del búfer de recepción del controlador serie.

System_CAPS_pubmethodDiscardOutBuffer()

Descarta los datos del búfer de transmisión del controlador serie.

System_CAPS_pubmethodDispose()

Libera todos los recursos que usa Component.(Heredado de Component).

System_CAPS_protmethodDispose(Boolean)

Libera los recursos no administrados que usa SerialPort y libera los recursos administrados de forma opcional.(Invalida Component.Dispose(Boolean)).

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Libera recursos no administrados y realiza otras operaciones de limpieza antes de que se reclame el elemento Component durante la recolección de elementos no usados.(Heredado de Component).

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetLifetimeService()

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodSystem_CAPS_staticGetPortNames()

Obtiene una matriz con los nombres de los puertos serie del equipo actual.

System_CAPS_protmethodGetService(Type)

Devuelve un objeto que representa el servicio suministrado por Component o por Container.(Heredado de Component).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodInitializeLifetimeService()

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_protmethodMemberwiseClone(Boolean)

Crea una copia superficial del elemento actual MarshalByRefObject objeto.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodOpen()

Abre una nueva conexión de puerto serie.

System_CAPS_pubmethodRead(Byte[], Int32, Int32)

Lee varios bytes del búfer de entrada de SerialPort y los escribe en una matriz de bytes en la posición de desplazamiento especificada.

System_CAPS_pubmethodRead(Char[], Int32, Int32)

Lee un número de caracteres del búfer de entrada de SerialPort y los escribe en una matriz de caracteres en la posición de desplazamiento especificada.

System_CAPS_pubmethodReadByte()

Lee sincrónicamente un byte del búfer de entrada de SerialPort.

System_CAPS_pubmethodReadChar()

Lee sincrónicamente un carácter del búfer de entrada de SerialPort.

System_CAPS_pubmethodReadExisting()

Lee todos los bytes inmediatamente disponibles, basándose en la codificación, en la secuencia y el búfer de entrada del objeto SerialPort.

System_CAPS_pubmethodReadLine()

Lee hasta el valor de NewLine en el búfer de entrada.

System_CAPS_pubmethodReadTo(String)

Lee una cadena hasta el value especificado en el búfer de entrada.

System_CAPS_pubmethodToString()

Devuelve un String que contiene el nombre de la Component, si existe. Este método no se debe invalidar.(Heredado de Component).

System_CAPS_pubmethodWrite(Byte[], Int32, Int32)

Escribe un número especificado de bytes en el puerto serie utilizando los datos de un búfer.

System_CAPS_pubmethodWrite(Char[], Int32, Int32)

Escribe un número especificado de caracteres en el puerto serie utilizando los datos de un búfer.

System_CAPS_pubmethodWrite(String)

Escribe la cadena especificada en el puerto serie.

System_CAPS_pubmethodWriteLine(String)

Escribe la cadena especificada y el valor de NewLine en el búfer de salida.

NombreDescripción
System_CAPS_pubfieldSystem_CAPS_staticInfiniteTimeout

Indica que no se debe agotar el tiempo de espera.

NombreDescripción
System_CAPS_pubeventDataReceived

Indica que se recibieron datos a través de un puerto representado por el objeto SerialPort.

System_CAPS_pubeventDisposed

Se produce cuando el componente se elimina mediante una llamada a la Dispose (método).(Heredado de Component).

System_CAPS_pubeventErrorReceived

Indica que hubo un error en el puerto representado por el objeto SerialPort.

System_CAPS_pubeventPinChanged

Indica que hubo un evento de señal que no es de datos en el puerto representado por el objeto SerialPort.

System_CAPS_noteNota

Para ver el código fuente de .NET Framework para este tipo, consulte el Reference Source. Puede examinar el código fuente en línea, descargue la referencia para verla sin conexión y recorrer (incluidas las revisiones y actualizaciones) durante la depuración; see instructions.

Utilice esta clase para controlar un recurso de archivo de puerto serie. Esta clase proporciona sincrónica y orientada a eventos E/S, acceso a los Estados de conexión e interrupción y acceso a propiedades del controlador serie. Además, se puede ajustar la funcionalidad de esta clase en interna Stream objeto accesible a través del BaseStream propiedad y pasa a las clases que contengan o utilicen secuencias.

La SerialPort clase admite las codificaciones siguientes: ASCIIEncoding, UTF8Encoding, UnicodeEncoding, UTF32Encoding, y cualquier codificación definida en mscorlib.dll donde la página de códigos es menor que 50000 o sea 54936. Puede utilizar codificaciones alternativas, pero debe utilizar el ReadByte o Write (método) y realizar la codificación por sí mismo.

Utiliza el GetPortNames método para recuperar los puertos válidos para el equipo actual.

Si un SerialPort objeto queda bloqueado durante una operación de lectura, no se anula el subproceso. En su lugar, cierre la base de transmitir o desechar la SerialPort objeto.

En el ejemplo de código siguiente se muestra el uso de la SerialPort clase para permitir que dos usuarios puedan charlar desde dos equipos independientes conectados mediante un cable de módem nulo. En este ejemplo, los usuarios se le solicitará un nombre de usuario y la configuración del puerto antes de la charla. Ambos equipos deben estar ejecutando el programa para lograr la funcionalidad completa de este ejemplo.

// 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
Disponible desde 2.0

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: