Ich möchte für einen Anwendungsfall (massenhaftes Vermessen von 2D-Objekten) ein Grafiktablet zusammen mit einer selbstgeschriebenen Anwendung (Messungen erfassen, speichern, statistisch auswerten usw.) benutzen. Was ich jedoch nicht möchte, aber bisher einfach nicht verhindern kann: Der Treiber für das Tablet mischt sich auch in die ganz normale Maussteuerung ein. D.h. wenn ich Stift odr Lupe über das Tablet bewege, bewegt sich auch der "ganz normale" Mauspfeil und ein Tippen/Klicken wird wie ein Mausklick akzeptiert. Das soll aber aus verschiedenen Gründen (auch Kundenwunsch) nicht sein ... Gibts irgend eine Möglichkeit, zur Not auch unter Linux, eine USB-Schnittstelle irgendwie so zu konfigurieren, dass die Mauseigenschaften des Tablets nicht bis ins System "durchschlagen", ich aber z.B. mittels gezielter Abfragen aus meiner App heraus trotzdem Position und Stiftstatus abfragen kann? Oder ich versuche das mit einem Mikrocontroller (Raspi?), der quasi als Anti-Maus-Adpter dazwischengesteckt wird. Aber die zugehörige Software ist sicher auch nicht ganz einfach. Danke für Tips.
Also unter Linux kannst du für dein Tablet den "Maustreiber" ausklinken (udev als Stichwort). Dann musst du halt mit deiner Anwendung aus /dev/hidrawX (X ist eine Zahl) die events rausholen und entsprechend parsen. Vorraussetzung ist ein Treiber für das Tablet unter Linux und eine bekannte Struktur der Events.
Frank E. schrieb: > Gibts irgend eine Möglichkeit, zur Not auch unter Linux, eine > USB-Schnittstelle irgendwie so zu konfigurieren, dass die > Mauseigenschaften des Tablets nicht bis ins System "durchschlagen", ich > aber z.B. mittels gezielter Abfragen aus meiner App heraus trotzdem > Position und Stiftstatus abfragen kann? Unter Linux sollte das per xinput möglich sein. In Xorg ist eine virtuelle Maus und eine virtuelle Tastatur definiert, die als Master fungieren, und alles, was als Zeigegerät bzw. als Tastatur erkannt wird, wird diesen virtuellen Geräten als Slave zugeordnet, und der Master schickt dann die Inputs von allen Slaves weiter an die Oberfläche. Diese Zuordnungen kann man ändern. Mach mal
1 | xinput list |
Das zeigt dir die Geräte alle an und deren Zuordnung zu den virtuellen Geräten. Dann kannst du mal probieren, was passiert, wenn du
1 | xinput float <id_deines_Tablets> |
eingibst. Das sollte es vom Virtual core pointer trennen, so dass keine Maus-Events mehr erzeugt werden. Mit
1 | xinput reattach <id_deines_Tablets> <id_des_Master> |
kannst du die Zuordnung wieder herstellen. PS: Kleiner Fun-fact am Rande: Man kann auch mehrere virtual core pointers definieren und Mäuse darauf verteilen. Dann hat man für jeden virtual core pointer einen eigenen Mauszeiger, den man separat auf dem Desktop nutzen kann. Allerdings kommt nicht jede Software damit klar.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.