Hallo, Ich versuche ein Touch oder Multi-Touch zu erzeugen auf Basis eines C-Code der eine Mausbewegung simuliert hat (das/Maus hat funktioniert). Ich habe nun überall statt REL, ABS eingetragen und die Werte die gemäss protocol siehe => https://www.kernel.org/doc/Documentation/input/multi-touch-protocol.txt nötig wären... Mit "evtest" erhalte ich jetzt aber nur X und Y ohne ABS_MT_SLOT und ohne ABS_MT_TRACKING_ID... nur wieso jetzt?? (siehe auch Code ganz unten) Das ist vermutlich ein Problem weil auch TSLIB (siehe weiter unten) die Simulation nicht als Touch erfasst: *********************************** Event: time 1483041111.172596, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 8 Event: time 1483041111.172596, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 8 Event: time 1483041111.172596, -------------- EV_SYN ------------ Event: time 1483041111.187699, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 9 Event: time 1483041111.187699, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 9 Event: time 1483041111.187699, -------------- EV_SYN ------------ Event: time 1483041111.202803, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 10 Event: time 1483041111.202803, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 10 Event: time 1483041111.202803, -------------- EV_SYN ------------ Event: time 1483041111.217907, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 11 Event: time 1483041111.217907, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 11 Event: time 1483041111.217907, -------------- EV_SYN ------------ *********************************** Desweiteren erhalte ich bei "TSLIB" ein Fehler, wieso??: *********************************** pi@raspberrypi:~ $ sudo TSLIB_FBDEVICE=/dev/fb0 TSLIB_TSDEVICE=/dev/input/event0 ts_calibrate xres = 1920, yres = 1080 selected device is not a touchscreen I understand *********************************** Code: *********************************** #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> #include <linux/input.h> #include <linux/uinput.h> #define die(str, args...) do { \ perror(str); \ exit(EXIT_FAILURE); \ } while(0) int main(void) { int fd; struct uinput_user_dev uidev; struct input_event ev; int dx, dy; int i; fd = open("/dev/uinput", O_WRONLY | O_NONBLOCK); if(fd < 0) die("error: open"); if(ioctl(fd, UI_SET_EVBIT, EV_KEY) < 0) die("error: ioctl"); if(ioctl(fd, UI_SET_KEYBIT, BTN_TOUCH) < 0) die("error: ioctl"); if(ioctl(fd, UI_SET_EVBIT, EV_ABS) < 0) die("error: ioctl"); if(ioctl(fd, UI_SET_ABSBIT, ABS_MT_POSITION_X) < 0) die("error: ioctl"); if(ioctl(fd, UI_SET_ABSBIT, ABS_MT_POSITION_Y) < 0) die("error: ioctl"); if(ioctl(fd, UI_SET_ABSBIT, ABS_MT_SLOT) < 0) die("error: ioctl"); if(ioctl(fd, UI_SET_ABSBIT, ABS_MT_TRACKING_ID) < 0) die("error: ioctl"); memset(&uidev, 0, sizeof(uidev)); snprintf(uidev.name, UINPUT_MAX_NAME_SIZE, "uinput-sample"); uidev.id.bustype = BUS_USB; uidev.id.vendor = 0x1; uidev.id.product = 0x1; uidev.id.version = 1; uidev.absmax[ABS_MT_SLOT] = 5; uidev.absmax[ABS_MT_POSITION_X] = 1920; uidev.absmin[ABS_MT_POSITION_X] = 0; uidev.absmax[ABS_MT_POSITION_Y] = 1080; uidev.absmin[ABS_MT_POSITION_Y] = 0; if(write(fd, &uidev, sizeof(uidev)) < 0) die("error: write"); if(ioctl(fd, UI_DEV_CREATE) < 0) die("error: ioctl"); sleep(2); while(1) { for(i = 0; i < 20; i++) { memset(&ev, 0, sizeof(struct input_event)); ev.type = EV_ABS; ev.code = ABS_MT_SLOT; ev.value = 0; if(write(fd, &ev, sizeof(struct input_event)) < 0) die("error: write"); memset(&ev, 0, sizeof(struct input_event)); ev.type = EV_ABS; ev.code = ABS_MT_TRACKING_ID; ev.value = 1; if(write(fd, &ev, sizeof(struct input_event)) < 0) die("error: write"); memset(&ev, 0, sizeof(struct input_event)); ev.type = EV_ABS; ev.code = ABS_MT_POSITION_X; ev.value = i; if(write(fd, &ev, sizeof(struct input_event)) < 0) die("error: write"); memset(&ev, 0, sizeof(struct input_event)); ev.type = EV_ABS; ev.code = ABS_MT_POSITION_Y; ev.value = i; if(write(fd, &ev, sizeof(struct input_event)) < 0) die("error: write"); memset(&ev, 0, sizeof(struct input_event)); ev.type = EV_SYN; ev.code = SYN_REPORT; ev.value = 0; if(write(fd, &ev, sizeof(struct input_event)) < 0) die("error: write"); usleep(15000); } sleep(1); } sleep(2); if(ioctl(fd, UI_DEV_DESTROY) < 0) die("error: ioctl"); close(fd); return 0; } *********************************** Zwei vorangehenden Themen bzgl. Lösungen für Touch-Erzeugung: Beitrag "X11, xlib, multi touch simulation" Beitrag "evdev, mousemove, multitouch auf Raspberry" Mit diesem einfachen I2C Read Code kann ich simpel X und Y Daten auslesen: Beitrag "I2C read mit C-Programm Raspberry PI"
irgendwie liegt es wohl daran das beim 2.touch x und y keine wechselnden werte erhalten habe, habe auch noch usleeps(8000) eingefügt, aufjedenfall erhalte mit evtest was vernünftiges, siehe unten. NUR... wie teste ich das? Mit tslib habe ich kein erfolg? evtl. Paint, aber welches Paint unterstützt touch? Aufjedenfall funktionieren html5 touch programme nicht :-( evtest: ************************ Event: time 1483050928.364221, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0 Event: time 1483050928.364221, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 507 Event: time 1483050928.364221, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 507 Event: time 1483050928.364221, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1 Event: time 1483050928.364221, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 707 Event: time 1483050928.364221, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 707 Event: time 1483050928.364221, ++++++++++++++ EV_REL ++++++++++++ Event: time 1483050928.364221, -------------- EV_SYN ------------ Event: time 1483050928.460511, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0 Event: time 1483050928.460511, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 508 Event: time 1483050928.460511, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 508 Event: time 1483050928.460511, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1 Event: time 1483050928.460511, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 708 Event: time 1483050928.460511, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 708 Event: time 1483050928.460511, ++++++++++++++ EV_REL ++++++++++++ Event: time 1483050928.460511, -------------- EV_SYN ------------ Event: time 1483050928.556866, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0 Event: time 1483050928.556866, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 509 Event: time 1483050928.556866, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 509 Event: time 1483050928.556866, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1 Event: time 1483050928.556866, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 709 Event: time 1483050928.556866, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 709 Event: time 1483050928.556866, ++++++++++++++ EV_REL ++++++++++++ Event: time 1483050928.556866, -------------- EV_SYN ------------ Event: time 1483050928.653166, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0 Event: time 1483050928.653166, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 510 Event: time 1483050928.653166, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 510 Event: time 1483050928.653166, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1 Event: time 1483050928.653166, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 710 Event: time 1483050928.653166, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 710 Event: time 1483050928.653166, ++++++++++++++ EV_REL ++++++++++++ Event: time 1483050928.653166, -------------- EV_SYN ------------
Epi K. schrieb: > irgendwie liegt es wohl daran das beim 2.touch x und y keine wechselnden > werte erhalten habe, habe auch noch usleeps(8000) eingefügt, > aufjedenfall erhalte mit evtest was vernünftiges, siehe unten. NUR... > wie teste ich das? Mit tslib habe ich kein erfolg? Es könnte sein, dass der tslib die ABS_X und ABS_Y-Achse fehlen. Ich glaube älteren Versionen wollten auch unbedingt die ABS_PRESSURE-Achse sehen, wobei die allerdings von der Kernel-API her eigentlich nur vorgesehen ist, wenn sie tatsächlich variable Werte liefert (und nicht nur 0/1 als Synonym für den BTN_TOUCH). Ansonsten komprimiert der Kernel die Events und liefert nur die aus, die tatsächlich geänderte Werte enthalten. Viele Grüße, Simon
vielen Dank. Werde dies mal versuchen... wobei so wie es jetzt ist, auf der HTML Seite http://scripty2.com/demos/touch/touchspector/ wird kein Touch erkannt... also wird es wohl kaum funktionieren. Im Moment versuche ich es deshalb direkt über ein "touchemulator javascript" https://github.com/hammerjs/touchemulator Der Browser übernimmt die touch-Daten ja von irgendwo und übergibt Sie weiter, und hier versuche ich zu manipulieren und die eigenen X-Y Daten zu übergeben. Naja sehr schade, dass all dies nicht einfacher geht :-((
:
Bearbeitet durch User
Betrachten wir nochmal alle Threads: Beitrag "evdev, mousemove, multitouch auf Raspberry" Beitrag "X11, xlib, multi touch simulation" Beitrag "I2C read mit C-Programm Raspberry PI" Zuerst versuchst du es mit python zu emulieren, dann mit C, und dann kommst du zum schluss, dass: Epi K. schrieb: > Naja sehr schade, dass all dies nicht einfacher geht :-(( Und nun willst es auf einem noch höheren Layer emulieren. Ich meine, Come on, das ist doch von hinten durch die Brust ins Auge. Was spricht dagegen es auf dem normalen weg zu lösen: Daniel A. schrieb: > Verstehe ich dass jetzt richtig, du willst einfach einen noch nicht von > linux unterstützten I2C Touchscreen verwenden? Wäre es da nicht > einfacher den Linux kernel neu zu kompilieren, und darin einen i2c hid > treiber zu schreiben/anzupassen? Wie auch immer, hast du nachgeschaut ob xinput dein Input device auflistet? Damit kann man sich glaub ich auchnoch die Events anzeigen lassen, die X von einem Input device sieht. Falls es in xinput nicht auftaucht, muss man es in Xorg erst bekannt machen. Früher ging das über /etc/Xorg.conf, heuzutage ist eher /etc/X11/xorg.conf.d/ in mode. PS: Sind wirklich derart viele Threads notwendig? In diesem Forum wird viel Diskutiert, anders als in anderen reinen Frage=>Antwort Foren. Dabei ist es immer nützlich, wenn man den gesammten Kontext sieht.
Hoi Daniel Daniel A. schrieb: > PS: Sind wirklich derart viele Threads notwendig? In diesem Forum wird > viel Diskutiert, anders als in anderen reinen Frage=>Antwort Foren. > Dabei ist es immer nützlich, wenn man den gesammten Kontext sieht. jo das ist ein wenig viel, entschuldigung. Habe verschiedene Wege im Kopf gehabt... Daniel A. schrieb: > Wie auch immer, hast du nachgeschaut ob xinput dein Input device > auflistet? Damit kann man sich glaub ich auchnoch die Events anzeigen > lassen, die X von einem Input device sieht. Falls es in xinput nicht > auftaucht, muss man es in Xorg erst bekannt machen. Früher ging das über > /etc/Xorg.conf, heuzutage ist eher /etc/X11/xorg.conf.d/ in mode. auf Xinput wird es nicht gelistet. Habe lange versucht eine Anleitung zu finden dies auf Xinput bekannt zu machen... ich werde mir dein Link mal anschauen. Danke. Daniel A. schrieb: > Und nun willst es auf einem noch höheren Layer emulieren. Ich meine, > Come on, das ist doch von hinten durch die Brust ins Auge. Was spricht > dagegen es auf dem normalen weg zu lösen: was dagegegen spricht? ganz einfach ich habe noch nie ein Treiber geschrieben und integriert. Und wenn ich mir so die Quell-Codes von verschiedenen Touch-Treiber anschaue kriege ich ne Panik-Attacke... Und zu alldem müsste ich diese auch noch in den Kernel integrieren. Ganz ehrlich mir ist es schwer gefallen eine einfache Anleitung für Treiber Implementierung zu finden. Ich habe doch einfach nur 10 x und Y Koordinaten und dann noch die ID zu jedem Touch und die Info ob aktiv oder nicht aktiv. Und das muss irgendwo übergeben werden... tja
pi@raspberrypi:~ $ evtest No device specified, trying to scan all of /dev/input/event* Not running as root, no devices may be available. Available devices: /dev/input/event0: uinput-sample Select the device event number [0-0]: 0 pi@raspberrypi:~ $ export DISPLAY=':0' pi@raspberrypi:~ $ xinput ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] wie sieht der code ungefährt aus um uinput-sample or whatever auf /etc/X11/xorg.conf.d/ bekannt zu machen, vorallem aber habe ich nicht mal ein xorg.conf...bzw. nur dort: /usr/share/X11/xorg.conf.d/?
:
Bearbeitet durch User
Epi K. schrieb: > pi@raspberrypi:~ $ export DISPLAY=':0' > pi@raspberrypi:~ $ xinput Probiere mal das tatsächlich aus einer gestarteten X-Session heraus zu tun. Eigentlich sollte der evdev-Treiber von Xorg das Ding automatisch aufpicken (Auf meinem Laptop tut er das). Ansonsten: Sicherstellen, dass dein "uinput"-Programm läuft und dann X restarten. Grüße, Simon
Daniel A. schrieb: > Und nun willst es auf einem noch höheren Layer emulieren. Ich meine, > Come on, das ist doch von hinten durch die Brust ins Auge. Was spricht > dagegen es auf dem normalen weg zu lösen: Naja, es ist halt leider echt doof, dass die ganzen "Desktop"-Browser mit Multitouch-Input nur sehr bedingt klarkommen (im Gegensatz zu den Android-Mobile-Browsern). Insofern kann ich schon nachvollziehen, dass hier die Luft langsam dünn wird und man nach Strohhalmen greift. Das ganze Zeugs ist aus irgendwelchen doofen Gründen echt Arbeit. Und ein ordentlich im Kernel implementierter Treiber - so einfach das scheinbar ist - garantiert halt leider noch lange nicht, dass die Multitouch-taugliche Webseite wie geplant funktioniert... Grüße, Simon
Simon B. schrieb: > Naja, es ist halt leider echt doof, dass die ganzen "Desktop"-Browser > mit Multitouch-Input nur sehr bedingt klarkommen (im Gegensatz zu den > Android-Mobile-Browsern). Insofern kann ich schon nachvollziehen, dass > hier die Luft langsam dünn wird und man nach Strohhalmen greift. ich bin mir da nicht sicher ob dass wirklich nicht funktionieren sollte... weil mit richtig implementierten Treiber funktionieren ja Touch's auch auf Browser einwandfrei... und die arbeiten ja auch nur mit X?! Wenn es auf deinem Laptop läuft, also auf Xinput auch was angezeigt wird... dann könntest du mir doch gleich auf folgender Homepage testen ob auch ein Touch angeigt wird: http://scripty2.com/demos/touch/touchspector/ Simon B. schrieb: > Probiere mal das tatsächlich aus einer gestarteten X-Session heraus zu > tun. Eigentlich sollte der evdev-Treiber von Xorg das Ding automatisch > aufpicken (Auf meinem Laptop tut er das). phu leider blicke ich bei diesem X-Zeug noch nicht so durch... wie meinst du das?
Epi K. schrieb: > Simon B. schrieb: >> Naja, es ist halt leider echt doof, dass die ganzen "Desktop"-Browser >> mit Multitouch-Input nur sehr bedingt klarkommen (im Gegensatz zu den >> Android-Mobile-Browsern). Insofern kann ich schon nachvollziehen, dass >> hier die Luft langsam dünn wird und man nach Strohhalmen greift. > > ich bin mir da nicht sicher ob dass wirklich nicht funktionieren > sollte... weil mit richtig implementierten Treiber funktionieren ja > Touch's auch auf Browser einwandfrei... und die arbeiten ja auch nur mit > X?! Aha? Tun sie? Redest Du von Multi-Touch? Wie hast Du das verifiziert? > Wenn es auf deinem Laptop läuft, also auf Xinput auch was angezeigt > wird... > dann könntest du mir doch gleich auf folgender Homepage testen ob auch > ein Touch angeigt wird: > http://scripty2.com/demos/touch/touchspector/ Mit meinem Firefox (Debian Unstable) funktioniert der ordentlich konfigurierte und in xinput verfügbare Wacom-Multitouch-Touchscreen nicht (bzw. nur als Mausersatz). Lustigerweise funktionieren ein paar Gesten (zwei-Finger-Scrolling und Pinch-Zooming). Keinen Schimmer warum. > > Simon B. schrieb: >> Probiere mal das tatsächlich aus einer gestarteten X-Session heraus zu >> tun. Eigentlich sollte der evdev-Treiber von Xorg das Ding automatisch >> aufpicken (Auf meinem Laptop tut er das). > phu leider blicke ich bei diesem X-Zeug noch nicht so durch... wie > meinst du das? Du hast explizit ein export DISPLAY=:0 gemacht, was für mich darauf hindeutete, dass Du das via SSH von remote gemacht hast. Starte dein uinput-Dings mal aus einem xterminal heraus. Grüße, Simon
Simon B. schrieb: >> ich bin mir da nicht sicher ob dass wirklich nicht funktionieren >> sollte... weil mit richtig implementierten Treiber funktionieren ja >> Touch's auch auf Browser einwandfrei... und die arbeiten ja auch nur mit >> X?! > > Aha? Tun sie? Redest Du von Multi-Touch? Wie hast Du das verifiziert? von https://www.bytesatwork.ch/ weiss ich, dass die mit Linux (Yocto) und HTML5 arbeiten und z.B. EDT Touches bis 10 Finger (z.B. zeichnen) ohne Probleme funktioniert... Danke für den Tip bzgl. xterminal... aber jetzt habe ich einfach XTerminal gestartet, und export DISPLAY=':0' sudo ./touch & (meine Anwendung gestartet dann: evtest es erscheint "uinput-sample" dann: xinput wird kein uinput-sample oder was ähnliches aufgelistet... habs auch mal ohne export DISPLAY=':0' gemacht. Und jetzt auch alles nicht per SSH. Danke
:
Bearbeitet durch User
Epi K. schrieb: > Simon B. schrieb: >>> ich bin mir da nicht sicher ob dass wirklich nicht funktionieren >>> sollte... weil mit richtig implementierten Treiber funktionieren ja >>> Touch's auch auf Browser einwandfrei... und die arbeiten ja auch nur mit >>> X?! >> >> Aha? Tun sie? Redest Du von Multi-Touch? Wie hast Du das verifiziert? > > von https://www.bytesatwork.ch/ weiss ich, dass die mit Linux (Yocto) > und HTML5 arbeiten und z.B. EDT Touches bis 10 Finger (z.B. zeichnen) > ohne Probleme funktioniert... Die spannende Frage ist: Mit welchem Browser in welcher Version? > wird kein uinput-sample oder was ähnliches aufgelistet... Ok, dann muss man da mal gucken ob man den Xorg irgendwie noch weiter konfigurieren muss damit da was tut. Spontan gehen mir da erstmal die Ideen aus. Grüße, Simon
Simon B. schrieb: > Ok, dann muss man da mal gucken ob man den Xorg irgendwie noch weiter > konfigurieren muss damit da was tut. Spontan gehen mir da erstmal die > Ideen aus. > > Grüße, > Simon was genau wird bei dir auf xinput aufgelistet? Und wie gehst du schritt für schritt vor? Weil wenn es bei dir aufgelistet wird, dann fehlt noch irgendein x -paket im raspberry... Danke
Epi K. schrieb: > Simon B. schrieb: >> Ok, dann muss man da mal gucken ob man den Xorg irgendwie noch weiter >> konfigurieren muss damit da was tut. Spontan gehen mir da erstmal die >> Ideen aus. >> >> Grüße, >> Simon > > was genau wird bei dir auf xinput aufgelistet? Und wie gehst du schritt > für schritt vor? Vorher:
1 | simon@mezzanine:/tmp$ xinput |
2 | ⎡ Virtual core pointer id=2 [master pointer (3)] |
3 | ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] |
4 | ⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor Finger touch id=9 [slave pointer (2)] |
5 | ⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor Pen stylus id=10 [slave pointer (2)] |
6 | ⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=13 [slave pointer (2)] |
7 | ⎜ ↳ AlpsPS/2 ALPS DualPoint Stick id=14 [slave pointer (2)] |
8 | ⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor Pen eraser id=16 [slave pointer (2)] |
9 | ⎣ Virtual core keyboard id=3 [master keyboard (2)] |
10 | ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] |
11 | ↳ Power Button id=6 [slave keyboard (3)] |
12 | ↳ Video Bus id=7 [slave keyboard (3)] |
13 | ↳ Sleep Button id=8 [slave keyboard (3)] |
14 | ↳ Integrated Camera id=11 [slave keyboard (3)] |
15 | ↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)] |
16 | ↳ ThinkPad Extra Buttons id=15 [slave keyboard (3)] |
Starten deines uinput-Programms (ich glaube quasi ohne Änderung - bis auf ein paar Delay-Dinge die meinen Computer benutzbar halten indem nicht sofort Events geschickt werden):
1 | simon@mezzanine:/tmp$ sudo ./uinput |
2 | ^Z |
3 | [1]+ Stopped sudo ./uinput |
4 | simon@mezzanine:/tmp$ bg |
5 | [1]+ sudo ./uinput & |
Und dann anschließend die Ausgabe mit uinput-sample:
1 | simon@mezzanine:/tmp$ xinput |
2 | ⎡ Virtual core pointer id=2 [master pointer (3)] |
3 | ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] |
4 | ⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor Finger touch id=9 [slave pointer (2)] |
5 | ⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor Pen stylus id=10 [slave pointer (2)] |
6 | ⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=13 [slave pointer (2)] |
7 | ⎜ ↳ AlpsPS/2 ALPS DualPoint Stick id=14 [slave pointer (2)] |
8 | ⎜ ↳ Wacom Co.,Ltd. Pen and multitouch sensor Pen eraser id=16 [slave pointer (2)] |
9 | ⎜ ↳ uinput-sample id=17 [slave pointer (2)] |
10 | ⎣ Virtual core keyboard id=3 [master keyboard (2)] |
11 | ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] |
12 | ↳ Power Button id=6 [slave keyboard (3)] |
13 | ↳ Video Bus id=7 [slave keyboard (3)] |
14 | ↳ Sleep Button id=8 [slave keyboard (3)] |
15 | ↳ Integrated Camera id=11 [slave keyboard (3)] |
16 | ↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)] |
17 | ↳ ThinkPad Extra Buttons id=15 [slave keyboard (3)] |
Grüße, Simon
ok. interessant danke, und wird bei dir ein Touch auf http://scripty2.com/demos/touch/touchspector/ angezeigt?
Epi K. schrieb: > ok. interessant danke, und wird bei dir ein Touch auf > http://scripty2.com/demos/touch/touchspector/ angezeigt? Nachdem das schon mit meinem Wacom-Multitouch im Firefox nicht funktioniert (siehe oben) habe ich das gar nicht erst probiert (und sehe auch keinen Sinn darin). Ich bin mir sehr sicher, dass - sofern man die richtigen Events bereitstellt - es für das Xorg quasi keinen Unterschied darstellt ob ein Device ein reales physikalisches Gerät ist (und z.B. erst nachträglich durch Anstecken eines USB-Geräts auftaucht) oder ob das per uinput simuliert wird. Grüße, Simon
Simon B. schrieb: > Nachdem das schon mit meinem Wacom-Multitouch im Firefox nicht > funktioniert (siehe oben) habe ich das gar nicht erst probiert (und sehe > auch keinen Sinn darin). ok. wie schauts mit Chrome bzw. Chromium aus? Der scheint ziemlich gut Multitouch fähig zu sein?... Ich werde mal bei gelegenheit bei byte@works nachfragen welchen browser sie den verwenden. Aber ich glaube nicht, dass es ein spezieller ist. Danke
:
Bearbeitet durch User
Epi K. schrieb: > ok. wie schauts mit Chrome bzw. Chromium aus? Der scheint ziemlich gut > Multitouch fähig zu sein?... Chromium nicht bei mir. Chrome habe ich nicht installiert. Grüße, Simon
och schade vielleicht kannst du für mich mal den chrome installieren... anyway ich bin jetzt in der Lage mit dem touch-emulator() mulittouch's zu simulieren. D.h. ich muss jetzt einfach bei jeder Touch-Fähigen Homepage dieses script vorher starten.. was jetzt noch fehlt, ich muss meine X-Y Daten diesem java-script übergeben können... evtl. JSON. Aber irgendwie suche ich ne Browser-Schnittstelle um einfach nur Array's zu übergeben... und es muss mindestens 30mal in der Sekunde abrufbar sein... Müsste fast ein weiteren Thread dafür erstellen, aber ich lass es mal..
Simon B. schrieb: > Chromium nicht bei mir. Ach guck: mit "chromium --touch-events=enabled" sehe ich mit dem Wacom-Touchscreen mehrere Berührpunkte. Er meldet mir auch 10 Punkte wenn ich alle Finger auflege, malt aber anscheinend nicht um alle die Rahmen (warum auch immer)... Viele Grüße, Simon
oh cool, das prg. rendert glaubs nur max. 5 touch's, wie siehts mit uinput aus?
:
Bearbeitet durch User
Epi K. schrieb: > oh cool, das prg. rendert glaubs nur max. 5 touch's, wie siehts mit > uinput aus? Dein Programm von oben realisiert noch keine mehrfachen Touches - und ich werde unbezahlt da auch erstmal keine Zeit reinstecken, das zu implementieren. Generell kannst Du aber diese Tests auch selber machen - du brauchst nur ein Desktop-Linux und kannst da nach Herzenslust selber rumfrickeln. Und dann kannst Du probieren, an welcher Stelle es beim Raspberry dann ggf. scheitert. Viele Grüße, Simon
Darf Ich zwischenfragen, ob jemand ein Tutorial kennt, aus dem man entnehmen könnte, wie das überhaupt geht mit dem Multitouch? Ist das auf Basis einer Multiplexfunktion? Ich meine, wenn Ich mir ein Gitter mit den Spannungen vorstelle, die sich infolge des Widerstandes ändern, bekomme Ich eigentlich bei mehr, als einer Berührung einen Mittelwert, oder?
Ich komme nochmals auf das Thema zurück: EPI, hast Du das hinbekommen?
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.