Compartir a través de


SerialDevice Clase

Definición

Representa un puerto serie. El objeto proporciona métodos y propiedades que una aplicación puede usar para buscar e interactuar con puertos serie en el sistema.

public ref class SerialDevice sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class SerialDevice final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class SerialDevice : System.IDisposable
Public NotInheritable Class SerialDevice
Implements IDisposable
Herencia
Object Platform::Object IInspectable SerialDevice
Atributos
Implementaciones

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Ejemplos

using System;
using Windows.Devices.Enumeration;
using Windows.Devices.SerialCommunication;
using Windows.Storage.Streams;

...

DeviceInformationCollection serialDeviceInfos = await DeviceInformation.FindAllAsync(SerialDevice.GetDeviceSelector());

foreach (DeviceInformation serialDeviceInfo in serialDeviceInfos)
{
    try
    {
        SerialDevice serialDevice = await SerialDevice.FromIdAsync(serialDeviceInfo.Id);

        if (serialDevice != null)
        {
            // Found a valid serial device.

            // Reading a byte from the serial device.
            DataReader dr = new DataReader(serialDevice.InputStream);
            int readByte = dr.ReadByte();

            // Writing a byte to the serial device.
            DataWriter dw = new DataWriter(serialDevice.OutputStream);
            dw.WriteByte(0x42);
        }
    }
    catch (Exception)
    {
        // Couldn't instantiate the device
    }
}

Comentarios

La funcionalidad del dispositivo serie, serialCommunication, es necesaria para usar la SerialDevice clase . Para obtener más información, vea Windows.Devices.SerialCommunication.

Creación de un objeto SerialDevice

  1. Genere una cadena de sintaxis de consulta avanzada (AQS) que contenga criterios de búsqueda para buscar el dispositivo en la colección de dispositivos enumerada. Si tiene los identificadores de proveedor y producto, llame a GetDeviceSelectorFromUsbVidPid.
  2. Pase la cadena recuperada a FindAllAsync. La llamada recupera un objeto DeviceInformationCollection .
  3. Recorra en bucle la colección. Cada iteración obtiene un objeto DeviceInformation .
  4. Obtiene el valor de la propiedad DeviceInformation.Id . El valor de cadena es la ruta de acceso de la interfaz del dispositivo. (por ejemplo \\?\usb#vid_03eb&pid_2157&mi_01#7&1435ec7f&0&0001#{86e0d1e0-8089-11d0-9ce4-08003e301f73}, ).
  5. Llame a FromIdAsync pasando la cadena de interfaz del dispositivo y obtenga el SerialDevice objeto . Si esto produce una excepción o devuelve null, es probable que:
    • La ruta de acceso de la interfaz del dispositivo no es válida
    • La ruta de acceso de la interfaz del dispositivo no representa un dispositivo serie
    • Falta la funcionalidad de la serialCommunication aplicación
    • No se puede acceder al dispositivo serie. (consulte Windows.Devices.SerialCommunication)

Leer y escribir datos

A continuación, puede usar el objeto SerialDevice para leer o escribir en el puerto serie mediante el espacio de nombres Windows.Storage.Streams .

  1. Obtenga una referencia al flujo de entrada obteniendo la propiedad SerialDevice.InputStream .
  2. Cree un objeto DataReader especificando el flujo de entrada en el constructor DataReader .
  3. Obtenga una referencia al flujo de salida obteniendo la propiedad SerialDevice.OutputStream .
  4. Cree un objeto DataWriter especificando el flujo de salida en el constructor DataWriter .

Propiedades

BaudRate

Obtiene o establece la velocidad en baudios.

BreakSignalState

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

BytesReceived

Representa el número de bytes recibidos por la última operación de lectura del flujo de entrada.

CarrierDetectState

Obtiene el estado de la línea De detección de portador (CD).

ClearToSendState

Obtiene el estado de la línea Clear-to-Send (CTS).

DataBits

El número de bits de datos de cada valor de carácter transmitido o recibido, y no incluye bits de paridad ni bits de detención.

DataSetReadyState

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

Handshake

Obtiene o establece el protocolo de protocolo de protocolo de enlace para el control de flujo.

InputStream

Flujo de entrada que contiene los datos recibidos en el puerto serie.

IsDataTerminalReadyEnabled

Obtiene o establece un valor que habilita la señal de Data Terminal Ready (DTR).

IsRequestToSendEnabled

Obtiene o establece un valor que permite que la señal Request to Send (RTS) (Solicitud de envío [RTS]).

OutputStream

Obtiene un flujo de salida al que la aplicación puede escribir datos para transmitir a través del puerto serie.

Parity

Obtiene o establece el bit de paridad para la comprobación de errores.

PortName

Obtiene el nombre del puerto para las comunicaciones serie.

ReadTimeout

Obtiene o establece el valor de tiempo de espera de una operación de lectura.

StopBits

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

UsbProductId

Obtiene el campo idProduct del descriptor de dispositivo USB. Este valor indica el identificador de producto específico del dispositivo y lo asigna el fabricante.

UsbVendorId

Obtiene el campo idVendor del descriptor de dispositivo USB. El valor indica el identificador del proveedor del dispositivo según lo asignado por el comité de especificación USB.

WriteTimeout

Obtiene o establece el valor de tiempo de espera de una operación de escritura.

Métodos

Close()

Libera la referencia al objeto SerialDevice que se obtuvo anteriormente mediante una llamada a FromIdAsync.

Dispose()

Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados.

FromIdAsync(String)

Inicia una operación asincrónica que crea un objeto SerialDevice .

GetDeviceSelector()

Obtiene una cadena de sintaxis de consulta avanzada (AQS) que la aplicación puede pasar a DeviceInformation.FindAllAsync para buscar todos los dispositivos serie en el sistema.

GetDeviceSelector(String)

Obtiene una cadena de sintaxis de consulta avanzada (AQS) que la aplicación puede pasar a DeviceInformation.FindAllAsync para buscar un dispositivo serie especificando su nombre de puerto.

GetDeviceSelectorFromUsbVidPid(UInt16, UInt16)

Obtiene una cadena de sintaxis de consulta avanzada (AQS) que la aplicación puede pasar a DeviceInformation.FindAllAsync para encontrar un dispositivo serial a USB específico especificando su VID y PID.

Eventos

ErrorReceived

Controlador de eventos que se invoca cuando se produce un error en el puerto serie.

PinChanged

Controlador de eventos que se invoca cuando cambia el estado de una señal o línea en el puerto serie.

Se aplica a

Consulte también