chrome.usb

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 nowszy

    Czy 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 nowszy

    Limit 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 nowszy

    Cią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 nowszy

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

  • serialNumber

    ciąg znaków

    Chrome 46 lub nowszy

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

  • vendorId

    liczba

    Identyfikator dostawcy urządzenia.

  • wersja

    liczba

    Chrome 51 lub nowszy

    Wersja 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 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

    Wycofane

    Odpowiednik ustawienia DeviceFilter.productId.

  • vendorId

    number opcjonalny

    Wycofane

    Odpowiednik 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 nowszy

    Limit 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()

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

Wykonuje zbiorcze przenoszenie na określonym urządzeniu.

Parametry

Zwroty

  • Chrome w wersji 116 lub nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

claimInterface()

Obietnice
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

  • 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 nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

closeDevice()

Obietnice
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

Zwroty

  • Obietnica<void>

    Chrome w wersji 116 lub nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

controlTransfer()

Obietnice
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

Zwroty

  • Chrome w wersji 116 lub nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

findDevices()

Obietnice
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

Zwroty

  • Promise<ConnectionHandle[]>

    Chrome w wersji 116 lub nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

getConfiguration()

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

Pobiera opis konfiguracji dla aktualnie wybranej konfiguracji.

Parametry

Zwroty

  • Obietkwarzezerwacja<ConfigDescriptor>

    Chrome w wersji 116 lub nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

getConfigurations()

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

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

Parametry

Zwroty

  • Promise<ConfigDescriptor[]>

    Chrome w wersji 116 lub nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

getDevices()

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

Wypisuje podłączone urządzenia USB.

Parametry

  • 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

Zwroty

  • Obietnice<Device[]>

    Chrome w wersji 116 lub nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

getUserSelectedDevices()

Obietnice
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

  • Konfiguracja okna wyboru urządzenia.

  • wywołanie zwrotne

    function opcjonalny

    Parametr callback ma postać:

    (devices: Device[]) => void

Zwroty

  • Obietnice<Device[]>

    Chrome w wersji 116 lub nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

interruptTransfer()

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

Przeprowadza przenoszenie z przerwą na wskazanym urządzeniu.

Parametry

Zwroty

  • Chrome w wersji 116 lub nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

isochronousTransfer()

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

Przeprowadza transfer równoległy na określonym urządzeniu.

Parametry

Zwroty

  • Chrome w wersji 116 lub nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

listInterfaces()

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

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

Parametry

Zwroty

  • Chrome w wersji 116 lub nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

openDevice()

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

Otwiera urządzenie USB zwracane przez getDevices.

Parametry

Zwroty

  • Obietnica<ConnectionHandle>

    Chrome w wersji 116 lub nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

releaseInterface()

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

Wycofanie roszczenia dotyczącego interfejsu.

Parametry

  • 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 nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

requestAccess()

Obietnica Wycofane
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 nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

resetDevice()

Obietnice
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

  • 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 nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

setConfiguration()

Obietnice
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

  • 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 nowszej

    Obietnice są obsługiwane tylko w przypadku pliku manifestu w wersji 3 lub nowszej, na innych platformach należy używać wywołań zwrotnych.

setInterfaceAlternateSetting()

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

Wybiera alternatywne ustawienie w interfejsie wcześniej zajętym przez inną osobę.

Parametry

  • 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 nowszej

    Obietnice 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

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