Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2010-03-22 19:33:39

  hobbit - Nowy użytkownik

hobbit
Nowy użytkownik
Zarejestrowany: 2010-03-22

Startowanie skryptu wciśnięciem klawisza

Witam wszystkich serdecznie. Od jakiegoś czasu zmagam się z automatyzacją procesu skanowania. Chciałbym uzyskać taki use case, że osoba używająca skanera naciska tylko jeden przycisk na klawiaturze numerycznej podłączonej po usb do hosta debianowego i po naciśnięciu tego przycisku odpala się skrypt, który wykonuje odpowiednie skanowanie na podłączonym skanerze. Niestety super wypas hp scanjet 8250 ma kiepskie wsparcie w linuksach (tak naprawdę nie ma żadnego) dla przycisków na swej obudowie i muszę zastosować taki workaround.

Moje pytanie jest następujące: jak rozwiązać startowanie skryptu .sh po naciśnięciu np. przycisku enter na dołączonej klawiaturze usb ? Satysfakcjonuje mnie nawet skrypt słuchający a odpalony w screen, więc jeśli macie jakieś pomysły i podpowiedzi to będę zobowiązany.

za pomoc serdecznie dziękuję
hobbit

Ostatnio edytowany przez hobbit (2010-03-22 19:51:09)

Offline

 

#2  2010-03-22 20:06:26

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Poznań, Polska
Zarejestrowany: 2007-12-22
Serwis

Re: Startowanie skryptu wciśnięciem klawisza

Musisz sobie odpowiedzieć na jedno kluczowe pytanie: czym się różni enter wciśnięty na klawiaturze numerycznej podłączonej po USB od entera wciśniętego po prostu na klawiaturze?

Na poziomie serwera X albo shella prawdopodobnie niczym. Więc jeżeli to koniecznie musi być enter, to musisz to zrobić na niskim poziomie — postawić coś nasłuchującego na odpowiednim porcie USB i przechwytującego odpowiednie sygnały, odpowiadając na nie odpaleniem właściwego skryptu. Zakładam że w ogóle da się takie coś zrobić na poziomie czysto software'owym (nie musisz podpinać odpowiedniego urządzenia jako przejściówki między portem a urządzeniem).

Gotowych rozwiązań prawdopodobnie nie znajdziesz.

Offline

 

#3  2010-03-22 20:13:32

  hobbit - Nowy użytkownik

hobbit
Nowy użytkownik
Zarejestrowany: 2010-03-22

Re: Startowanie skryptu wciśnięciem klawisza

Tak też podejrzewam że to będzie to samo, tylko że w kodowaniu obsługi zewnętrznych urządzeń nie mam doświadczenia - stąd moja prośba. Przykładowym rozwiązaniem, które mi na myśl przychodzi może być pętla WHILE, lecz nie wiem jak załatwić odczytywanie ze strumienia i wykorzystywanie tego co odczytałem w moim skrypcie.

Oczywiście nie musi być to enter, aczkolwiek pewnie w skrypcie będzie to bez znaczenia bo i tak będę sprawdzał po kodzie znaku (więc czy to enter czy jakaś cyfra to 'wsio ryba').


edit: Próbowałem okiełznać sytuację przez zwykłe 'read' lecz niestety nie zdaje to rezultatu gdyż skrypt odpalam w innej sesji (zdalnie przez ssh). Czy pokombinowanie z file descriptor fd to słuszny kierunek ?

Ostatnio edytowany przez hobbit (2010-03-22 22:45:56)

Offline

 

#4  2010-03-24 17:09:13

  urbinek - Dzban Naczelny

urbinek
Dzban Naczelny
Skąd: Sosnowiec
Zarejestrowany: 2009-10-01
Serwis

Re: Startowanie skryptu wciśnięciem klawisza

a może program KeyTouch ?
dobrze sprawdza sie z klawiszami specjalnymi, zwykle tez pewnie obsłuży


A w wolnym czasie, robię noże :)
http://nginx.urbinek.eu/_photos/signature.png

Offline

 

#5  2010-03-27 00:29:01

  bercik - Moderator Mamut

bercik
Moderator Mamut
Skąd: Warszawa
Zarejestrowany: 2006-09-23
Serwis

Re: Startowanie skryptu wciśnięciem klawisza

@Minio - da sie to robic czysto softwerowo ... w najgorszym wypadku nalezaloby zabronic obslugi tej klawiatury standarowemu sterownikowi jadra i uzyc do jej obslugi albo swoj modul jadra, albo z wykorzystaniem libusb ...

@hobbit - ja bym probowac oczekiwac na odpowiednie dane w odpowiednim /dev/input/eventX


"Wszyscy wiedzą, że czegoś zrobić nie można. Ale przypadkowo znajduje się jakiś nieuk, który tego nie wie. I on właśnie robi odkrycie." (A.Einstein)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)