Bagikan melalui


HidDevice Kelas

Definisi

Mewakili koleksi tingkat atas dan perangkat yang sesuai.

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
Warisan
Object Platform::Object IInspectable HidDevice
Atribut
Penerapan

Persyaratan Windows

Rangkaian perangkat
Windows 10 (diperkenalkan dalam 10.0.10240.0 - for Xbox, see UWP features that aren't yet supported on Xbox)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v1.0)

Contoh

Untuk sampel lengkap yang menunjukkan cara menggunakan kelas ini, lihat Sampel perangkat HID kustom.

Contoh berikut menunjukkan bagaimana aplikasi UWP yang dibangun dengan XAML dan C# menggunakan metode GetDeviceSelector untuk membuat pemilih untuk perangkat HID tertentu (dalam hal ini, Perangkat Konfigurasi Input Microsoft) lalu menggunakan metode FromIdAsync untuk membuka koneksi ke perangkat tersebut.

Catatan

Cuplikan ini mencoba menemukan perangkat HID yang mungkin tidak ada pada sistem Anda. Agar berhasil menguji kode pada sistem, Anda harus memperbarui vendorId, productId, usagePage, usageId dengan nilai yang valid.

  1. Buka Manajer Perangkat
  2. Perluas Perangkat Antarmuka Manusia
  3. Temukan perangkat HID (untuk contoh ini kami memilih Perangkat Konfigurasi Input Microsoft)
  4. Klik kanan perangkat dan pilih Properti
  5. Di Properti, pilih tab Detail
  6. Pada tab Detail, pilih Id Perangkat Keras dari menu drop-down Properti
  7. Detail HID ditampilkan dalam kotak Nilai :
Detail HID dari Manajer Perangkat
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";
            }
        }
    }
}

Keterangan

Untuk informasi selengkapnya tentang menggunakan kelas ini, termasuk batasan, lihat Mendukung perangkat antarmuka manusia (HID) dan sampel perangkat HID Kustom.

Aplikasi yang menggunakan kelas ini untuk mengakses perangkat HID harus menyertakan data DeviceCapability tertentu dalam simpul Kemampuan manifesnya. Data ini mengidentifikasi perangkat dan tujuannya (atau fungsi). Untuk informasi selengkapnya, lihat Cara menentukan kemampuan perangkat untuk HID.

Properti

ProductId

Mendapatkan pengidentifikasi produk untuk perangkat HID yang diberikan.

UsageId

Mendapatkan pengidentifikasi penggunaan untuk perangkat HID yang diberikan.

UsagePage

Mendapatkan halaman penggunaan koleksi tingkat atas.

VendorId

Mendapatkan pengidentifikasi vendor untuk perangkat HID yang diberikan.

Version

Mendapatkan versi, atau revisi, nomor untuk perangkat HID yang diberikan.

Metode

Close()

Menutup koneksi antara host dan perangkat HID yang diberikan.

CreateFeatureReport()

Membuat satu-satunya, atau default, laporan fitur yang akan dikirim host ke perangkat.

CreateFeatureReport(UInt16)

Membuat laporan fitur, yang diidentifikasi oleh parameter reportId , yang akan dikirim host ke perangkat.

CreateOutputReport()

Membuat satu-satunya, atau default, laporan output yang akan dikirim host ke perangkat.

CreateOutputReport(UInt16)

Membuat laporan output, yang diidentifikasi oleh parameter reportId , yang akan dikirim host ke perangkat.

Dispose()

Melakukan tugas yang ditentukan aplikasi yang terkait dengan membebaskan, melepaskan, atau mereset sumber daya yang tidak terkelola.

FromIdAsync(String, FileAccessMode)

Membuka handel ke perangkat yang diidentifikasi oleh parameter deviceId . Jenis akses ditentukan oleh parameter accessMode .

GetBooleanControlDescriptions(HidReportType, UInt16, UInt16)

Mengambil deskripsi kontrol boolean untuk perangkat HID yang diberikan.

GetDeviceSelector(UInt16, UInt16)

Mengambil string Advanced Query Syntax (AQS) berdasarkan usagePage dan usageId yang diberikan.

GetDeviceSelector(UInt16, UInt16, UInt16, UInt16)

Mengambil string Advanced Query Syntax (AQS) berdasarkan usagePage, usageId, vendorId, dan productId yang diberikan.

GetFeatureReportAsync()

Secara asinkron mengambil laporan fitur pertama, atau default dari perangkat HID yang diberikan.

GetFeatureReportAsync(UInt16)

Secara asinkron mengambil laporan fitur, yang diidentifikasi oleh parameter reportId , untuk perangkat HID yang diberikan.

GetInputReportAsync()

Secara asinkron mengambil laporan input default, atau pertama, dari perangkat HID yang diberikan.

GetInputReportAsync(UInt16)

Secara asinkron mengambil laporan input, yang diidentifikasi oleh parameter reportId , dari perangkat HID yang diberikan.

GetNumericControlDescriptions(HidReportType, UInt16, UInt16)

Mengambil deskripsi kontrol numerik untuk perangkat HID yang diberikan.

SendFeatureReportAsync(HidFeatureReport)

Mengirim laporan fitur secara asinkron dari host ke perangkat.

SendOutputReportAsync(HidOutputReport)

Mengirim laporan output secara asinkron dari host ke perangkat.

Acara

InputReportReceived

Menetapkan pendengar peristiwa untuk menangani laporan input yang dikeluarkan oleh perangkat saat GetInputReportAsync() atau GetInputReportAsync(System.UInt16 reportId) dipanggil.

Berlaku untuk

Lihat juga