Estou criando um aplicativo incorporado que hospeda um mouse USB. Estou tentando torná-lo genérico para qualquer mouse / trackball / HID USB HID. Eu descobri que os ratos relatam de maneira diferente ... enquanto todos eles relatam + -127 coordenadas X / Y relativas, a 'sensação' do aplicativo muda drasticamente entre diferentes modelos, em que alguns se movem muito lentamente e outros se movem muito rapidamente. Suponho que isso esteja relacionado ao tamanho físico do espaço lógico que o mouse relata.
Embora os descritores da HID tenham campos específicos para isso, os ratos nunca os usam ... pelo menos para o modo de inicialização que estou usando (sem drivers aqui!) (Editar: os ratos não iniciam no modo de inicialização, meu erro) . Neste ponto, estou reduzido a criar tabelas codificadas em VID / PID; isso significa que terei que testar cada mouse e criar ajustes para ele, algo de que já estou cansado (e o cliente também está cansado!).
Você pode pegar esses mouses e conectá-los ao Windows e obter movimentos decentemente equivalentes deles. Estou procurando drivers especiais e o driver normal que vejo é o 2006 HID genérico da MS.
Minha principal pergunta: como isso é tratado nos sistemas operacionais típicos? Estou perdendo alguma coisa, como talvez os ratos que se movem mais rapidamente tenham um intervalo de relatório mais curto (não li o descritor do ponto final)? Ou alguém precisou fazer uma tabela de DPI para todas as combinações de VID / PID? Se eles colocassem apenas físico vs. lógico no descritor de relatório, isso funcionaria como deveria! Por favor ajude...
Respostas:
Experimente a palavra MICKEY http://www.webopedia.com/TERM/M/mickey.html
Observe que alguns sistemas operacionais (acredito que o Windows e o Mac também fazem isso) mudam automaticamente diferentes "pontos por polegada", dependendo da velocidade do movimento humano-usuário. se o usuário mover o mouse rapidamente, ele aumentará "ponto por polegada". Quando o usuário move o mouse lentamente, como fazer uma pintura fina no photoshop, ele diminui para que o usuário possa controlar / mover um ou alguns pixels.
fonte