Partager via


HidDevice Classe

Définition

Représente une collection de niveau supérieur et l’appareil correspondant.

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
Héritage
Object Platform::Object IInspectable HidDevice
Attributs
Implémente

Configuration requise pour Windows

Famille d’appareils
Windows 10 (introduit dans 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v1.0)

Exemples

Pour obtenir un exemple complet qui montre comment utiliser cette classe, consultez Exemple d’appareil HID personnalisé.

L’exemple suivant montre comment une application UWP créée avec XAML et C# utilise la méthode GetDeviceSelector pour créer un sélecteur pour un appareil HID spécifique (dans ce cas, Microsoft Input Configuration Device), puis utilise la méthode FromIdAsync pour ouvrir une connexion à cet appareil.

Notes

Cet extrait de code tente de trouver un appareil HID qui n’est peut-être pas présent sur votre système. Pour tester correctement le code sur votre système, vous devez mettre à jour vendorId, productId, usagePage et usageId avec des valeurs valides.

  1. Ouvrir Gestionnaire de périphériques
  2. Développer les appareils d’interface humaine
  3. Recherchez un appareil HID (pour cet exemple, nous avons choisi Microsoft Input Configuration Device)
  4. Cliquez avec le bouton droit sur l’appareil et sélectionnez Propriétés.
  5. Dans Propriétés, sélectionnez l’onglet Détails
  6. Sous l’onglet Détails, sélectionnez Id de matériel dans la liste déroulante Propriété
  7. Les détails HID sont affichés dans la zone Valeur :
Détails HID de Gestionnaire de périphériques
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";
            }
        }
    }
}

Remarques

Pour plus d’informations sur l’utilisation de cette classe, y compris les limitations, consultez Prise en charge des appareils d’interface humaine (HID) et Exemple d’appareil HID personnalisé.

Les applications qui utilisent cette classe pour accéder à un appareil HID doivent inclure des données DeviceCapability spécifiques dans le nœud Fonctionnalités de son manifeste. Ces données identifient l’appareil et son objectif (ou fonction). Pour plus d’informations, consultez Comment spécifier des fonctionnalités d’appareil pour HID.

Propriétés

ProductId

Obtient l’identificateur de produit pour l’appareil HID donné.

UsageId

Obtient l’identificateur d’utilisation pour l’appareil HID donné.

UsagePage

Obtient la page d’utilisation de la collection de niveau supérieur.

VendorId

Obtient l’identificateur du fournisseur pour l’appareil HID donné.

Version

Obtient le numéro de version ou de révision pour l’appareil HID donné.

Méthodes

Close()

Ferme la connexion entre l’hôte et l’appareil HID donné.

CreateFeatureReport()

Crée le seul rapport de fonctionnalité, ou par défaut, que l’hôte enverra à l’appareil.

CreateFeatureReport(UInt16)

Crée un rapport de fonctionnalité, identifié par le paramètre reportId , que l’hôte enverra à l’appareil.

CreateOutputReport()

Crée le seul rapport de sortie, ou par défaut, que l’hôte enverra à l’appareil.

CreateOutputReport(UInt16)

Crée un rapport de sortie, identifié par le paramètre reportId , que l’hôte enverra à l’appareil.

Dispose()

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition des ressources non managées.

FromIdAsync(String, FileAccessMode)

Ouvre un handle sur l’appareil identifié par le paramètre deviceId . Le type d’accès est spécifié par le paramètre accessMode .

GetBooleanControlDescriptions(HidReportType, UInt16, UInt16)

Récupère les descriptions des contrôles booléens pour l’appareil HID donné.

GetDeviceSelector(UInt16, UInt16)

Récupère une chaîne AQS (Advanced Query Syntax) en fonction de l’usagePage et de l’usageId donnés.

GetDeviceSelector(UInt16, UInt16, UInt16, UInt16)

Récupère une chaîne AQS (Advanced Query Syntax) en fonction de l’usagePage, de l’id d’utilisation, de l’id de fournisseur et du productId donnés.

GetFeatureReportAsync()

Récupère de façon asynchrone le premier rapport de fonctionnalité, ou par défaut, à partir de l’appareil HID donné.

GetFeatureReportAsync(UInt16)

Récupère de façon asynchrone un rapport de fonctionnalité, identifié par le paramètre reportId , pour l’appareil HID donné.

GetInputReportAsync()

Récupère de façon asynchrone le rapport d’entrée par défaut, ou en premier, à partir de l’appareil HID donné.

GetInputReportAsync(UInt16)

Récupère de façon asynchrone un rapport d’entrée, identifié par le paramètre reportId , à partir de l’appareil HID donné.

GetNumericControlDescriptions(HidReportType, UInt16, UInt16)

Récupère les descriptions des contrôles numériques pour l’appareil HID donné.

SendFeatureReportAsync(HidFeatureReport)

Envoie un rapport de fonctionnalité de façon asynchrone de l’hôte à l’appareil.

SendOutputReportAsync(HidOutputReport)

Envoie un rapport de sortie de façon asynchrone de l’hôte à l’appareil.

Événements

InputReportReceived

Établit un écouteur d’événements pour gérer les rapports d’entrée émis par l’appareil lorsque GetInputReportAsync() ou GetInputReportAsync(System.UInt16 reportId) est appelé.

S’applique à

Voir aussi