Condividi tramite


HidDevice Classe

Definizione

Rappresenta una raccolta di primo livello e il dispositivo corrispondente.

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
Ereditarietà
Object Platform::Object IInspectable HidDevice
Attributi
Implementazioni

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

Per un esempio completo che illustra come usare questa classe, vedere Esempio di dispositivo HID personalizzato.

Nell'esempio seguente viene illustrato come un'app UWP compilata con XAML e C# usi il metodo GetDeviceSelector per creare un selettore per un dispositivo HID specifico (in questo caso, Dispositivo configurazione input Microsoft) e quindi usa il metodo FromIdAsync per aprire una connessione a tale dispositivo.

Nota

Questo frammento di codice tenta di trovare un dispositivo HID che potrebbe non essere presente nel sistema. Per testare correttamente il codice nel sistema, è necessario aggiornare vendorId, productId, usagePage, usageId con valori validi.

  1. Aprire Gestione dispositivi
  2. Espandere Dispositivi di interfaccia umana
  3. Individuare un dispositivo HID (per questo esempio abbiamo scelto Microsoft Input Configuration Device)
  4. Fare clic con il pulsante destro del mouse sul dispositivo e selezionare Proprietà
  5. In Proprietà selezionare la scheda Dettagli
  6. Nella scheda Dettagli selezionare Id hardware nell'elenco a discesa Proprietà
  7. I dettagli HID vengono visualizzati nella casella Valore :
Dettagli HID da Gestione dispositivi
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";
            }
        }
    }
}

Commenti

Per altre informazioni sull'uso di questa classe, incluse le limitazioni, vedere Supporto di dispositivi di interfaccia umana (HID) e esempio di dispositivo HID personalizzato.

Le app che usano questa classe per accedere a un dispositivo HID devono includere dati DeviceCapability specifici nel nodo Funzionalità del manifesto. Questi dati identificano il dispositivo e il relativo scopo (o funzione). Per altre informazioni, vedere Come specificare le funzionalità del dispositivo per HID.

Proprietà

ProductId

Ottiene l'identificatore del prodotto per il dispositivo HID specificato.

UsageId

Ottiene l'identificatore di utilizzo per il dispositivo HID specificato.

UsagePage

Ottiene la pagina di utilizzo della raccolta di primo livello.

VendorId

Ottiene l'identificatore del fornitore per il dispositivo HID specificato.

Version

Ottiene la versione o la revisione, numero per il dispositivo HID specificato.

Metodi

Close()

Chiude la connessione tra l'host e il dispositivo HID specificato.

CreateFeatureReport()

Crea l'unico report predefinito o predefinito che l'host invierà al dispositivo.

CreateFeatureReport(UInt16)

Crea un report di funzionalità, identificato dal parametro reportId , che l'host invierà al dispositivo.

CreateOutputReport()

Crea l'unico report di output o predefinito che l'host invierà al dispositivo.

CreateOutputReport(UInt16)

Crea un report di output, identificato dal parametro reportId , che l'host invierà al dispositivo.

Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

FromIdAsync(String, FileAccessMode)

Apre un handle al dispositivo identificato dal parametro deviceId . Il tipo di accesso viene specificato dal parametro accessMode .

GetBooleanControlDescriptions(HidReportType, UInt16, UInt16)

Recupera le descrizioni dei controlli booleani per il dispositivo HID specificato.

GetDeviceSelector(UInt16, UInt16)

Recupera una stringa AQS (Advanced Query Syntax) in base all'utilizzo specificatoPage e usageId.

GetDeviceSelector(UInt16, UInt16, UInt16, UInt16)

Recupera una stringa AQS (Advanced Query Syntax) in base all'utilizzo specificatoPage, usageId, vendorId e productId.

GetFeatureReportAsync()

Recupera in modo asincrono il primo report delle funzionalità o predefinito dal dispositivo HID specificato.

GetFeatureReportAsync(UInt16)

Recupera in modo asincrono un report delle funzionalità, identificato dal parametro reportId , per il dispositivo HID specificato.

GetInputReportAsync()

Recupera in modo asincrono il report di input predefinito o primo dal dispositivo HID specificato.

GetInputReportAsync(UInt16)

Recupera in modo asincrono un report di input, identificato dal parametro reportId , dal dispositivo HID specificato.

GetNumericControlDescriptions(HidReportType, UInt16, UInt16)

Recupera le descrizioni dei controlli numerici per il dispositivo HID specificato.

SendFeatureReportAsync(HidFeatureReport)

Invia un report delle funzionalità in modo asincrono dall'host al dispositivo.

SendOutputReportAsync(HidOutputReport)

Invia un report di output in modo asincrono dall'host al dispositivo.

Eventi

InputReportReceived

Stabilisce un listener eventi per gestire i report di input emessi dal dispositivo quando viene chiamato GetInputReportAsync() o GetInputReportAsync(System.UInt16 reportId).

Si applica a

Vedi anche