chroom.usb

Beschrijving

Gebruik de chrome.usb API om te communiceren met aangesloten USB-apparaten. Deze API biedt toegang tot USB-bewerkingen vanuit de context van een app. Met behulp van deze API kunnen apps fungeren als stuurprogramma's voor hardwareapparaten. Fouten die door deze API worden gegenereerd, worden gerapporteerd door runtime.lastError in te stellen en de reguliere callback van de functie uit te voeren. De reguliere parameters van de callback zullen in dit geval niet gedefinieerd zijn.

Toestemmingen

usb

Beschikbaarheid

alleen ChromeOS

Soorten

ConfigDescriptor

Eigenschappen

  • actief

    booleaans

    Chrome 47+

    Is dit de actieve configuratie?

  • configuratiewaarde

    nummer

    Het configuratienummer.

  • beschrijving

    string optioneel

    Beschrijving van de configuratie.

  • extra_data

    ArrayBuffer

    Extra beschrijvingsgegevens die bij deze configuratie horen.

  • interfaces

    Beschikbare interfaces.

  • maxPower

    nummer

    Het maximale vermogen dat dit apparaat nodig heeft in milliampère (mA).

  • remoteWakeup

    booleaans

    Het apparaat ondersteunt het op afstand inschakelen van de slaapstand.

  • zelfvoorzienend

    booleaans

    Het apparaat is zelfvoorzienend qua stroom.

ConnectionHandle

Eigenschappen

  • hendel

    nummer

    Een ondoorzichtige handle die deze verbinding met het USB-apparaat en alle bijbehorende geclaimde interfaces en lopende overdrachten vertegenwoordigt. Er wordt een nieuwe handle aangemaakt telkens wanneer het apparaat wordt geopend. De verbindingshandle is anders dan Device.device .

  • productId

    nummer

    Het product-ID.

  • leveranciers-ID

    nummer

    De leveranciers-ID van het apparaat.

ControlTransferInfo

Eigenschappen

  • gegevens

    ArrayBuffer optioneel

    De te verzenden gegevens (alleen vereist bij uitgaande overdrachten).

  • richting

    De overdrachtsrichting ( "in" of "out" ).

  • index

    nummer

    Het veld wIndex , zie Ibid .

  • lengte

    nummer optioneel

    Het maximale aantal te ontvangen bytes (alleen vereist voor inkomende gegevensoverdracht).

  • ontvanger

    Het overdrachtsdoel. Het doel dat door index wordt aangegeven, moet worden geclaimd als "interface" of "endpoint" .

  • verzoek

    nummer

    Het veld bRequest , zie Universal Serial Bus Specification Revision 1.1 § 9.3.

  • verzoektype

    Het type verzoek.

  • time-out

    nummer optioneel

    Chrome 43+

    Time-out voor de aanvraag (in milliseconden). De standaardwaarde 0 betekent geen time-out.

  • waarde

    nummer

    Het veld wValue , zie Ibid .

Device

Eigenschappen

  • apparaat

    nummer

    Een ondoorzichtige ID voor het USB-apparaat. Deze blijft ongewijzigd totdat het apparaat wordt losgekoppeld.

  • fabrikantnaam

    snaar

    Chrome 46+

    De iManufacturer-string die van het apparaat wordt uitgelezen, indien beschikbaar.

  • productId

    nummer

    Het product-ID.

  • productName

    snaar

    Chrome 46+

    De iProduct-string die van het apparaat wordt uitgelezen, indien beschikbaar.

  • serienummer

    snaar

    Chrome 46+

    De iSerialNumber-string die van het apparaat wordt uitgelezen, indien beschikbaar.

  • leveranciers-ID

    nummer

    De leveranciers-ID van het apparaat.

  • versie

    nummer

    Chrome 51+

    De apparaatversie (veld bcdDevice).

DeviceFilter

Eigenschappen

  • interfaceClass

    nummer optioneel

    USB-interfaceklasse, komt overeen met elke interface op het apparaat.

  • interfaceProtocol

    nummer optioneel

    USB-interfaceprotocol, alleen gecontroleerd als de interfacesubklasse overeenkomt.

  • interfaceSubklasse

    nummer optioneel

    Subklasse van de USB-interface, wordt alleen gecontroleerd als de interfaceklasse overeenkomt.

  • productId

    nummer optioneel

    Apparaatproduct-ID, wordt alleen gecontroleerd als de leveranciers-ID overeenkomt.

  • leveranciers-ID

    nummer optioneel

    Apparaatleveranciers-ID.

DevicePromptOptions

Eigenschappen

  • filters

    Apparaatfilter [] optioneel

    Filter de lijst met apparaten die aan de gebruiker wordt getoond. Als er meerdere filters worden opgegeven, worden apparaten weergegeven die aan een van de filters voldoen.

  • meerdere

    boolean optioneel

    Geef de gebruiker de mogelijkheid om meerdere apparaten te selecteren.

Direction

Direction, Recipient, RequestType en TransferType komen allemaal overeen met hun naamgenoten in de USB-specificatie.

Enum

"in"

"uit"

EndpointDescriptor

Eigenschappen

  • adres

    nummer

    Eindpuntadres.

  • richting

    Overdrachtsrichting.

  • extra_data

    ArrayBuffer

    Extra beschrijvende gegevens die aan dit eindpunt zijn gekoppeld.

  • maximale Pakketgrootte

    nummer

    Maximale pakketgrootte.

  • pollingInterval

    nummer optioneel

    Pollinginterval (alleen onderbroken en isochroon).

  • synchronisatie

    Overdrachtssynchronisatiemodus (alleen isochroon).

  • Overdrachtstype.

  • gebruik

    UsageType optioneel

    Gebruiksaanwijzing voor eindpunten.

EnumerateDevicesAndRequestAccessOptions

Eigenschappen

  • interfaceId

    nummer optioneel

    De interface-ID waartoe toegang moet worden aangevraagd. Alleen beschikbaar op Chrome OS. Heeft geen effect op andere platforms.

  • productId

    nummer

    Het product-ID.

  • leveranciers-ID

    nummer

    De leveranciers-ID van het apparaat.

EnumerateDevicesOptions

Eigenschappen

  • filters

    Apparaatfilter [] optioneel

    Een apparaat dat aan een bepaald filter voldoet, wordt geretourneerd. Een lege filterlijst retourneert alle apparaten waarvoor de app toestemming heeft.

  • productId

    nummer optioneel

    Verouderd

    Gelijkwaardig aan het instellen DeviceFilter.productId .

  • leveranciers-ID

    nummer optioneel

    Verouderd

    Gelijkwaardig aan het instellen DeviceFilter.vendorId .

GenericTransferInfo

Eigenschappen

  • gegevens

    ArrayBuffer optioneel

    De te verzenden gegevens (alleen vereist bij uitgaande overdrachten).

  • richting

    De overdrachtsrichting ( "in" of "out" ).

  • eindpunt

    nummer

    Het doel-eindpuntadres. De interface waarop dit eindpunt zich bevindt, moet geclaimd zijn.

  • lengte

    nummer optioneel

    Het maximale aantal te ontvangen bytes (alleen vereist voor inkomende gegevensoverdracht).

  • time-out

    nummer optioneel

    Chrome 43+

    Time-out voor de aanvraag (in milliseconden). De standaardwaarde 0 betekent geen time-out.

InterfaceDescriptor

Eigenschappen

  • alternatieve instelling

    nummer

    Het alternatieve instellingsnummer van de interface (standaardwaarde: 0

  • beschrijving

    string optioneel

    Beschrijving van de interface.

  • eindpunten

    Beschikbare eindpunten.

  • extra_data

    ArrayBuffer

    Extra beschrijvende gegevens die aan deze interface zijn gekoppeld.

  • interfaceClass

    nummer

    De USB-interfaceklasse.

  • interfaceNummer

    nummer

    Het interfacenummer.

  • interfaceProtocol

    nummer

    Het USB-interfaceprotocol.

  • interfaceSubklasse

    nummer

    De subklasse van de USB-interface.

IsochronousTransferInfo

Eigenschappen

  • pakketLengte

    nummer

    De lengte van elk van de pakketten in deze overdracht.

  • pakketten

    nummer

    Het totale aantal pakketten in deze overdracht.

  • transferInfo

    Overdrachtsparameters. De overdrachtslengte of databuffer die in dit parameterblok is gespecificeerd, wordt opgesplitst langs packetLength grenzen om de afzonderlijke pakketten van de overdracht te vormen.

Recipient

Enum

"apparaat"

"interface"

"eindpunt"

"ander"

RequestType

Enum

"standaard"

"klas"

"leverancier"

"gereserveerd"

SynchronizationType

Voor interrupt- en isochrone modi komen SynchronizationType en UsageType overeen met hun naamgenoten in de USB-specificatie.

Enum

"asynchroon"

"adaptief"

"synchroon"

TransferResultInfo

Eigenschappen

  • gegevens

    ArrayBuffer optioneel

    De gegevens die worden geretourneerd door een invoeroverdracht. undefined voor uitvoeroverdrachten.

  • resultaatcode

    nummer optioneel

    Een waarde van 0 geeft aan dat de overdracht succesvol was. Andere waarden duiden op een mislukking.

TransferType

Enum

"controle"

"onderbreken"

"isochroon"

"bulk"

UsageType

Enum

"gegevens"

"feedback"

"expliciete feedback"

"periodiek"

"kennisgeving"

Methoden

bulkTransfer()

Belofte
chrome.usb.bulkTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)
: Promise<TransferResultInfo>

Voert een bulkoverdracht uit op het opgegeven apparaat.

Parameters

Retourneert

  • Promise< TransferResultInfo >

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

claimInterface()

Belofte
chrome.usb.claimInterface(
  handle: ConnectionHandle,
  interfaceNumber: number,
  callback?: function,
)
: Promise<void>

Hiermee wordt een interface op een USB-apparaat geclaimd. Voordat gegevens naar een interface of bijbehorende eindpunten kunnen worden overgedragen, moet de interface geclaimd zijn. Slechts één verbindingshandle kan tegelijkertijd een interface claimen. Als de interface al geclaimd is, mislukt deze aanroep.

releaseInterface moet worden aangeroepen wanneer de interface niet langer nodig is.

Parameters

  • Een open verbinding met het apparaat.

  • interfaceNummer

    nummer

    De interface die geclaimd moet worden.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retourneert

  • Promise<void>

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

closeDevice()

Belofte
chrome.usb.closeDevice(
  handle: ConnectionHandle,
  callback?: function,
)
: Promise<void>

Sluit een verbindingshandle. Het uitvoeren van bewerkingen op een handle nadat deze is gesloten, is een veilige bewerking, maar heeft geen effect.

Parameters

Retourneert

  • Promise<void>

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

controlTransfer()

Belofte
chrome.usb.controlTransfer(
  handle: ConnectionHandle,
  transferInfo: ControlTransferInfo,
  callback?: function,
)
: Promise<TransferResultInfo>

Voert een besturingsoverdracht uit op het opgegeven apparaat.

Controleoverdrachten hebben betrekking op het apparaat, een interface of een eindpunt. Overdrachten naar een interface of eindpunt vereisen dat de interface is geclaimd.

Parameters

Retourneert

  • Promise< TransferResultInfo >

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

findDevices()

Belofte
chrome.usb.findDevices(
  options: EnumerateDevicesAndRequestAccessOptions,
  callback?: function,
)
: Promise<ConnectionHandle[]>

Zoekt naar USB-apparaten die zijn gespecificeerd door de fabrikant, het product en (optioneel) de interface-ID's en opent deze, indien de machtigingen dit toestaan, voor gebruik.

Als het toegangsverzoek wordt afgewezen of het apparaat niet kan worden geopend, wordt er geen verbindingshandle aangemaakt of geretourneerd.

Het aanroepen van deze methode is gelijk aan het aanroepen getDevices gevolgd door openDevice voor elk apparaat.

Parameters

Retourneert

  • Promise< ConnectionHandle []>

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

getConfiguration()

Belofte
chrome.usb.getConfiguration(
  handle: ConnectionHandle,
  callback?: function,
)
: Promise<ConfigDescriptor>

Geeft de configuratiebeschrijving weer voor de momenteel geselecteerde configuratie.

Parameters

Retourneert

  • Promise< ConfigDescriptor >

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

getConfigurations()

Promise Chrome 47+
chrome.usb.getConfigurations(
  device: Device,
  callback?: function,
)
: Promise<ConfigDescriptor[]>

Geeft de volledige set apparaatconfiguratiebeschrijvingen terug.

Parameters

  • apparaat

    Het Device waarvan de beschrijvingen moeten worden opgehaald.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (configs: ConfigDescriptor[]) => void

Retourneert

  • Promise< ConfigDescriptor []>

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

getDevices()

Belofte
chrome.usb.getDevices(
  options: EnumerateDevicesOptions,
  callback?: function,
)
: Promise<Device[]>

Geeft een overzicht van de aangesloten USB-apparaten.

Parameters

  • De eigenschappen waarnaar op de doelapparaten gezocht moet worden.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (devices: Device[]) => void

Retourneert

  • Promise< Apparaat []>

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

getUserSelectedDevices()

Belofte
chrome.usb.getUserSelectedDevices(
  options: DevicePromptOptions,
  callback?: function,
)
: Promise<Device[]>

Toont een apparaatkiezer aan de gebruiker en retourneert de geselecteerde Device . Als de gebruiker de kiezer annuleert, blijft de kiezer leeg. Een gebruikersactie is vereist om het dialoogvenster weer te geven. Zonder gebruikersactie wordt de callback uitgevoerd alsof de gebruiker de kiezer heeft geannuleerd.

Parameters

  • Configuratie van het dialoogvenster voor het selecteren van apparaten.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (devices: Device[]) => void

Retourneert

  • Promise< Apparaat []>

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

interruptTransfer()

Belofte
chrome.usb.interruptTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)
: Promise<TransferResultInfo>

Voert een interruptoverdracht uit op het opgegeven apparaat.

Parameters

Retourneert

  • Promise< TransferResultInfo >

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

isochronousTransfer()

Belofte
chrome.usb.isochronousTransfer(
  handle: ConnectionHandle,
  transferInfo: IsochronousTransferInfo,
  callback?: function,
)
: Promise<TransferResultInfo>

Voert een isochrone overdracht uit op het specifieke apparaat.

Parameters

Retourneert

  • Promise< TransferResultInfo >

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

listInterfaces()

Belofte
chrome.usb.listInterfaces(
  handle: ConnectionHandle,
  callback?: function,
)
: Promise<InterfaceDescriptor[]>

Geeft een overzicht van alle interfaces op een USB-apparaat.

Parameters

Retourneert

  • Promise< InterfaceDescriptor []>

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

openDevice()

Belofte
chrome.usb.openDevice(
  device: Device,
  callback?: function,
)
: Promise<ConnectionHandle>

Opent een USB-apparaat dat is geretourneerd door getDevices .

Parameters

Retourneert

  • Promise< ConnectionHandle >

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

releaseInterface()

Belofte
chrome.usb.releaseInterface(
  handle: ConnectionHandle,
  interfaceNumber: number,
  callback?: function,
)
: Promise<void>

Geeft een geclaimde interface vrij.

Parameters

  • Een open verbinding met het apparaat.

  • interfaceNummer

    nummer

    De interface wordt binnenkort uitgebracht.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retourneert

  • Promise<void>

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

requestAccess()

Promise is verouderd
chrome.usb.requestAccess(
  device: Device,
  interfaceId: number,
  callback?: function,
)
: Promise<boolean>

Deze functie was specifiek voor Chrome OS en het aanroepen ervan op andere platforms zou mislukken. Deze bewerking wordt nu impliciet uitgevoerd als onderdeel van openDevice en deze functie zal op alle platforms true retourneren.

Vraagt ​​toegang aan de permission broker tot een apparaat dat door Chrome OS wordt geclaimd, indien de betreffende interface op het apparaat niet geclaimd is.

Parameters

  • apparaat

    Het Device waartoe toegang moet worden aangevraagd.

  • interfaceId

    nummer

    De specifieke interface die is aangevraagd.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (success: boolean) => void

    • succes

      booleaans

Retourneert

  • Belofte<boolean>

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

resetDevice()

Belofte
chrome.usb.resetDevice(
  handle: ConnectionHandle,
  callback?: function,
)
: Promise<boolean>

Probeert het USB-apparaat te resetten. Als de reset mislukt, wordt de opgegeven verbindingshandle gesloten en lijkt het USB-apparaat eerst losgekoppeld en vervolgens weer verbonden. In dat geval moeten getDevices of findDevices opnieuw worden aangeroepen om het apparaat te verkrijgen.

Parameters

  • Een verbindingshendel om te resetten.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (success: boolean) => void

    • succes

      booleaans

Retourneert

  • Belofte<boolean>

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

setConfiguration()

Belofte
chrome.usb.setConfiguration(
  handle: ConnectionHandle,
  configurationValue: number,
  callback?: function,
)
: Promise<void>

Selecteer een apparaatconfiguratie.

Deze functie reset het apparaat door een van de beschikbare configuraties te selecteren. Alleen configuratiewaarden groter dan 0 zijn geldig, maar sommige defecte apparaten hebben een werkende configuratie 0 , waardoor deze waarde is toegestaan.

Parameters

  • Een open verbinding met het apparaat.

  • configuratiewaarde

    nummer

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retourneert

  • Promise<void>

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

setInterfaceAlternateSetting()

Belofte
chrome.usb.setInterfaceAlternateSetting(
  handle: ConnectionHandle,
  interfaceNumber: number,
  alternateSetting: number,
  callback?: function,
)
: Promise<void>

Hiermee wordt een alternatieve instelling geselecteerd op een eerder geclaimde interface.

Parameters

  • Een open verbinding met het apparaat waarop deze interface is geclaimd.

  • interfaceNummer

    nummer

    De interface om te configureren.

  • alternatieve instelling

    nummer

    De alternatieve instelling om te configureren.

  • terugbelverzoek

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retourneert

  • Promise<void>

    Chrome 116+

    Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.

Evenementen

onDeviceAdded

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

Deze gebeurtenis wordt gegenereerd wanneer een apparaat aan het systeem wordt toegevoegd. Gebeurtenissen worden alleen verzonden naar apps en extensies die toestemming hebben om toegang te krijgen tot het apparaat. Toestemming kan zijn verleend tijdens de installatie, toen de gebruiker een optionele toestemming accepteerde (zie permissions.request ), of via getUserSelectedDevices .

Parameters

  • terugbelverzoek

    functie

    De callback parameter ziet er als volgt uit:

    (device: Device) => void

onDeviceRemoved

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

Deze gebeurtenis wordt gegenereerd wanneer een apparaat uit het systeem wordt verwijderd. Zie onDeviceAdded voor een overzicht van de gebeurtenissen die worden weergegeven.

Parameters

  • terugbelverzoek

    functie

    De callback parameter ziet er als volgt uit:

    (device: Device) => void