chrome.usb

Opis

Interfejs API chrome.usb umożliwia interakcję z podłączonymi urządzeniami USB. Ten interfejs API zapewnia dostęp do operacji USB z poziomu aplikacji. Za jego pomocą 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 wykonywanie zwykłego wywołania zwrotnego funkcji. W tym przypadku standardowe parametry wywołania zwrotnego nie będą określone.

Uprawnienia

usb

Typy

ConfigDescriptor

Właściwości

  • aktywna

    boolean

    Chrome 47 i nowsze wersje

    Czy jest to konfiguracja aktywna?

  • configurationValue

    Liczba

    Numer konfiguracji.

  • opis

    ciąg znaków opcjonalny

    Opis konfiguracji.

  • extra_data

    ArrayBuffer

    Dodatkowe dane deskryptora powiązane z tą konfiguracją.

  • interfejsy

    Dostępne interfejsy.

  • maxPower

    Liczba

    Maksymalna moc potrzebna przez to urządzenie w miliampach (mA).

  • remoteWakeup

    boolean

    Urządzenie obsługuje zdalne wybudzanie.

  • selfPowered

    boolean

    Urządzenie jest zasilane samodzielnie.

ConnectionHandle

Właściwości

  • nick

    Liczba

    Nieprzezroczysty uchwyt reprezentujący to połączenie z urządzeniem USB oraz wszystkie powiązane zgłoszone interfejsy i oczekujące transfery. Przy każdym uruchomieniu urządzenia tworzony jest nowy nick. Uchwyt połączenia jest inny niż Device.device.

  • productId

    Liczba

    Identyfikator produktu.

  • vendorId

    Liczba

    Identyfikator dostawcy urządzenia.

ControlTransferInfo

Właściwości

  • dane

    Tablica SlateBuffer opcjonalna

    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.

  • length

    Liczba opcjonalnie

    Maksymalna liczba bajtów do odebrania (wymagana tylko w przypadku transferów danych wejściowych).

  • obdarowany

    Cel transferu. Cel podany przez index musi zostać zarezerwowany, jeśli "interface" lub "endpoint".

  • Poproś

    Liczba

    Pole bRequest: patrz specyfikacja specyfikacji uniwersalnej magistrali szeregowej w wersji 1.1 § 9.3.

  • requestType

    Typ żądania.

  • przerwa w grze

    Liczba opcjonalnie

    Chrome 43 i nowsze wersje

    Limit czasu żądania (w milisekundach). Wartość domyślna 0 oznacza brak limitu czasu.

  • value

    Liczba

    Pole wValue patrz Ibid.

Device

Właściwości

  • urządzenie

    Liczba

    Nieprzezroczysty identyfikator urządzenia USB. Pozostanie niezmieniona, dopóki urządzenie nie zostanie odłączone.

  • manufacturerName

    string,

    Chrome 46 i nowsze wersje

    Ciąg znaków iManufacturer odczytany z urządzenia (jeśli jest dostępny).

  • productId

    Liczba

    Identyfikator produktu.

  • productName

    string,

    Chrome 46 i nowsze wersje

    Ciąg iProduct odczytywany z urządzenia (jeśli jest dostępny).

  • serialNumber

    string,

    Chrome 46 i nowsze wersje

    Ciąg iSerialNumber odczytywany z urządzenia (jeśli jest dostępny).

  • vendorId

    Liczba

    Identyfikator dostawcy urządzenia.

  • wersja

    Liczba

    Chrome 51 i nowsze wersje

    Wersja urządzenia (pole bcdDevice).

DeviceFilter

Właściwości

  • interfaceClass

    Liczba opcjonalnie

    Klasa interfejsu USB, pasuje do dowolnego interfejsu na urządzeniu.

  • interfaceProtocol

    Liczba opcjonalnie

    Protokół interfejsu USB, sprawdzany tylko wtedy, gdy podklasa interfejsu jest zgodna.

  • interfaceSubclass

    Liczba opcjonalnie

    Podklasa interfejsu USB: zaznaczona tylko wtedy, gdy klasa interfejsu jest zgodna.

  • productId

    Liczba opcjonalnie

    Identyfikator produktu na urządzeniu – sprawdzany tylko wtedy, gdy identyfikator dostawcy jest taki sam.

  • vendorId

    Liczba opcjonalnie

    Identyfikator dostawcy urządzenia.

DevicePromptOptions

Właściwości

  • filtry

    DeviceFilter[] opcjonalny

    Przefiltruj listę urządzeń prezentowanych użytkownikowi. Jeśli podasz wiele filtrów, wyświetlą się urządzenia pasujące do dowolnego z filtrów.

  • Wiele

    wartość logiczna opcjonalna

    Zezwalaj użytkownikowi na wybranie kilku urządzeń.

Direction

Direction, Recipient, RequestType i TransferType są mapowane na swoje nazwy w specyfikacji USB.

Enum

EndpointDescriptor

Właściwości

  • adres

    Liczba

    Adres punktu końcowego.

  • direction

    Kierunek przenoszenia.

  • extra_data

    ArrayBuffer

    Dodatkowe dane deskryptora powiązane z tym punktem końcowym.

  • maximumPacketSize

    Liczba

    Maksymalny rozmiar pakietu.

  • pollingInterval

    Liczba opcjonalnie

    Okres odpytywania (tylko przerwy i izochroniczne).

  • synchronizacja

    Tryb synchronizacji transferu (tylko izochroniczny).

  • Typ transferu.

  • wykorzystanie

    UsageType opcjonalnie

    Podpowiedź dotycząca użycia punktu końcowego.

EnumerateDevicesAndRequestAccessOptions

Właściwości

  • interfaceId

    Liczba opcjonalnie

    Identyfikator interfejsu, do którego chcesz uzyskać dostęp. Funkcja dostępna tylko w systemie operacyjnym Chrome. 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[] opcjonalny

    Zwrócone zostanie urządzenie pasujące do dowolnego z filtrów. Jeśli lista filtrów będzie pusta, zobaczysz wszystkie urządzenia, do których aplikacja ma uprawnienia.

  • productId

    Liczba opcjonalnie

    Wycofano

    Odpowiednik ustawienia DeviceFilter.productId.

  • vendorId

    Liczba opcjonalnie

    Wycofano

    Odpowiednik ustawienia DeviceFilter.vendorId.

GenericTransferInfo

Właściwości

  • dane

    Tablica SlateBuffer opcjonalna

    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ć zarezerwowany.

  • length

    Liczba opcjonalnie

    Maksymalna liczba bajtów do odebrania (wymagana tylko w przypadku transferów danych wejściowych).

  • przerwa w grze

    Liczba opcjonalnie

    Chrome 43 i nowsze wersje

    Limit czasu żądania (w milisekundach). Wartość domyślna 0 oznacza brak limitu czasu.

InterfaceDescriptor

Właściwości

  • alternateSetting

    Liczba

    Numer alternatywnego ustawienia interfejsu (wartość domyślna to 0).

  • opis

    ciąg znaków opcjonalny

    Opis interfejsu.

  • punkty końcowe

    Dostępne punkty końcowe.

  • extra_data

    ArrayBuffer

    Dodatkowe dane deskryptora 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 tym transferze.

  • pakiety

    Liczba

    Łączna liczba pakietów w tym transferze.

  • transferInfo

    Parametry transferu. Długość transferu lub bufor danych określone w tym bloku parametrów są dzielone wzdłuż granic packetLength, aby utworzyć pojedyncze pakiety transferu.

Recipient

Enum

RequestType

Enum

"class"

SynchronizationType

W przypadku trybów przerwanych i izoochronnych wartości SynchronizationType i UsageType są mapowane na ich nazwy w specyfikacji USB.

Enum

TransferResultInfo

Właściwości

  • dane

    Tablica SlateBuffer opcjonalna

    Dane zwrócone przez transfer danych wejściowych. undefined na potrzeby transferów danych wyjściowych.

  • resultCode

    Liczba opcjonalnie

    Wartość 0 oznacza, że przeniesienie zostało zakończone. Inne wartości wskazują na niepowodzenie.

TransferType

Enum

"control"

"bulk"

UsageType

Enum

"explicitFeedback"

"notification"

Metody

bulkTransfer()

Obietnica
chrome.usb.bulkTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

Wykonuje przesyłanie zbiorcze na określonym urządzeniu.

Parametry

Akcje powrotne

  • Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

claimInterface()

Obietnica
chrome.usb.claimInterface(
  handle: ConnectionHandle,
  interfaceNumber: number,
  callback?: function,
)

deklaruje dostęp do interfejsu na urządzeniu USB. Zanim dane będą mogły zostać przeniesione do interfejsu lub powiązanych punktów końcowych, trzeba uzyskać dostęp do tego interfejsu. Tylko 1 nick połączenia może zgłosić prawa do interfejsu w danym momencie. Jeśli dostęp do interfejsu został już zarezerwowany, to wywołanie się nie uda.

Narzędzie releaseInterface należy wywołać, gdy interfejs nie jest już potrzebny.

Parametry

  • Otwarte połączenie z urządzeniem.

  • interfaceNumber

    Liczba

    Interfejs, który chcesz zarezerwować.

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    ()=>void

Akcje powrotne

  • Promise<void>

    Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

closeDevice()

Obietnica
chrome.usb.closeDevice(
  handle: ConnectionHandle,
  callback?: function,
)

Zamyka uchwyt połączenia. Wywoływanie operacji na nicku po jego zamknięciu to bezpieczna operacja, ale nie powoduje żadnych działań.

Parametry

Akcje powrotne

  • Promise<void>

    Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

controlTransfer()

Obietnica
chrome.usb.controlTransfer(
  handle: ConnectionHandle,
  transferInfo: ControlTransferInfo,
  callback?: function,
)

Przeprowadza kontrolę nad transferem na określonym urządzeniu.

Przenoszenie elementów sterujących odnosi się do urządzenia, interfejsu lub punktu końcowego. Przenoszenie do interfejsu lub punktu końcowego wymaga rezerwacji interfejsu.

Parametry

Akcje powrotne

  • Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

findDevices()

Obietnica
chrome.usb.findDevices(
  options: EnumerateDevicesAndRequestAccessOptions,
  callback?: function,
)

Znajduje urządzenia USB określone przez identyfikatory dostawcy, produktu i (opcjonalnie) interfejsu oraz czy uprawnienia pozwalają na ich otwarcie 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 z wywołaniem metody getDevices, a następnie instrukcji openDevice w przypadku każdego urządzenia.

Parametry

Akcje powrotne

  • Promise<ConnectionHandle[]>

    Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

getConfiguration()

Obietnica
chrome.usb.getConfiguration(
  handle: ConnectionHandle,
  callback?: function,
)

Pobiera deskryptor konfiguracji dla obecnie wybranej konfiguracji.

Parametry

Akcje powrotne

  • Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

getConfigurations()

Obietnica Chrome 47 lub nowsza
chrome.usb.getConfigurations(
  device: Device,
  callback?: function,
)

Zwraca pełny zbiór deskryptorów konfiguracji urządzenia.

Parametry

Akcje powrotne

  • Promise<ConfigDescriptor[]>

    Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

getDevices()

Obietnica
chrome.usb.getDevices(
  options: EnumerateDevicesOptions,
  callback?: function,
)

Określa podłączone urządzenia USB.

Parametry

  • Właściwości do wyszukiwania na urządzeniach docelowych.

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    (devices: Device[])=>void

Akcje powrotne

  • Obietnica<urządzenie[]>

    Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

getUserSelectedDevices()

Obietnica
chrome.usb.getUserSelectedDevices(
  options: DevicePromptOptions,
  callback?: function,
)

Wyświetla użytkownikowi selektor urządzenia i zwraca wybrane elementy (Device). Jeśli użytkownik anuluje, selektory będą puste. Do wyświetlenia okna wymagany jest gest użytkownika. Bez gestu użytkownika wywołanie zwrotne będzie działać tak, jakby użytkownik je anulował.

Parametry

  • Konfiguracja okna wyboru urządzeń.

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    (devices: Device[])=>void

Akcje powrotne

  • Obietnica<urządzenie[]>

    Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

interruptTransfer()

Obietnica
chrome.usb.interruptTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

Wykonuje przerwanie przesyłania na określonym urządzeniu.

Parametry

Akcje powrotne

  • Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

isochronousTransfer()

Obietnica
chrome.usb.isochronousTransfer(
  handle: ConnectionHandle,
  transferInfo: IsochronousTransferInfo,
  callback?: function,
)

Wykonuje transfer izochroniczny na konkretnym urządzeniu.

Parametry

Akcje powrotne

  • Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

listInterfaces()

Obietnica
chrome.usb.listInterfaces(
  handle: ConnectionHandle,
  callback?: function,
)

Wyświetla listę wszystkich interfejsów na urządzeniu USB.

Parametry

Akcje powrotne

  • Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

openDevice()

Obietnica
chrome.usb.openDevice(
  device: Device,
  callback?: function,
)

Otwiera urządzenie USB zwrócone przez getDevices.

Parametry

Akcje powrotne

  • Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

releaseInterface()

Obietnica
chrome.usb.releaseInterface(
  handle: ConnectionHandle,
  interfaceNumber: number,
  callback?: function,
)

Zwalnia zadeklarowany interfejs.

Parametry

  • Otwarte połączenie z urządzeniem.

  • interfaceNumber

    Liczba

    Interfejs, który zostanie udostępniony.

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    ()=>void

Akcje powrotne

  • Promise<void>

    Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

requestAccess()

Obietnica Wycofano
chrome.usb.requestAccess(
  device: Device,
  interfaceId: number,
  callback?: function,
)

Ta funkcja dotyczyła tylko ChromeOS, a wywołanie jej 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ń dostęp do urządzenia zarezerwowanego przez system operacyjny Chrome, jeśli dany interfejs na urządzeniu nie został zarezerwowany.

Parametry

  • urządzenie

    Device, do którego należy poprosić o dostęp.

  • interfaceId

    Liczba

    Żądany interfejs.

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    (success: boolean)=>void

    • sukces

      boolean

Akcje powrotne

  • Promise<boolean>

    Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

resetDevice()

Obietnica
chrome.usb.resetDevice(
  handle: ConnectionHandle,
  callback?: function,
)

Próbuje zresetować urządzenie USB. Jeśli resetowanie się nie uda, podany uchwyt połączenia zostanie zamknięty, a urządzenie USB będzie wyglądać tak, jakby zostało odłączone, a następnie podłączone ponownie. W takim przypadku w celu pozyskania urządzenia należy wywołać jeszcze raz getDevices lub findDevices.

Parametry

  • Uchwyt połączenia do zresetowania.

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    (success: boolean)=>void

    • sukces

      boolean

Akcje powrotne

  • Promise<boolean>

    Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

setConfiguration()

Obietnica
chrome.usb.setConfiguration(
  handle: ConnectionHandle,
  configurationValue: number,
  callback?: function,
)

Wybierz konfigurację urządzenia.

Ta funkcja powoduje zresetowanie urządzenia przez wybranie jednej z dostępnych konfiguracji. Prawidłowe są tylko wartości konfiguracyjne większe niż 0, jednak niektóre urządzenia z błędami mają działającą konfigurację 0, więc ta wartość jest dozwolona.

Parametry

  • Otwarte połączenie z urządzeniem.

  • configurationValue

    Liczba

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    ()=>void

Akcje powrotne

  • Promise<void>

    Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

setInterfaceAlternateSetting()

Obietnica
chrome.usb.setInterfaceAlternateSetting(
  handle: ConnectionHandle,
  interfaceNumber: number,
  alternateSetting: number,
  callback?: function,
)

Wybiera alternatywne ustawienie interfejsu, do którego zgłoszono prawa.

Parametry

  • Otwarte połączenie z urządzeniem, do którego zgłoszono prawa do tego interfejsu.

  • interfaceNumber

    Liczba

    Interfejs do skonfigurowania.

  • alternateSetting

    Liczba

    Ustawienie alternatywne do skonfigurowania.

  • wywołanie zwrotne

    funkcja opcjonalnie

    Parametr callback wygląda tak:

    ()=>void

Akcje powrotne

  • Promise<void>

    Chrome 116 i nowsze wersje

    Obietnice są obsługiwane tylko w przypadku platformy Manifest V3 i nowszych platform. Inne platformy muszą używać wywołań zwrotnych.

Wydarzenia

onDeviceAdded

chrome.usb.onDeviceAdded.addListener(
  callback: function,
)

Zdarzenie generowane po dodaniu urządzenia do systemu. Wydarzenia są transmitowane tylko do aplikacji i rozszerzeń, które mają uprawnienia dostępu do urządzenia. Uprawnienia mogły zostać przyznane podczas instalacji, gdy użytkownik zaakceptował opcjonalne uprawnienia (patrz permissions.request) lub za pomocą getUserSelectedDevices.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

    (device: Device)=>void

onDeviceRemoved

chrome.usb.onDeviceRemoved.addListener(
  callback: function,
)

Zdarzenie generowane, gdy urządzenie zostanie usunięte z systemu. Zobacz onDeviceAdded, w przypadku których zdarzenia są dostarczane.

Parametry

  • wywołanie zwrotne

    funkcja

    Parametr callback wygląda tak:

    (device: Device)=>void