Urządzenia z interfejsem użytkownika w internecie: kilka krótkich przykładów

Łączenie się z nietypowymi urządzeniami z poziomu aplikacji

Joe Medley
Joe Medley
Matt Reynolds
Matt Reynolds

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)

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.