Mauspunkte pro Zoll… wie kann man das sagen?

11

Ich erstelle eine eingebettete Anwendung, die eine USB-Maus hostet. Ich versuche es generisch für jede USB HID Maus / Trackball / was auch immer zu machen. Ich habe festgestellt, dass Mäuse unterschiedlich berichten ... während sie meistens alle + -127 relative X / Y-Koordinaten melden, ändert sich das "Gefühl" der Anwendung drastisch zwischen verschiedenen Modellen, da sich einige sehr langsam und andere sehr schnell bewegen. Ich gehe davon aus, dass dies mit der physischen Größe des logischen Bereichs zusammenhängt, den die Maus meldet.

Während HID-Deskriptoren spezielle Felder dafür haben, verwenden Mäuse diese nie ... zumindest für den Boot-Modus, den ich verwende (hier keine Treiber!) (Bearbeiten: Mäuse starten nicht im Boot-Modus, mein Fehler) . An diesem Punkt beschränke ich mich darauf, Tabellen zu erstellen, die auf VID / PID verschlüsselt sind. Das bedeutet, dass ich jede Maus testen und Einstellungen dafür erstellen muss, was ich bereits satt habe (und der Kunde auch!).

Sie können diese Mäuse nehmen und an Windows anschließen und von ihnen eine anständig gleichwertige Bewegung erhalten. Ich suche nach speziellen Treibern und der normale Treiber, den ich sehe, ist der generische 2006 HID von MS.

Meine Hauptfrage: Wie wird das in typischen Betriebssystemen gehandhabt? Vermisse ich etwas, wie vielleicht, dass Mäuse, die sich schneller bewegen, ein kürzeres Berichtsintervall haben (ich habe den Endpunktdeskriptor nicht gelesen)? Oder musste jemand eine DPI-Tabelle für alle VID / PID-Kombinationen erstellen? Wenn sie nur physisch oder logisch in den Berichtsdeskriptor einfügen würden, würde dies so funktionieren, wie es sollte! Bitte helfen Sie ...

user16719
quelle
Haben Sie die "Beschleunigung" der Maus implementiert?
pjc50
2
Mäuse haben ihre inhärente Auflösung (en), aber das Host-Betriebssystem kann auch mit unterschiedlichen Raten abfragen. Aus diesem Grund können Sie mit Betriebssystemen normalerweise die Mausgeschwindigkeit und die Mausbeschleunigung fein einstellen. Ich bin mir ziemlich sicher, dass es keinen Standard dafür gibt, was eine Maus in Bezug auf die Einheitenumrechnung zu melden hat ... und ich würde wetten, dass Sie diese benutzerdefinierten Tabellenzuordnungen nicht mehr ausführen können, wenn Sie die Mausreaktion normalisieren möchten.
Toby Lawrence
1
@TobyLawrence - Mausauflösung und Umfrageraten sind nicht gleich! Wenn Sie eine Maus häufiger abfragen, werden pro Umfrage kleinere Delta-Positionswerte gemeldet. Die zugrunde liegende DPI ändert sich jedoch nicht . Um eine niedrigere DPI zu simulieren, müssten Sie die Delta-Positionswerte durch das Verhältnis von Hardware-DPI zu gewünschter DPI dividieren.
Connor Wolf
1
@TobyLawrence - Die Abfragerate sollte die Mausbewegung überhaupt nicht beeinflussen. Es wirkt sich nur auf die Reaktionsfähigkeit aus. Das ist der Punkt, an den ich kommen wollte.
Connor Wolf
1
Im Wesentlichen integriert die Maus und und gibt die Werte jedes Mal zurück, wenn der Computer sie anfordert. Wenn Sie häufiger abfragen, sind die gemeldeten Deltas kleiner. Wenn Sie sie jedoch im Laufe der Zeit summieren (wie beim Zeichnen des Cursors), ist das Gesamtergebnis dasselbe. ΔX.ΔY.
Connor Wolf

Antworten:

1

Versuchen Sie das Wort MICKEY http://www.webopedia.com/TERM/M/mickey.html

Beachten Sie, dass einige Betriebssysteme (ich glaube, Windows und Mac tun dies auch) automatisch unterschiedliche "Punkte pro Zoll" ändern, abhängig von der Geschwindigkeit der Bewegung des menschlichen Benutzers. Wenn der Benutzer die Maus schnell bewegt, erhöht sich der "Punkt pro Zoll". Wenn der Benutzer die Maus langsam bewegt, wie beim Feinmalen in Photoshop, nimmt sie ab, sodass der Benutzer ein oder mehrere Pixel steuern / verschieben kann.

EEd
quelle