19 sierpnia 2009, 01:48:36
Lenistwo matką wynalazków, czyli pliki HID w SE pod Linuksem.
Od dłuższego czasu marzyło się zdalne sterowanie komputerem. Najpierw skleciłem sobie odbiornik IR na port COM, według szeroko znanego projektu Igora Cesko. Jednak gdy zakupiłem notebooka, okazało się, że trzeba będzie znaleźć inną metodę. Jako szczęśliwy posiadacz SE k510i wyposażonego w Bluetooth, postanowiłem zwrócić się w tym kierunku.
Będąc zwolennikiem minimalizmu, zakupiłem na allegro perełkę dalekowschodniej myśli technicznej - miniaturowy adapter BT na USB. Na dysku laptopa rozsiadło się openSUSE, więc z obawą, ale również cichą nadzieją, podłączyłem dongla. Zdziwiłem się, bo zadziałał praktycznie "od kopa", wystarczyło uruchomić kbluetooth i sparować telefon. Co prawda zasięg nie należy do najlepszych ( 47% w odległości ~20 cm ), ale nie spodziewałem się cudów za moje ciężko zarobione 5,5 PLN :)
Po przydługim wstępie przechodzę do meritum. Otóż w moim telefonie odnalazłem funkcję "Sterowanie zdalne". Domyślnie miałem do dyspozycji trzy profile: Desktop, Media Player oraz Presenter. Pierwsze dwa wykazywały szczątkową funkcjonalność: poruszanie kursorem i klikanie - większość klawiszy pozostała niewykorzystana. Nieco lepiej działała obsługa prezentacji (w OO Impress). Niezrażony rozpocząłem proces googlania w poszukiwaniu wskazówek. Okazało się, iż producent udostępnia nawet specjalną aplikację do tworzenia profili HID (dla zainteresowanych: Bluetooth Remote Control), która podobno daje się uruchomić pod wine, ale nie jest zbyt przydatna, gdyż nie jest w stanie odczytać kodów klawiszy. Dla wyjaśnienia: działanie HID w tym przypadku polega na symulacji używania klawiatury. Ponowne zagłębienie się w czeluści Googla zaowocowało odnalezieniem pdfa dla developerów SE i sytuacja nieco się rozjaśniła.
Jak się okazuje, plik HID wysyłany do telefonu, to nic innego jak stare, dobre archiwum TAR, zawierające dwa pliki: jeden graficzny, wyświetlany na ekranie telefonu podczas używania oraz *.kcf - będący w istocie plikiem xml. Po uzyskaniu tych informacji, nie pozostało mi nic innego, jak tylko stworzyć własny plik HID, zainstalować go w telefonie i korzystając z długości przewodu słuchawek lec na łóżku, mając muzykę pod pełną kontrolą :).
Zaobserwowałem jednak dziwny problem. Wygląda na to, że przy zbyt częstym naciskaniu przycisków, software poddaje się. Kiedy na przykład używam kombinacji Meta + B zbyt intensywnie, pojawia się bbbbbbbbbbbb(...). Mam nadzieję, że uda się to obejść, jednak raczej już nie dziś :).