Mis on WebUSB API?

WebUSB API on brauseri standard, mis võimaldab veebilehtedel suhelda otse USB-seadmetega — ilma kohalike draiverite või töölauarakenduste paigaldamiseta. See tutvustati Chrome'i versioonis 61 ja annab veebisaitidele kontrollitud, loa-põhise juurdepääsu riistvarale, nagu mikrokontrollerid, arendusplaadid, MIDI-liidesed ja muud USB-seadmed.

Erinevalt traditsioonilistest USB-juurdepääsust (mis nõuab kerneli taseme draiverieid) töötab WebUSB täielikult brauseri liivakastis. Kasutajad peavad selgesõnaliselt andma loa igale seadmele brauseri sisseehitatud seadmete valija kaudu, mis tagab, et ükski veebisait ei saa vaikselt teie riistvarast lugeda ega sinna kirjutada.

Tööriista kirjeldus

See tööriist võimaldab teil loetleda USB-seadmeid, millele on brauseri kaudu WebUSB API-ga juurdepääs antud. Laadimisel loetleb see automaatselt kõik varem lubatud seadmed. Samuti saate avada brauseri kohalikku USB-valija, et anda juurdepääs äsja ühendatud seadmele, või värskendada loendit igal ajal.

Iga seadme puhul kuvab tööriist toote nime, tootjat, müüja ID-d, toote ID-d, seerianumbrit ja USB-protokolli versiooni.

Funktsioonid

  • Automaatselt laadib varem lubatud USB-seadmed lehe avamisel
  • Avab brauseri kohaliku USB-seadmete valija, et anda juurdepääs uutele seadmetele
  • Kuvab müüja ID-d ja toote ID-d standardses kuueteistkümnendsüsteemi märkimisel (nt 0x1A2B)
  • Näitab USB-protokolli versiooni (nt 2.0, 3.1) koos seadme identiteedi väljadega
  • Sorteeritav tulemuste tabel CSV ja JSON eksportimisega

Kuidas see toimib

Kui klõpsate Lisa seade, kutsub brauser navigator.usb.requestDevice() ja kuvab süsteemi taseme valija, mis loetleb ühendatud USB-seadmeid. Kui valite ühe, salvestab brauser selle päritolu loa. Järgmistel külastustel (või pärast Värskenda klõpsamist) tagastab navigator.usb.getDevices() kõik varem lubatud seadmed ilma uuesti küsimata.

Müüja ID ja toote ID kuvatakse 4-kohalises suurtähtedega kuueteistkümnendsüsteemis (nt 0x04D8) — standardne vorming, mida kasutatakse USB-registrites ja andmelehtedes.

Kasutamise juhtumid

  • Püsivara arendajad saavad kiiresti kinnitada, et ühendatud mikrokontroller või arendusplaat (Arduino, STM32, RP2040 jne) on brauseri poolt õigesti loetletud, enne kui kirjutavad WebUSB-põhist vilkumistööriista.
  • Veebirakenduste arendajad saavad kontrollida, et nende WebUSB-võimaldatud rakendus näeb oodatud seadme identiteedi välju varase prototüüpimise etapis.

Piirangud

  • WebUSB on toetatud ainult Chromium-põhistel brauseritel (Chrome, Edge, Opera). Firefox ja Safari ei rakenda seda API-t.
  • Leht peab olema serveeritud HTTPS-i kaudu (või localhost) — WebUSB on blokeeritud tavalisel HTTP-päritolul.
  • Mõned operatsioonisüsteemi ja brauseri kombinatsioonid piiravad juurdepääsu teatud seadmeklassidele (nt HID, massmälu) isegi siis, kui load on antud.
  • See tööriist loeb ainult seadme metaandmeid; see ei ava ühtegi USB-liidest ega kanna andmeid seadmele/seadmest.