Thread View: pl.comp.os.linux.programowanie
6 messages
6 total messages
Started by Sebastian Biały
Sat, 27 Sep 2014 12:30
Wirtualny joystick
Author: Sebastian Biały
Date: Sat, 27 Sep 2014 12:30
Date: Sat, 27 Sep 2014 12:30
17 lines
1552 bytes
1552 bytes
Mam takie zgadnienie: a) jest aplikacja której kodu źrodlowego nie chce ruszać. Odbiera ona sterowanie ze standardowego urządzenia "joystick" dostepnego w kernelu, np /dev/input/js0. b) chciałbym zamiast fizycznego joysticka wystawić joystick wirtualny. Taki joystick standardowo zgłasza zahardkodowaną ilośc osi i przycisków i nie generuje żadnych eventów. c) z *userspace* z innego procesu chciałbym wkladac eventy joysticka do tego wirtualnego urzadzenia tak aby program z a) mógł je odbierać. Czy znajdę gotowe rozwiązanie tego problemu czy też będe zmuszony do napisania modułu kernela implementujacego taki joystick? Sytuacje komplikuje nieco fakt że może byc na raz kilka procesów a) czytających wirtualny joystick.
Re: Wirtualny joystick
Author: grapeli23
Date: Sat, 27 Sep 2014 13:28
Date: Sat, 27 Sep 2014 13:28
21 lines
2047 bytes
2047 bytes
Dnia 27.09.2014 Sebastian Biały <heby@poczta.onet.pl> napisał/a: > Mam takie zgadnienie: > > a) jest aplikacja której kodu źrodlowego nie chce ruszać. Odbiera ona > sterowanie ze standardowego urządzenia "joystick" dostepnego w kernelu, > np /dev/input/js0. > > b) chciałbym zamiast fizycznego joysticka wystawić joystick wirtualny. > Taki joystick standardowo zgłasza zahardkodowaną ilośc osi i przycisków > i nie generuje żadnych eventów. > > c) z *userspace* z innego procesu chciałbym wkladac eventy joysticka do > tego wirtualnego urzadzenia tak aby program z a) mógł je odbierać. > > Czy znajdę gotowe rozwiązanie tego problemu czy też będe zmuszony do > napisania modułu kernela implementujacego taki joystick? Sytuacje > komplikuje nieco fakt że może byc na raz kilka procesów a) czytających > wirtualny joystick. Może evemu (Kernel device emulation) w jakiś sposób będzie pomocny. http://www.freedesktop.org/wiki/Evemu/
Re: Wirtualny joystick
Author: Sebastian Biały
Date: Sat, 27 Sep 2014 15:52
Date: Sat, 27 Sep 2014 15:52
5 lines
1097 bytes
1097 bytes
On 2014-09-27 15:28, grapeli23 wrote: > Może evemu (Kernel device emulation) w jakiś sposób będzie pomocny. Na pierwszy rzut oka raczej nie. Ale może będzie pomocny jako example drivera.
Re: Wirtualny joystick
Author: Gof
Date: Mon, 20 Oct 2014 05:03
Date: Mon, 20 Oct 2014 05:03
17 lines
1483 bytes
1483 bytes
Sebastian Biały <heby@poczta.onet.pl> wrote: > a) jest aplikacja której kodu źrodlowego nie chce ruszać. Odbiera ona > sterowanie ze standardowego urządzenia "joystick" dostepnego w kernelu, > np /dev/input/js0. Może pójdzie, gdy stworzysz named pipe (man mkfifo) i będziesz wrzucał do tego pipe jakieś eventy? Nie wiem czy joystick ma jakieś ioctle, czy jedynie czyta się z niego podobnie do /dev/input/event*, ale jeśli tylko się czyta, to może się udać... Jeśli jednak ioctle, to zawsze możesz napisać userlandowy wrapper na libc i ładować go przez LD_PRELOAD do tej zamkniętej aplikacji. -- SELECT finger FROM hand WHERE id = 3; http://www.chmurka.net/
Re: Wirtualny joystick
Author: Sebastian Biały
Date: Mon, 20 Oct 2014 18:00
Date: Mon, 20 Oct 2014 18:00
13 lines
1355 bytes
1355 bytes
On 2014-10-20 07:03, Gof wrote: > Może pójdzie, gdy stworzysz named pipe Tu jest taki znowu problem że kilka apliakcji chciało by to otworzyć na raz. > Nie wiem czy joystick ma jakieś ioctle Ma. > Jeśli jednak ioctle, to zawsze możesz napisać userlandowy wrapper na libc > i ładować go przez LD_PRELOAD do tej zamkniętej aplikacji. nie to już przegięcie, znacznie łatwiejszy będzie normalny modulik.
Re: Wirtualny joystick
Author: Gof
Date: Tue, 21 Oct 2014 09:15
Date: Tue, 21 Oct 2014 09:15
33 lines
1859 bytes
1859 bytes
Sebastian Biały <heby@poczta.onet.pl> wrote: >> Może pójdzie, gdy stworzysz named pipe > > Tu jest taki znowu problem że kilka apliakcji chciało by to otworzyć na raz. No to fakt - będzie problem z named pipe. Chyba żeby każda aplikacja otwierała inny named pipe (np. symlinkować jej to przed uruchomieniem i potem usuwać symlinka). >> Nie wiem czy joystick ma jakieś ioctle > > Ma. Czyli pomysł z fifo odpada... >> Jeśli jednak ioctle, to zawsze możesz napisać userlandowy wrapper na libc >> i ładować go przez LD_PRELOAD do tej zamkniętej aplikacji. > > nie to już przegięcie, znacznie łatwiejszy będzie normalny modulik. Z modułem kernela na pewno będzie najbardziej elegancko, wrapper to hack. A może spróbuj z inputattach? http://man.he.net/man1/inputattach Może dałoby się to podpiąć pod jakieś serialowe urządzenie, które emulowałoby ten joystick... -- SELECT finger FROM hand WHERE id = 3; http://www.chmurka.net/
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads