Titik-titik mouse-per-inci ... bagaimana cara mengetahui?


11

Saya membuat aplikasi tertanam yang meng-host mouse USB. Saya mencoba membuatnya generik untuk mouse / trackball / USB HID apa pun. Saya telah menemukan bahwa tikus melaporkan secara berbeda ... sementara mereka sebagian besar semuanya melaporkan + -127 relatif X / Y mengoordinasikan 'rasa' aplikasi berubah secara drastis antara model yang berbeda, di mana beberapa bergerak sangat lambat dan yang lain bergerak sangat cepat. Saya berasumsi bahwa ini berkaitan dengan ukuran fisik ruang logis yang dilaporkan mouse.

Sementara deskriptor HID memiliki bidang khusus untuk ini, tikus tidak pernah menggunakannya ... setidaknya, untuk mode boot yang saya gunakan (tidak ada driver di sini!) (Edit: tikus tidak memulai dalam mode boot, kesalahan saya) . Pada titik ini saya dikurangi untuk membuat tabel yang dikunci pada VID / PID; ini berarti bahwa saya harus menguji setiap mouse dan membuat tuning untuk itu, sesuatu yang sudah saya bosan (dan pelanggan juga lelah!).

Anda dapat mengambil tikus-tikus ini dan menyambungkannya ke Windows dan mendapatkan gerakan yang setara dari mereka. Saya sedang mencari driver khusus dan driver normal yang saya lihat adalah HID 2006 generik dari MS.

Pertanyaan utama saya: bagaimana ini ditangani di OS yang khas? Apakah saya kehilangan sesuatu, seperti mungkin tikus yang bergerak lebih cepat memiliki interval pelaporan yang lebih pendek (saya belum membaca keterangan titik akhir)? Atau apakah seseorang harus melalui dan membuat tabel DPI untuk semua kombinasi VID / PID? Jika mereka hanya memasukkan fisik vs logis ke deskriptor laporan maka ini akan berfungsi seperti seharusnya! Tolong bantu...


Sudahkah Anda menerapkan "akselerasi" mouse?
pjc50

2
Tikus memiliki resolusi yang melekat, tetapi OS host juga dapat polling pada tingkat yang berbeda. Karena alasan ini, sistem operasi biasanya memungkinkan Anda menyesuaikan kecepatan mouse dan akselerasi mouse. Saya cukup yakin tidak ada standar tentang apa yang harus dilaporkan oleh tikus dalam hal konversi unit ... dan saya berani bertaruh Anda terjebak melakukan pemetaan tabel khusus ini jika Anda ingin menormalkan respons mouse.
Toby Lawrence

1
@TobyLawrence - Resolusi mouse dan tingkat polling tidak sama! Jika Anda melakukan polling mouse lebih sering, itu akan melaporkan nilai posisi delta yang lebih kecil per-polling. Namun, DPI yang mendasarinya tidak akan berubah . Untuk mensimulasikan DPI yang lebih rendah, Anda harus membagi nilai posisi delta dengan rasio hardware-DPI ke DPI yang diinginkan.
Connor Wolf

1
@TobyLawrence - Tingkat polling seharusnya tidak mempengaruhi gerakan mouse sama sekali. Itu hanya mempengaruhi daya tanggap. Itulah titik yang saya coba untuk mengerti.
Connor Wolf

1
ΔXΔY

Jawaban:


1

Coba kata MICKEY http://www.webopedia.com/TERM/M/mickey.html

Catatan, beberapa OS (saya percaya Windows dan Mac melakukan ini juga) secara otomatis mengubah "dot-per-inch" yang berbeda tergantung pada kecepatan gerakan manusia-pengguna. jika pengguna menggerakkan mouse dengan cepat, itu meningkatkan "dot-per-inch". Ketika pengguna menggerakkan mouse secara perlahan, seperti melakukan fine painting di photoshop, itu berkurang sehingga pengguna dapat mengontrol / memindahkan satu atau beberapa piksel.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.