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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
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
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
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
@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
Offline
Strony: 1