Nowe posty

xx Bezpieczne usunięcie ubuntu 18.10 (4)
2018-10-22, 16:51:49
xx GMail w KDE (20)
2018-10-21, 13:49:48
xx Zmiana Nazwy użytkownika (1)
2018-10-18, 23:39:05
xx Dostęp zewnętrzny do sprzętu. (4)
2018-10-18, 22:29:25
xx Modem komórkowy z GPS - komendy AT (5)
2018-10-17, 17:58:39
xx Jak pobierać dodatki do kde? (6)
2018-10-17, 14:06:19
xx [ROZWIĄZANY] LO Writer - jak rozsunąć tekst do lewa i prawa w jednym wierszu (4)
2018-10-17, 11:57:05
xx skrypty wykonywane w crontab-ie [SElinux] (2)
2018-10-17, 10:33:12
xx Jak zmienić domyślny emulator terminala ? (4)
2018-10-14, 20:51:52
xx Javascript pasjans (1)
2018-10-14, 13:10:22

Autor Wątek: Przechwytywanie danych z wielu klawiatur  (Przeczytany 18753 razy)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 1
    • Zobacz profil
Przechwytywanie danych z wielu klawiatur
« dnia: 2015-01-16, 15:32:01 »
Witam,

Chciałbym napisać aplikacje w Qt, której zadaniem będzie rozdzielenie danych z kilku klawiatur - a właściwie rozdzielenie danych klawiatury i klawiaturowych czytników kodów kreskowych, które w systemie działają jak klawiatury.

Zadanie po części mi się udało. Znalazłem plik /dev/input/eventx odpowiedzialny za czytnik i przechwytuje sobie dane z tego czytnika (ioctl(EVIOCGRAB)). Umiem rozdzielić kod kreskowy od danych z klawiatury.

Wszystko działa ok, kiedy odczyt z pliku realizowany jest w pętli nieskończonej.
W docelowej aplikacji czytnik nie może być tak obsługiwany. Uruchomiłem więc drugi wątek w którym czytam sobie plik.

Chciałbym jednak aby całość działała zdarzeniowo - pojawiają się dane z czytnika = czytam z pliku, nie wiem jednak jak się za to zabrać. Próbowałem w Qt używać klasy QFileSystemWatcher jednak nie pojawia mi się sygnał o zmianie pliku.
Są jakieś sprawniejsze metody rozwiązania tego typu problemów?

Zauważyłem jeszcze jedną rzecz, jeżeli nie wyczytam szybko danych z pliku /dev/input/eventx po wyczytaniu kodu kreskowego tylko robię to np na klawisz:
1. Odczytuje barkod czytnikiem
2. Naciskam klawisz w aplikacji która ma zrobić read na pliku

W takim przypadku w pliku mam niepełne dane barkodu, czy z takich plików nie można czytać po czasie?

Jestem nowy jeżeli chodzi o obsługę linux-a oraz Qt - mam nadzieje że nie zabrnąłem w poszukiwaniach w złą stronę.

Używam Qt5 i ubuntu na virtualbox, docelowo całość będzie pracować na urządzeniu mobilnym.

Będę wdzięczny za pomoc.

Offline

  • Users
  • Użytkownik
  • **
  • Wiadomości: 94
    • Zobacz profil
Przechwytywanie danych z wielu klawiatur
« Odpowiedź #1 dnia: 2015-02-09, 12:45:37 »
Ja bym to zrobił niskopoziomowo, czyli poll. Musisz odczytać jakoś z klasy reprezentującej plik Uniksowy deskryptor plików.