HidDevice 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 una colección de nivel superior y el dispositivo correspondiente.
public ref class HidDevice sealed : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class HidDevice final : IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class HidDevice : System.IDisposable
Public NotInheritable Class HidDevice
Implements IDisposable
- Herencia
- Atributos
- Implementaciones
Requisitos de Windows
Familia de dispositivos |
Windows 10 (se introdujo en la versión 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)
|
Ejemplos
Para obtener un ejemplo completo que muestra cómo usar esta clase, consulte Ejemplo de dispositivo HID personalizado.
En el ejemplo siguiente se muestra cómo una aplicación para UWP compilada con XAML y C# usa el método GetDeviceSelector para crear un selector para un dispositivo HID específico (en este caso, dispositivo de configuración de entrada de Microsoft) y, a continuación, usa el método FromIdAsync para abrir una conexión a ese dispositivo.
Nota:
Este fragmento de código intenta encontrar un dispositivo HID que podría no estar presente en el sistema. Para probar correctamente el código en el sistema, debe actualizar vendorId, productId, usagePage, usageId con valores válidos.
- Abrir Administrador de dispositivos
- Expandir dispositivos de interfaz humana
- Busque un dispositivo HID (para este ejemplo, elegimos dispositivo de configuración de entrada de Microsoft)
- Haga clic con el botón derecho en el dispositivo y seleccione Propiedades.
- En Propiedades, seleccione la pestaña Detalles.
- En la pestaña Detalles, seleccione Identificadores de hardware en la lista desplegable Propiedad .
- Los detalles hid se muestran en el cuadro Valor :
using System;
using System.Linq;
using Windows.Devices.Enumeration;
using Windows.Devices.HumanInterfaceDevice;
using Windows.Storage;
using Windows.UI.Xaml.Controls;
namespace HIDdeviceTest
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
EnumerateHidDevices();
}
// Find HID devices.
private async void EnumerateHidDevices()
{
// Microsoft Input Configuration Device.
ushort vendorId = 0x045E;
ushort productId = 0x07CD;
ushort usagePage = 0x000D;
ushort usageId = 0x000E;
// Create the selector.
string selector =
HidDevice.GetDeviceSelector(usagePage, usageId, vendorId, productId);
// Enumerate devices using the selector.
var devices = await DeviceInformation.FindAllAsync(selector);
if (devices.Any())
{
// At this point the device is available to communicate with
// So we can send/receive HID reports from it or
// query it for control descriptions.
info.Text = "HID devices found: " + devices.Count;
// Open the target HID device.
HidDevice device =
await HidDevice.FromIdAsync(devices.ElementAt(0).Id,
FileAccessMode.ReadWrite);
if (device != null)
{
// Input reports contain data from the device.
device.InputReportReceived += async (sender, args) =>
{
HidInputReport inputReport = args.Report;
IBuffer buffer = inputReport.Data;
// Create a DispatchedHandler as we are interracting with the UI directly and the
// thread that this function is running on might not be the UI thread;
// if a non-UI thread modifies the UI, an exception is thrown.
await this.Dispatcher.RunAsync(
CoreDispatcherPriority.Normal,
new DispatchedHandler(() =>
{
info.Text += "\nHID Input Report: " + inputReport.ToString() +
"\nTotal number of bytes received: " + buffer.Length.ToString();
}));
};
}
}
else
{
// There were no HID devices that met the selector criteria.
info.Text = "HID device not found";
}
}
}
}
Comentarios
Para obtener más información sobre el uso de esta clase, incluidas las limitaciones, consulte Compatibilidad con dispositivos de interfaz humana (HID) y ejemplo de dispositivo HID personalizado.
Las aplicaciones que usan esta clase para acceder a un dispositivo HID deben incluir datos específicos de DeviceCapability en el nodo Capabilities de su manifiesto. Estos datos identifican el dispositivo y su propósito (o función). Para obtener más información, consulte Cómo especificar funcionalidades de dispositivo para HID.
Propiedades
ProductId |
Obtiene el identificador de producto del dispositivo HID especificado. |
UsageId |
Obtiene el identificador de uso del dispositivo HID especificado. |
UsagePage |
Obtiene la página de uso de la colección de nivel superior. |
VendorId |
Obtiene el identificador de proveedor del dispositivo HID especificado. |
Version |
Obtiene la versión, o revisión, el número del dispositivo HID especificado. |
Métodos
Close() |
Cierra la conexión entre el host y el dispositivo HID especificado. |
CreateFeatureReport() |
Crea el único informe de características, o predeterminado, que el host enviará al dispositivo. |
CreateFeatureReport(UInt16) |
Crea un informe de características, identificado por el parámetro reportId , que el host enviará al dispositivo. |
CreateOutputReport() |
Crea el único informe de salida, o predeterminado, que el host enviará al dispositivo. |
CreateOutputReport(UInt16) |
Crea un informe de salida, identificado por el parámetro reportId , que el host enviará al dispositivo. |
Dispose() |
Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados. |
FromIdAsync(String, FileAccessMode) |
Abre un identificador para el dispositivo identificado por el parámetro deviceId . El parámetro accessMode especifica el tipo de acceso. |
GetBooleanControlDescriptions(HidReportType, UInt16, UInt16) |
Recupera las descripciones de los controles booleanos para el dispositivo HID determinado. |
GetDeviceSelector(UInt16, UInt16) |
Recupera una cadena de sintaxis de consulta avanzada (AQS) basada en el usagePage y usageId especificados. |
GetDeviceSelector(UInt16, UInt16, UInt16, UInt16) |
Recupera una cadena de sintaxis de consulta avanzada (AQS) basada en el valor usagePage, usageId, vendorId y productId especificados. |
GetFeatureReportAsync() |
Recupera de forma asincrónica el primer informe de características, o predeterminado, del dispositivo HID especificado. |
GetFeatureReportAsync(UInt16) |
Recupera de forma asincrónica un informe de características, identificado por el parámetro reportId , para el dispositivo HID especificado. |
GetInputReportAsync() |
Recupera de forma asincrónica el informe predeterminado, o primero, de entrada del dispositivo HID especificado. |
GetInputReportAsync(UInt16) |
Recupera de forma asincrónica un informe de entrada, identificado por el parámetro reportId , del dispositivo HID especificado. |
GetNumericControlDescriptions(HidReportType, UInt16, UInt16) |
Recupera las descripciones de los controles numéricos del dispositivo HID especificado. |
SendFeatureReportAsync(HidFeatureReport) |
Envía un informe de características de forma asincrónica desde el host al dispositivo. |
SendOutputReportAsync(HidOutputReport) |
Envía un informe de salida de forma asincrónica desde el host al dispositivo. |
Eventos
InputReportReceived |
Establece un agente de escucha de eventos para controlar los informes de entrada emitidos por el dispositivo cuando se llama a GetInputReportAsync() o GetInputReportAsync(System.UInt16 reportId). |