Bagikan melalui


Menginterpretasikan laporan HID

Artikel ini menjelaskan bagaimana aplikasi mode pengguna dan driver mode kernel menggunakan rutinitas dukungan hidClass HidP_Xxxuntuk menginterpretasikan data kontrol dalam laporan HID.

Mengekstrak data nilai dengan menentukan penggunaannya

Untuk mengekstrak data nilai dari laporan HID, aplikasi atau driver dapat menggunakan salah satu rutinitas dukungan HID berikut:

  • HidP_GetScaledUsageValue Mengembalikan nilai yang ditandatangani dan diskalakan.
  • HidP_GetUsageValue Mengembalikan nilai yang tidak diskalakan dalam format yang tidak ditandatangani atau nilai berskala yang berada di luar rentang Normalnya.
  • HidP_GetUsageValueArray Mengembalikan array nilai penggunaan.

Untuk menggunakan aplikasi dan driver HidP_GetUsageValueArray harus mengalokasikan buffer yang diinisialisasi nol, yang cukup besar untuk menahan array nilai penggunaan. Ukuran yang diperlukan dalam byte adalah produk dari anggota BitSize dan ReportCount dari struktur HIDP_VALUE_CAPS array nilai penggunaan, dibulatkan ke atas ke byte terdekat.

Mengekstrak penggunaan tombol yang diatur ke AKTIF

Untuk mengekstrak penggunaan HID tombol yang diatur ke AKTIF (1), aplikasi dan driver memanggil salah satu rutinitas dukungan HID berikut:

  • HidP_GetButtons (atau HidP_GetUsages) Mengembalikan ID penggunaan semua tombol pada halaman penggunaan tertentu yang diatur ke AKTIF.
  • HidP_GetButtonsEx (atau HidP_GetUsagesEx) Mengembalikan halaman penggunaan dan ID penggunaan semua tombol yang diatur ke AKTIF.

Rutinitas ini mengembalikan array semua informasi penggunaan untuk semua tombol yang saat ini diatur ke AKTIF. Secara implisit, tombol yang penggunaannya tidak dikembalikan oleh rutinitas ini diatur ke NONAKTIF (nol).

Untuk memanggil rutinitas ini, aplikasi dan driver harus terlebih dahulu mengalokasikan dan menginisialisasi nol buffer yang digunakan untuk mengembalikan array penggunaan tombol. Aplikasi atau driver memanggil HidP_MaxUsageListLength untuk menentukan jumlah penggunaan tombol di halaman penggunaan tertentu dalam laporan. Jika aplikasi atau driver menentukan halaman penggunaan nol, rutinitas mengembalikan jumlah semua penggunaan tombol dalam laporan.

Ukuran buffer yang diperlukan, dalam byte, adalah:

  • (Untuk HidP_GetButtons) Nilai yang dikembalikan oleh ukuran waktu HidP_MaxUsageListLength of(PENGGUNAAN)
  • (Untuk HidP_GetButtonsEx) Nilai yang dikembalikan oleh ukuran waktu HidP_MaxUsageListLength of(USAGE_AND_PAGE)

Setelah aplikasi atau driver menggunakan rutinitas ini untuk mendapatkan informasi tentang tombol mana yang saat ini diatur ke AKTIF, aplikasi dapat menentukan perbedaan antara status saat ini dan status tombol sebelumnya dengan memanggil salah satu rutinitas dukungan HIDClass berikut. Rutinitas ini mengembalikan perbedaan antara dua array informasi penggunaan:

Mengekstrak dan mengatur data kontrol menurut indeks data

Untuk menggunakan indeks data untuk mengekstrak dan mengatur data kontrol dalam laporan HID, aplikasi atau driver dapat menggunakan rutinitas dukungan HIDClass berikut:

Rutinitas ini berguna untuk aplikasi atau driver yang menyediakan layanan "bernilai tambah". Misalnya, yang menyediakan antarmuka kustom ke semua kontrol yang didukung oleh perangkat HIDClass. Microsoft DirectInput adalah salah satu contohnya.

Aplikasi atau driver yang memanggil rutinitas ini dapat memperoleh dan mengatur semua nilai dalam laporan secara paling efisien. Misalnya, untuk mendapatkan semua data nilai dengan penggunaan HID mereka, ia harus memanggil HidP_GetUsageValue untuk setiap penggunaan. Namun, untuk mendapatkan semua data nilai menurut indeks data, ia hanya perlu memanggil HidP_GetData sekali.

Aplikasi atau driver menggunakan indeks data yang ditentukan dalam Array Kemampuan Tombol dan Array Kemampuan Nilai koleksi untuk mengidentifikasi penggunaan HID.

Mengatur data nilai dengan menentukan penggunaannya

Aplikasi atau driver dapat menetapkan nilai dalam laporan HID yang diinisialisasi dengan benar dengan memanggil salah satu rutinitas dukungan HID berikut:

  • HidP_SetScaledUsageValue Menetapkan nilai yang ditandatangani dan diskalakan dalam laporan.
  • HidP_SetUsageValue Menetapkan nilai dalam laporan.
  • HidP_SetUsageValueArray Mengatur array nilai penggunaan dalam laporan.

Mengatur status tombol dengan menentukan penggunaannya

Aplikasi atau driver dapat mengatur status tombol dalam laporan HID yang diinisialisasi dengan benar dengan memanggil salah satu rutinitas dukungan HIDClass berikut:

  • HidP_SetButtons (atau HidP_SetUsages) Mengatur set tombol tertentu ke AKTIF (1).
  • HidP_UnsetButtons (atau HidP_UnsetUsages) Mengatur set tombol tertentu ke NONAKTIF (nol).

Mengekstrak dan mengatur data kontrol HID menurut indeks data

Untuk menggunakan indeks data untuk mengekstrak dan mengatur data kontrol dalam laporan HID, aplikasi atau driver dapat menggunakan rutinitas dukungan HIDClass berikut:

Rutinitas ini berguna untuk aplikasi atau driver yang menyediakan layanan "bernilai tambah". Misalnya, yang menyediakan antarmuka kustom ke semua kontrol yang didukung oleh perangkat HIDClass. Microsoft DirectInput adalah salah satu contohnya.

Aplikasi atau driver yang memanggil rutinitas ini dapat memperoleh dan mengatur semua nilai dalam laporan secara paling efisien. Misalnya, untuk mendapatkan semua data nilai dengan penggunaan HID mereka, ia harus memanggil HidP_GetUsageValue untuk setiap penggunaan. Namun, untuk mendapatkan semua data nilai menurut indeks data, ia hanya perlu memanggil HidP_GetData sekali.

Aplikasi atau driver menggunakan indeks data yang ditentukan dalam Array Kemampuan Tombol dan Array Kemampuan Nilai koleksi untuk mengidentifikasi penggunaan HID.

Lihat juga