HidDevice Clase

Definición

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
Object Platform::Object IInspectable HidDevice
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.

  1. Abrir Administrador de dispositivos
  2. Expandir dispositivos de interfaz humana
  3. Busque un dispositivo HID (para este ejemplo, elegimos dispositivo de configuración de entrada de Microsoft)
  4. Haga clic con el botón derecho en el dispositivo y seleccione Propiedades.
  5. En Propiedades, seleccione la pestaña Detalles.
  6. En la pestaña Detalles, seleccione Identificadores de hardware en la lista desplegable Propiedad .
  7. Los detalles hid se muestran en el cuadro Valor :
Detalles de HID de Administrador de dispositivos
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).

Se aplica a

Consulte también