HidDevice Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
- 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.
- Buka Manajer Perangkat
- Perluas Perangkat Antarmuka Manusia
- Temukan perangkat HID (untuk contoh ini kami memilih Perangkat Konfigurasi Input Microsoft)
- Klik kanan perangkat dan pilih Properti
- Di Properti, pilih tab Detail
- Pada tab Detail, pilih Id Perangkat Keras dari menu drop-down Properti
- Detail HID ditampilkan dalam kotak Nilai :
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk