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
SerialDeviceobjeto . 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
serialCommunicationaplicació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. |