SerialDevice Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
- 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
- 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.
- Pase la cadena recuperada a FindAllAsync. La llamada recupera un objeto DeviceInformationCollection .
- Recorra en bucle la colección. Cada iteración obtiene un objeto DeviceInformation .
- 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}
, ). - 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 .
- Obtenga una referencia al flujo de entrada obteniendo la propiedad SerialDevice.InputStream .
- Cree un objeto DataReader especificando el flujo de entrada en el constructor DataReader .
- Obtenga una referencia al flujo de salida obteniendo la propiedad SerialDevice.OutputStream .
- 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. |