Opis
Użyj interfejsu API chrome.usb
, aby komunikować się z podłączonymi urządzeniami USB. Ten interfejs API zapewnia dostęp do operacji USB w kontekście aplikacji. Dzięki niemu aplikacje mogą działać jako sterowniki urządzeń sprzętowych. Błędy generowane przez ten interfejs API są zgłaszane przez ustawienie runtime.lastError
i wykonanie zwykłej funkcji wywołania zwrotnego. W tym przypadku zwykłe parametry wywołania zwrotnego będą nieokreślone.
Uprawnienia
usb
Typy
ConfigDescriptor
Właściwości
-
aktywna
wartość logiczna
Chrome 47 lub nowszyCzy to jest aktywna konfiguracja?
-
configurationValue
liczba
Numer konfiguracji.
-
opis
ciąg znaków opcjonalny
Opis konfiguracji.
-
extra_data
ArrayBuffer
dodatkowe dane opisowe powiązane z tą konfiguracją.
-
interfejsy
Dostępne interfejsy
-
maxPower
liczba
Maksymalna moc wymagana przez to urządzenie w miliamperach (mA).
-
remoteWakeup
wartość logiczna
Urządzenie obsługuje budzenie zdalnie.
-
selfPowered
wartość logiczna
Urządzenie jest zasilane z własnego źródła.
ConnectionHandle
Właściwości
-
nick
liczba
Nieprzezroczysty uchwyt reprezentujący to połączenie z urządzeniem USB oraz wszystkie powiązane interfejsy i oczekujące transfery. Przy każdym otwarciu urządzenia tworzony jest nowy identyfikator. Identyfikator połączenia różni się od
Device.device
. -
productId
liczba
Identyfikator produktu.
-
vendorId
liczba
Identyfikator dostawcy urządzenia.
ControlTransferInfo
Właściwości
-
dane
ArrayBuffer opcjonalny
Dane do przesłania (wymagane tylko w przypadku przesyłania danych wyjściowych).
-
direction
Kierunek przenoszenia (
"in"
lub"out"
). -
indeks
liczba
Pole
wIndex
: patrz Ibid. -
długość
number opcjonalny
Maksymalna liczba bajtów do odebrania (wymagane tylko przez transfery danych wejściowych).
-
obdarowany
Docelowy obiekt przeniesienia. Docelowy element z wartością
index
musi zostać zgłoszony, jeśli jest to"interface"
lub"endpoint"
. -
żądanie
liczba
Pole
bRequest
: patrz specyfikacja Universal Serial Bus w wersji 1.1, sekcja 9.3. -
requestType
Typ prośby.
-
czas oczekiwania
number opcjonalny
Chrome 43 lub nowszyLimit czasu żądania (w milisekundach). Wartość domyślna
0
oznacza brak limitu czasu. -
wartość
liczba
Pole
wValue
: patrz Ibid.
Device
Właściwości
-
urządzenie
liczba
Nieprzezroczysty identyfikator urządzenia USB. Pozostanie niezmieniona, dopóki nie odłączysz urządzenia.
-
manufacturerName
ciąg znaków
Chrome 46 lub nowszyCiąg znaków iManufacturer odczytany z urządzenia (jeśli jest dostępny).
-
productId
liczba
Identyfikator produktu.
-
nazwaProduktu
ciąg znaków
Chrome 46 lub nowszyCiąg znaków iProduct odczytany z urządzenia (jeśli jest dostępny).
-
serialNumber
ciąg znaków
Chrome 46 lub nowszyCiąg znaków iSerialNumber odczytany z urządzenia (jeśli jest dostępny).
-
vendorId
liczba
Identyfikator dostawcy urządzenia.
-
wersja
liczba
Chrome 51 lub nowszyWersja urządzenia (pole bcdDevice).
DeviceFilter
Właściwości
-
interfaceClass
number opcjonalny
Klasa interfejsu USB, która pasuje do dowolnego interfejsu na urządzeniu.
-
interfaceProtocol
number opcjonalny
Protokół interfejsu USB, sprawdzany tylko wtedy, gdy podklasa interfejsu jest zgodna.
-
interfaceSubclass
number opcjonalny
Podklasa interfejsu USB, zaznaczona tylko wtedy, gdy klasa interfejsu jest zgodna.
-
productId
number opcjonalny
Identyfikator produktu urządzenia, sprawdzany tylko wtedy, gdy identyfikator producenta jest zgodny.
-
vendorId
number opcjonalny
Identyfikator dostawcy urządzenia.
DevicePromptOptions
Właściwości
-
filtry
DeviceFilter[] opcjonalnie
Filtrowanie listy urządzeń wyświetlanych użytkownikowi. Jeśli podano kilka filtrów, wyświetlane będą urządzenia pasujące do dowolnego z nich.
-
wiele
wartość logiczna opcjonalna
Zezwalanie użytkownikowi na wybranie kilku urządzeń.
Direction
Wartości Direction, Recipient, RequestType i TransferType są mapowane na ich odpowiedniki w specyfikacji USB.
Typ wyliczeniowy
„in”
„out”
EndpointDescriptor
Właściwości
-
adres
liczba
Adres punktu końcowego.
-
direction
Przenoszenie kierunku.
-
extra_data
ArrayBuffer
Dodatkowe dane opisowe powiązane z tym punktem końcowym.
-
maximumPacketSize
liczba
Maksymalny rozmiar pakietu.
-
pollingInterval
number opcjonalny
Interwał próbkowania (tylko w przypadku przerw i przekazów synchronicznych).
-
synchronizacja
SynchronizationType opcjonalnie
Tryb synchronizacji transferu (tylko synchroniczny).
-
typ
Typ przeniesienia.
-
użycie
UsageType opcjonalny
Wskazówka dotycząca korzystania z punktu końcowego.
EnumerateDevicesAndRequestAccessOptions
Właściwości
-
interfaceId
number opcjonalny
Identyfikator interfejsu, do którego chcesz uzyskać dostęp. Dostępne tylko w ChromeOS. Nie ma to wpływu na inne platformy.
-
productId
liczba
Identyfikator produktu.
-
vendorId
liczba
Identyfikator dostawcy urządzenia.
EnumerateDevicesOptions
Właściwości
-
filtry
DeviceFilter[] opcjonalnie
Zwrócone zostanie urządzenie pasujące do dowolnego filtra. Pusty filtr zwróci wszystkie urządzenia, do których aplikacja ma uprawnienia.
-
productId
number opcjonalny
WycofaneOdpowiednik ustawienia
DeviceFilter.productId
. -
vendorId
number opcjonalny
WycofaneOdpowiednik ustawienia
DeviceFilter.vendorId
.
GenericTransferInfo
Właściwości
-
dane
ArrayBuffer opcjonalny
Dane do przesłania (wymagane tylko w przypadku przesyłania danych wyjściowych).
-
direction
Kierunek przenoszenia (
"in"
lub"out"
). -
punkt końcowy
liczba
Adres docelowego punktu końcowego. Interfejs zawierający ten punkt końcowy musi być zgłoszony.
-
długość
number opcjonalny
Maksymalna liczba bajtów do odebrania (wymagane tylko przez transfery danych wejściowych).
-
czas oczekiwania
number opcjonalny
Chrome 43 lub nowszyLimit czasu żądania (w milisekundach). Wartość domyślna
0
oznacza brak limitu czasu.
InterfaceDescriptor
Właściwości
-
alternateSetting
liczba
Numer alternatywnego ustawienia interfejsu (domyślnie
0
-
opis
ciąg znaków opcjonalny
Opis interfejsu.
-
punktów końcowych.
Dostępne punkty końcowe
-
extra_data
ArrayBuffer
Dodatkowe dane opisowe powiązane z tym interfejsem.
-
interfaceClass
liczba
Klasa interfejsu USB.
-
interfaceNumber
liczba
Numer interfejsu.
-
interfaceProtocol
liczba
Protokół interfejsu USB.
-
interfaceSubclass
liczba
Podklasa interfejsu USB.
IsochronousTransferInfo
Właściwości
-
packetLength
liczba
Długość każdego pakietu w ramach tego transferu.
-
pakietów
liczba
Łączna liczba pakietów w tym transferze.
-
transferInfo
Parametry transferu. Długość transferu lub bufor danych określony w tym bloku parametrów jest dzielony na granicach
packetLength
, aby tworzyć poszczególne pakiety transferu.
Recipient
Typ wyliczeniowy
„device”
„interface”
"endpoint"
"inne"
RequestType
Typ wyliczeniowy
„standard”
„class”
„vendor”
„zarezerwowane”
SynchronizationType
W przypadku trybów przerywanego i izochronnego parametry SynchronizationType i UsageType są mapowane na ich odpowiedniki w specyfikacji USB.
Typ wyliczeniowy
„asynchronous”
„adaptive”
„synchroniczny”
TransferResultInfo
Właściwości
-
dane
ArrayBuffer opcjonalny
Dane zwrócone przez transfer danych wejściowych.
undefined
w przypadku transferów danych wyjściowych. -
resultCode
number opcjonalny
Wartość
0
wskazuje, że transfer się powiódł. Inne wartości wskazują na błąd.
TransferType
Typ wyliczeniowy
„control”
„interrupt”
„izochronny”
„bulk”
UsageType
Typ wyliczeniowy
„data”
„feedback”
"explicitFeedback"
„periodic”
„notification”
Metody
bulkTransfer()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Wykonuje zbiorcze przenoszenie na określonym urządzeniu.
Parametry
-
nick
otwarte połączenie z urządzeniem,
-
transferInfo
Parametry transferu.
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(info: TransferResultInfo) => void
-
informacje
-
Zwroty
-
Obietnica<TransferResultInfo>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
claimInterface()
chrome.usb.claimInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
Reklamuje interfejs na urządzeniu USB. Zanim dane zostaną przeniesione do interfejsu lub powiązanych punktów końcowych, interfejs musi zostać zgłoszony. W danym momencie tylko 1 identyfikator połączenia może zgłosić prawa do interfejsu. Jeśli interfejs jest już zajęty, wywołanie zakończy się niepowodzeniem.
Metoda releaseInterface
powinna zostać wywołana, gdy interfejs nie jest już potrzebny.
Parametry
-
nick
otwarte połączenie z urządzeniem,
-
interfaceNumber
liczba
Interfejs, do którego chcesz zgłosić prawa.
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:() => void
Zwroty
-
Obietnica<void>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
closeDevice()
chrome.usb.closeDevice(
handle: ConnectionHandle,
callback?: function,
)
Zamyka obiekt połączenia. Wywoływanie operacji na uchwycie po jego zamknięciu jest bezpieczną operacją, ale nie powoduje wykonania żadnego działania.
Parametry
-
nick
ConnectionHandle
, aby zamknąć. -
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:() => void
Zwroty
-
Obietnica<void>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
controlTransfer()
chrome.usb.controlTransfer(
handle: ConnectionHandle,
transferInfo: ControlTransferInfo,
callback?: function,
)
Przekazuje kontrolę nad określonym urządzeniem.
Przeniesienie kontroli dotyczy urządzenia, interfejsu lub punktu końcowego. Przeniesienie do interfejsu lub punktu końcowego wymaga zaznaczenia interfejsu.
Parametry
-
nick
otwarte połączenie z urządzeniem,
-
transferInfo
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(info: TransferResultInfo) => void
-
informacje
-
Zwroty
-
Obietnica<TransferResultInfo>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
findDevices()
chrome.usb.findDevices(
options: EnumerateDevicesAndRequestAccessOptions,
callback?: function,
)
Wykrywa urządzenia USB określone przez dostawcę, produkt i (opcjonalnie) identyfikatory interfejsu, a jeśli zezwalają na to uprawnienia, otwiera je do użycia.
Jeśli żądanie dostępu zostanie odrzucone lub nie uda się otworzyć urządzenia, uchwyt połączenia nie zostanie utworzony ani zwrócony.
Wywołanie tej metody jest równoważne wywołaniu getDevices
, a następnie openDevice
na każdym urządzeniu.
Parametry
-
Właściwości, których należy szukać na urządzeniach docelowych.
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(handles: ConnectionHandle[]) => void
-
uchwyty
-
Zwroty
-
Promise<ConnectionHandle[]>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
)
Pobiera opis konfiguracji dla aktualnie wybranej konfiguracji.
Parametry
-
nick
otwarte połączenie z urządzeniem,
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(config: ConfigDescriptor) => void
-
konfiguracja
-
Zwroty
-
Obietkwarzezerwacja<ConfigDescriptor>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
)
Zwraca pełny zestaw deskryptorów konfiguracji urządzenia.
Parametry
-
urządzenie
Device
, z którego pobierasz opisy. -
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(configs: ConfigDescriptor[]) => void
-
konfiguracje
-
Zwroty
-
Promise<ConfigDescriptor[]>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
)
Wypisuje podłączone urządzenia USB.
Parametry
-
Opcje
Właściwości, których należy szukać na urządzeniach docelowych.
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(devices: Device[]) => void
-
urządzenia
-
Zwroty
-
Obietnice<Device[]>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
getUserSelectedDevices()
chrome.usb.getUserSelectedDevices(
options: DevicePromptOptions,
callback?: function,
)
Wyświetla użytkownikowi selektor urządzeń i zwraca wybrane Device
. Jeśli użytkownik anuluje wybór, urządzenia będą puste. Aby wyświetlić okno, użytkownik musi wykonać określone działanie. Bez działania użytkownika wywołanie zwrotne zostanie wykonane tak, jakby użytkownik anulował działanie.
Parametry
-
Opcje
Konfiguracja okna wyboru urządzenia.
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(devices: Device[]) => void
-
urządzenia
-
Zwroty
-
Obietnice<Device[]>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
)
Przeprowadza przenoszenie z przerwą na wskazanym urządzeniu.
Parametry
-
nick
otwarte połączenie z urządzeniem,
-
transferInfo
Parametry transferu.
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(info: TransferResultInfo) => void
-
informacje
-
Zwroty
-
Promise<TransferResultInfo>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
)
Przeprowadza transfer równoległy na określonym urządzeniu.
Parametry
-
nick
otwarte połączenie z urządzeniem,
-
transferInfo
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(info: TransferResultInfo) => void
-
informacje
-
Zwroty
-
Obietnica<TransferResultInfo>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
)
Wyświetla listę wszystkich interfejsów na urządzeniu USB.
Parametry
-
nick
otwarte połączenie z urządzeniem,
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(descriptors: InterfaceDescriptor[]) => void
-
deskryptory
-
Zwroty
-
Promise<InterfaceDescriptor[]>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
)
Otwiera urządzenie USB zwracane przez getDevices
.
Parametry
-
urządzenie
Kliknij
Device
, aby otworzyć. -
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(handle: ConnectionHandle) => void
-
nick
-
Zwroty
-
Obietnica<ConnectionHandle>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
)
Wycofanie roszczenia dotyczącego interfejsu.
Parametry
-
nick
otwarte połączenie z urządzeniem,
-
interfaceNumber
liczba
Interfejs, który ma zostać udostępniony.
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:() => void
Zwroty
-
Obietnica<void>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
requestAccess()
chrome.usb.requestAccess(
device: Device,
interfaceId: number,
callback?: function,
)
Ta funkcja była specyficzna dla ChromeOS i jej wywołanie na innych platformach kończyło się niepowodzeniem. Ta operacja jest teraz wykonywana domyślnie w ramach funkcji openDevice
i zwraca wartość true
na wszystkich platformach.
Wysyła do brokera uprawnień żądanie dostępu do urządzenia zajętego przez Chrome OS, jeśli dany interfejs na urządzeniu nie jest zajęty.
Parametry
-
urządzenie
Device
, do którego chcesz uzyskać dostęp. -
interfaceId
liczba
Wybrany interfejs.
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(success: boolean) => void
-
sukces
wartość logiczna
-
Zwroty
-
Promise<boolean>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
resetDevice()
chrome.usb.resetDevice(
handle: ConnectionHandle,
callback?: function,
)
Próbuje zresetować urządzenie USB. Jeśli resetowanie się nie powiedzie, dany obiekt połączenia zostanie zamknięty, a urządzenie USB będzie wyglądać na odłączone, a następnie ponownie połączone. W takim przypadku należy ponownie wywołać funkcję getDevices
lub findDevices
, aby uzyskać urządzenie.
Parametry
-
nick
Uchwyt połączenia do zresetowania.
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:(success: boolean) => void
-
sukces
wartość logiczna
-
Zwroty
-
Promise<boolean>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
setConfiguration()
chrome.usb.setConfiguration(
handle: ConnectionHandle,
configurationValue: number,
callback?: function,
)
Wybierz konfigurację urządzenia.
Ta funkcja przywraca urządzenie do ustawień fabrycznych, wybierając jedną z dostępnych konfiguracji urządzenia. Dozwolone są tylko wartości konfiguracji większe niż 0
, ale niektóre urządzenia z błędami mają działającą konfigurację 0
, więc ta wartość jest dozwolona.
Parametry
-
nick
otwarte połączenie z urządzeniem,
-
configurationValue
liczba
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:() => void
Zwroty
-
Obietnica<void>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
setInterfaceAlternateSetting()
chrome.usb.setInterfaceAlternateSetting(
handle: ConnectionHandle,
interfaceNumber: number,
alternateSetting: number,
callback?: function,
)
Wybiera alternatywne ustawienie w interfejsie wcześniej zajętym przez inną osobę.
Parametry
-
nick
otwarte połączenie z urządzeniem, na którym zgłoszono ten interfejs;
-
interfaceNumber
liczba
Interfejs do skonfigurowania.
-
alternateSetting
liczba
Ustawienie alternatywne do skonfigurowania.
-
wywołanie zwrotne
function opcjonalny
Parametr
callback
ma postać:() => void
Zwroty
-
Obietnica<void>
Chrome w wersji 116 lub nowszejObietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.
Wydarzenia
onDeviceAdded
chrome.usb.onDeviceAdded.addListener(
callback: function,
)
Zdarzenie wygenerowane po dodaniu urządzenia do systemu. Zdarzenia są transmitowane tylko do aplikacji i rozszerzeń, które mają uprawnienia dostępu do urządzenia. Uprawnienia mogły zostać przyznane w momencie instalacji, gdy użytkownik zaakceptował opcjonalne uprawnienia (patrz permissions.request
) lub za pomocą getUserSelectedDevices
.
Parametry
-
wywołanie zwrotne
funkcja
Parametr
callback
ma postać:(device: Device) => void
-
urządzenie
-
onDeviceRemoved
chrome.usb.onDeviceRemoved.addListener(
callback: function,
)
Zdarzenie generowane, gdy urządzenie zostanie usunięte z systemu. Informacje o tym, które zdarzenia są dostarczane, znajdziesz w sekcji onDeviceAdded
.
Parametry
-
wywołanie zwrotne
funkcja
Parametr
callback
ma postać:(device: Device) => void
-
urządzenie
-