Ratón puntos por pulgada ... ¿cómo saberlo?

11

Estoy creando una aplicación integrada que aloja un mouse USB. Estoy tratando de hacerlo genérico para cualquier mouse USB HID / trackball / lo que sea. Descubrí que los ratones informan de manera diferente ... mientras que en su mayoría todos reportan + -127 coordenadas X / Y relativas, la 'sensación' de la aplicación cambia drásticamente entre diferentes modelos, en que algunos se mueven muy lentamente y otros se mueven muy rápidamente. Supongo que esto se relaciona con el tamaño físico del espacio lógico que informa el mouse.

Si bien los descriptores HID tienen campos específicos para esto, los ratones nunca los usan ... al menos, para el modo de arranque que estoy usando (¡no hay controladores aquí!) (Editar: los ratones no comienzan en modo de arranque, mi error) . En este punto, estoy reducido a crear tablas con clave en VID / PID; Esto significa que tendré que probar cada mouse y crear ajustes para él, algo de lo que ya estoy cansado (¡y el cliente también está cansado!).

Puede tomar estos ratones y conectarlos a Windows y obtener un movimiento decentemente equivalente de ellos. Estoy buscando controladores especiales y el controlador normal que veo es el HID genérico 2006 de MS.

Mi pregunta principal: ¿cómo se maneja esto en los sistemas operativos típicos? ¿Me estoy perdiendo algo, como quizás que los ratones que se mueven más rápido tienen un intervalo de informe más corto (no he leído el descriptor de punto final)? ¿O alguien tuvo que pasar y hacer una tabla de DPI para todas las combinaciones de VID / PID? Si simplemente pusieran lo físico frente a lo lógico en el descriptor del informe, ¡esto funcionaría como debería! Por favor ayuda...

usuario16719
fuente
¿Ha implementado la "aceleración" del mouse?
pjc50
2
Los ratones tienen sus resoluciones inherentes, pero el sistema operativo host también puede sondear a diferentes velocidades. Por esta razón, los sistemas operativos generalmente le permiten ajustar la velocidad y la aceleración del mouse. Estoy bastante seguro de que no hay un estándar sobre lo que debe informar un mouse en términos de conversión de unidades ... y estaría dispuesto a apostar que está atrapado haciendo estos mapeos de tabla personalizados si desea normalizar la respuesta del mouse.
Toby Lawrence
1
@TobyLawrence - ¡La resolución del mouse y las tasas de encuesta no son lo mismo! Si sondea un mouse con más frecuencia, informará valores de posición delta más pequeños por encuesta. Sin embargo, el DPI subyacente no cambiará . Para simular un DPI más bajo, tendría que dividir los valores de posición delta por la relación de DPI de hardware a DPI deseado.
Connor Wolf
1
@TobyLawrence: la tasa de sondeo no debería influir en absoluto en el movimiento del mouse. Solo afecta la capacidad de respuesta. Ese es el punto al que estaba tratando de llegar.
Connor Wolf
1
Esencialmente, el mouse integra y , y devuelve los valores cada vez que la computadora los solicita. Si sondea más a menudo, los deltas informados son más pequeños, pero si los suma a lo largo del tiempo (como lo hace para dibujar el cursor), el resultado general es el mismo. ΔXΔY
Connor Wolf

Respuestas:

1

Pruebe la palabra MICKEY http://www.webopedia.com/TERM/M/mickey.html

Tenga en cuenta que algunos sistemas operativos (creo que Windows y Mac también hacen esto) cambian automáticamente diferentes "puntos por pulgada" dependiendo de la velocidad del movimiento del usuario humano. si el usuario mueve el mouse rápidamente, aumenta "punto por pulgada". Cuando el usuario mueve el mouse lentamente, como pintar bien en Photoshop, disminuye para que el usuario pueda controlar / mover uno o unos pocos píxeles.

EEd
fuente