Łączenie się z nietypowymi urządzeniami z poziomu aplikacji
Czym jest interfejs WebHID API?
Wiele urządzeń HID jest zbyt nowych, zbyt starych lub zbyt rzadko używanych, aby można było uzyskać do nich dostęp za pomocą sterowników urządzeń systemowych. Interfejs WebHID API rozwiązuje ten problem, umożliwiając implementowanie logiki specyficznej dla urządzenia w JavaScript.
Sugerowane przypadki użycia interfejsu WebHID API
Urządzenie HID odbiera dane wejściowe od ludzi lub przekazuje im dane wyjściowe. Przykłady urządzeń to klawiatury, urządzenia wskazujące (myszy, ekrany dotykowe itp.) i gamepady. Protokół HID umożliwia dostęp do tych urządzeń na komputerach stacjonarnych za pomocą sterowników systemu operacyjnego. Platforma internetowa obsługuje urządzenia HID, korzystając z tych sterowników.
Brak możliwości dostępu do nietypowych urządzeń HID jest szczególnie uciążliwy w przypadku obsługi gamepadów. Gamepady przeznaczone na komputery często używają protokołu HID do obsługi danych wejściowych (przyciski, joysticki, spusty) i wyjściowych (diody LED, wibracje). Dane wejściowe i wyjściowe gamepadów nie są jednak dobrze ustandaryzowane, a przeglądarki często wymagają niestandardowej logiki dla konkretnych urządzeń. Jest to nie do utrzymania i powoduje słabą obsługę starszych i nietypowych urządzeń. Powoduje też, że przeglądarka jest zależna od dziwnych zachowań konkretnych urządzeń.
Wersje demonstracyjne
Jeśli chcesz dowiedzieć się, jak działają te przykłady, kod źródłowy wszystkich z nich jest dostępny na GitHubie. W wyjaśnieniu znajduje się prosty przykład kodu.
Podświetlenie klawiatury MacBooka Pro
Największą przeszkodą w wypróbowaniu tych wersji demonstracyjnych jest brak dostępu do urządzenia. Jeśli jednak masz MacBooka Pro z paskiem Touch Bar, nie musisz niczego kupować. Ta wersja demonstracyjna umożliwia korzystanie z interfejsu API bezpośrednio z laptopa. Pokazuje też, jak można używać interfejsu WebHID do odblokowywania funkcji wbudowanych urządzeń, a nie tylko urządzeń peryferyjnych.
Autor: FWeinb
Wersja demonstracyjna/źródło: Keyboard Backlight
Kontrolery do gier
Bezprzewodowy kontroler PlayStation 4
Następny przykład jest przeznaczony dla mniejszej grupy użytkowników. DualShock 4 firmy Sony to bezprzewodowy kontroler do konsol PlayStation 4.
Wersja demonstracyjna DualShock 4 używa interfejsu WebHID do odbierania surowych raportów wejściowych z DualShock 4 i udostępnia interfejs API wysokiego poziomu do uzyskiwania dostępu do żyroskopu, akcelerometru, touchpada, przycisków i joysticków kontrolera. Obsługuje też wibracje i ustawianie koloru diody RGB w kontrolerze.
Autor: TheBITLINK
Wersja demonstracyjna: DualShock 4 Demo (źródło)
Kontrolery Nintendo Switch Joy-Con
Zagraj w grę offline z dinozaurem 🦖 w Chrome, skacząc z kontrolerem Nintendo Switch Joy-Con w kieszeni. Ta wersja demonstracyjna jest obsługiwana przez Joy-Con WebHID, sterownik WebHID dla kontrolerów Nintendo Switch Joy-Con.
Autor: Thomas Steiner
Wersja demonstracyjna: dinozaur w Chrome WebHID
(źródło wersji demonstracyjnej,
źródło sterownika)
Pasek BlinkStick
BlinkStick Strip to pasek świetlny zgodny z HID z 8 diodami RGB. Wersja demonstracyjna umożliwia użytkownikowi wybieranie spośród kilku wzorów migania, w tym pościgu, migania i skanera Larsona (znanego też jako Cylon).
Autor: Robat Williams
Wersja demonstracyjna: blinkstick-strip (źródło)
Miganie
Co robi ta wersja demonstracyjna? (Chwila cierpliwości) Miga. W rzeczywistości są to 3 wersje demonstracyjne, które używają lampki powiadomień USB blink(1).
blink(1) jest prosty i dobrze udokumentowany, co czyni go doskonałym wyborem na początek pracy z HID.
Autor: Tod E. Kurt
Wersje demonstracyjne: blink(1) (źródło)
Podziękowania
Dziękujemy Pete'owi LePage'owi i Kayce Basques.