Puntini del mouse per pollice ... come dire?


11

Sto creando un'applicazione incorporata che ospita un mouse USB. Sto cercando di renderlo generico per qualsiasi mouse / trackball USB HID / qualunque cosa. Ho scoperto che i topi riportano in modo diverso ... mentre per lo più riportano tutti + -127 coordinate X / Y relative, la 'sensazione' dell'applicazione cambia drasticamente tra i diversi modelli, in quanto alcuni si muovono molto lentamente e altri si muovono molto rapidamente. Suppongo che ciò si riferisca alla dimensione fisica dello spazio logico riportato dal mouse.

Mentre i descrittori HID hanno campi specifici per questo, i mouse non li usano mai ... almeno, per la modalità di avvio che sto usando (nessun driver qui!) (Modifica: i mouse non si avviano in modalità di avvio, errore mio) . A questo punto sono ridotto a creare tabelle codificate su VID / PID; questo significa che dovrò testare ogni mouse e creare accordature per questo, qualcosa di cui sono già stanco (e anche il cliente è stanco!).

Puoi prendere questi mouse e collegarli a Windows e ottenere da loro un movimento abbastanza equivalente. Sto cercando driver speciali e il driver normale che vedo è il generico HID 2006 da MS.

La mia domanda principale: come viene gestita nei tipici sistemi operativi? Mi sto perdendo qualcosa, come forse quei topi che si muovono più rapidamente hanno un intervallo di segnalazione più breve (non ho letto il descrittore dell'endpoint)? O qualcuno ha dovuto passare e creare una tabella di DPI per tutte le combinazioni VID / PID? Se avessero semplicemente inserito il descrittore del rapporto fisico rispetto a quello logico, ciò avrebbe funzionato come dovrebbe! Per favore aiuto...


Hai implementato "l'accelerazione" del mouse?
pjc50,

2
I mouse hanno le loro risoluzioni intrinseche, ma il sistema operativo host può anche eseguire il polling a velocità diverse. Per questo motivo, i sistemi operativi in ​​genere consentono di ottimizzare la velocità e l'accelerazione del mouse. Sono abbastanza sicuro che non ci sia uno standard su ciò che un mouse deve segnalare in termini di conversione di unità ... e sarei disposto a scommettere che sei bloccato a fare questi mapping di tabella personalizzati se vuoi normalizzare la risposta del mouse.
Toby Lawrence,

1
@TobyLawrence - La risoluzione del mouse e le percentuali di sondaggio non sono le stesse! Se si esegue il polling di un mouse più spesso, verranno riportati valori delta-position più piccoli per sondaggio. Tuttavia, il DPI sottostante non cambierà . Per simulare un DPI inferiore, dovresti dividere i valori di delta-posizione per il rapporto tra DPI hardware e DPI desiderato.
Connor Wolf,

1
@TobyLawrence - Il tasso di polling non dovrebbe assolutamente influenzare il movimento del mouse. Colpisce solo la reattività. Questo è il punto a cui stavo cercando di arrivare.
Connor Wolf,

1
In sostanza, il mouse integra e e restituisce i valori ogni volta che il computer li richiede. Se esegui il polling più spesso, i delta riportati sono più piccoli, ma se li sommi nel tempo (come fai per disegnare il cursore), il risultato complessivo è lo stesso. ΔXΔY
Connor Wolf,

Risposte:


1

Prova la parola MICKEY http://www.webopedia.com/TERM/M/mickey.html

Nota, alcuni sistemi operativi (credo che lo facciano anche Windows e Mac) cambiano automaticamente diversi "punti per pollice" a seconda della velocità del movimento dell'utente. se l'utente sposta rapidamente il mouse, aumenta "punto per pollice". Quando l'utente sposta lentamente il mouse, ad esempio eseguendo la pittura fine su Photoshop, diminuisce in modo che l'utente possa controllare / spostare uno o pochi pixel.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.