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 functioneren 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 zijn in dit geval niet gedefinieerd.

Machtigingen

usb

Soorten

ConfigDescriptor

Eigenschappen

  • actief

    Booleaans

    Chroom 47+

    Is dit de actieve configuratie?

  • configuratieWaarde

    nummer

    Het configuratienummer.

  • beschrijving

    tekenreeks optioneel

    Beschrijving van de configuratie.

  • extra_gegevens

    ArrayBuffer

    Extra descriptorgegevens die aan deze configuratie zijn gekoppeld.

  • interfaces

    Beschikbare interfaces.

  • max. vermogen

    nummer

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

  • op afstand wakker worden

    Booleaans

    Het apparaat ondersteunt ontwaken op afstand.

  • zelfaangedreven

    Booleaans

    Het apparaat is zelfvoorzienend.

ConnectionHandle

Eigenschappen

  • hendel

    nummer

    Een ondoorzichtig handvat dat deze verbinding met het USB-apparaat en alle bijbehorende geclaimde interfaces en lopende overdrachten vertegenwoordigt. Elke keer dat het apparaat wordt geopend, wordt er een nieuwe handgreep gemaakt. De verbindingshandle is anders dan Device.device .

  • productId

    nummer

    De product-ID.

  • leverancierId

    nummer

    De leverancier-ID van het apparaat.

ControlTransferInfo

Eigenschappen

  • gegevens

    ArrayBuffer optioneel

    De gegevens die moeten worden verzonden (alleen vereist bij uitvoeroverdrachten).

  • richting

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

  • index

    nummer

    Het veld wIndex , zie Ibid .

  • lengte

    nummer optioneel

    Het maximale aantal te ontvangen bytes (alleen vereist bij invoeroverdrachten).

  • ontvanger

    Het transferdoel. Het door index opgegeven doel moet worden geclaimd als "interface" of "endpoint" .

  • verzoek

    nummer

    Het veld bRequest , zie Universal Serial Bus-specificatie revisie 1.1 § 9.3.

  • verzoekType

    Het verzoektype.

  • time-out

    nummer optioneel

    Chroom 43+

    Time-out aanvragen (in milliseconden). De standaardwaarde 0 geeft aan dat er geen time-out is.

  • waarde

    nummer

    Het wValue veld, zie Ibid .

Device

Eigenschappen

  • apparaat

    nummer

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

  • fabrikantNaam

    snaar

    Chroom 46+

    De iManufacturer-reeks die van het apparaat wordt gelezen, indien beschikbaar.

  • productId

    nummer

    De product-ID.

  • productnaam

    snaar

    Chroom 46+

    De iProduct-tekenreeks die van het apparaat wordt gelezen, indien beschikbaar.

  • serienummer

    snaar

    Chroom 46+

    De iSerialNumber-reeks die van het apparaat wordt gelezen, indien beschikbaar.

  • leverancierId

    nummer

    De leverancier-ID van het apparaat.

  • versie

    nummer

    Chroom 51+

    De apparaatversie (veld bcdDevice).

DeviceFilter

Eigenschappen

  • interfaceKlasse

    nummer optioneel

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

  • interfaceProtocol

    nummer optioneel

    USB-interfaceprotocol, alleen gecontroleerd als de interface-subklasse overeenkomt.

  • interfaceSubklasse

    nummer optioneel

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

  • productId

    nummer optioneel

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

  • leverancierId

    nummer optioneel

    Leveranciers-ID van apparaat.

DevicePromptOptions

Eigenschappen

  • filters

    DeviceFilter [] optioneel

    Filter de lijst met apparaten die aan de gebruiker wordt gepresenteerd. Als er meerdere filters beschikbaar zijn, worden apparaten die overeenkomen met een filter weergegeven.

  • meerdere

    Booleaans optioneel

    Sta de gebruiker toe om meerdere apparaten te selecteren.

Direction

Direction, Recipient, RequestType en TransferType verwijzen allemaal naar hun naamgenoten binnen de USB-specificatie.

Enum

"in"

"uit"

EndpointDescriptor

Eigenschappen

  • adres

    nummer

    Eindpunt adres.

  • richting

    Overdracht richting.

  • extra_gegevens

    ArrayBuffer

    Extra descriptorgegevens die aan dit eindpunt zijn gekoppeld.

  • maximale pakketgrootte

    nummer

    Maximale pakketgrootte.

  • pollingInterval

    nummer optioneel

    Polling-interval (alleen interrupt en isochroon).

  • synchronisatie

    Overdrachtsynchronisatiemodus (alleen isochroon).

  • Overdrachtstype.

  • gebruik

    Gebruikstype optioneel

    Tip voor eindpuntgebruik.

EnumerateDevicesAndRequestAccessOptions

Eigenschappen

  • interfaceId

    nummer optioneel

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

  • productId

    nummer

    De product-ID.

  • leverancierId

    nummer

    De leverancier-ID van het apparaat.

EnumerateDevicesOptions

Eigenschappen

  • filters

    DeviceFilter [] 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

    Afgekeurd

    Gelijk aan het instellen DeviceFilter.productId .

  • leverancierId

    nummer optioneel

    Afgekeurd

    Gelijk aan het instellen van DeviceFilter.vendorId .

GenericTransferInfo

Eigenschappen

  • gegevens

    ArrayBuffer optioneel

    De gegevens die moeten worden verzonden (alleen vereist bij uitvoeroverdrachten).

  • richting

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

  • eindpunt

    nummer

    Het doeleindpuntadres. De interface die dit eindpunt bevat, moet worden geclaimd.

  • lengte

    nummer optioneel

    Het maximale aantal te ontvangen bytes (alleen vereist bij invoeroverdrachten).

  • time-out

    nummer optioneel

    Chroom 43+

    Time-out aanvragen (in milliseconden). De standaardwaarde 0 geeft aan dat er geen time-out is.

InterfaceDescriptor

Eigenschappen

  • alternatieveInstelling

    nummer

    Het alternatieve instellingsnummer van de interface (standaard ingesteld op 0

  • beschrijving

    tekenreeks optioneel

    Beschrijving van de interface.

  • eindpunten

    Beschikbare eindpunten.

  • extra_gegevens

    ArrayBuffer

    Extra descriptorgegevens die aan deze interface zijn gekoppeld.

  • interfaceKlasse

    nummer

    De USB-interfaceklasse.

  • interfaceNummer

    nummer

    Het interfacenummer.

  • interfaceProtocol

    nummer

    Het USB-interfaceprotocol.

  • interfaceSubklasse

    nummer

    De subklasse 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.

  • overdrachtInfo

    Overdrachtsparameters. De overdrachtslengte of gegevensbuffer die in dit parameterblok is gespecificeerd, wordt gesplitst langs packetLength om de individuele pakketten van de overdracht te vormen.

Recipient

Enum

"apparaat"

"interface"

"eindpunt"

"ander"

RequestType

Enum

"standaard"

"klas"

"leverancier"

"gereserveerd"

SynchronizationType

Voor interrupt- en isochrone modi worden SynchronizationType en UsageType toegewezen aan hun naamgenoten binnen 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 een succes was. Andere waarden duiden op een storing.

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,
)

Voert een bulkoverdracht uit op het opgegeven apparaat.

Parameters

Retouren

  • Beloof < TransferResultInfo >

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

claimInterface()

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

Claimt een interface op een USB-apparaat. Voordat gegevens kunnen worden overgedragen naar een interface of bijbehorende eindpunten, moet de interface worden geclaimd. Er kan op elk moment slechts één verbindingshandle een interface claimen. Als de interface al is geclaimd, mislukt deze oproep.

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

Parameters

  • Een open verbinding met het apparaat.

  • interfaceNummer

    nummer

    De interface die moet worden geclaimd.

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retouren

  • Beloof <nietig>

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

closeDevice()

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

Sluit een verbindingsgreep. Het uitvoeren van bewerkingen op een kruk nadat deze is gesloten, is een veilige handeling, maar heeft tot gevolg dat er geen actie wordt ondernomen.

Parameters

Retouren

  • Beloof <nietig>

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

controlTransfer()

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

Voert een besturingsoverdracht uit op het opgegeven apparaat.

Controleoverdrachten hebben betrekking op het apparaat, een interface of een eindpunt. Voor overdrachten naar een interface of eindpunt moet de interface worden geclaimd.

Parameters

Retouren

  • Beloof < TransferResultInfo >

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

findDevices()

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

Vindt USB-apparaten gespecificeerd door de leverancier, het product en (optioneel) 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 gemaakt of geretourneerd.

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

Parameters

Retouren

  • Belofte< VerbindingHandle []>

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

getConfiguration()

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

Haalt de configuratiedescriptor op voor de momenteel geselecteerde configuratie.

Parameters

Retouren

  • Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

getConfigurations()

BeloofChrome 47+
chrome.usb.getConfigurations(
  device: Device,
  callback?: function,
)

Retourneert de volledige set apparaatconfiguratiedescriptors.

Parameters

Retouren

  • Beloof < ConfigDescriptor []>

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

getDevices()

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

Somt aangesloten USB-apparaten op.

Parameters

  • De eigenschappen waarnaar moet worden gezocht op doelapparaten.

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (devices: Device[]) => void

Retouren

  • Beloof < Apparaat []>

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

getUserSelectedDevices()

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

Presenteert een apparaatkiezer aan de gebruiker en retourneert het geselecteerde Device . Als de gebruiker annuleert, zijn de kiezerapparaten leeg. Er is een gebruikersgebaar vereist om het dialoogvenster weer te geven. Zonder een gebruikersgebaar verloopt het terugbellen alsof de gebruiker heeft geannuleerd.

Parameters

  • Configuratie van het dialoogvenster Apparaatkiezer.

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (devices: Device[]) => void

Retouren

  • Beloof < Apparaat []>

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

interruptTransfer()

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

Voert een interruptoverdracht uit op het opgegeven apparaat.

Parameters

Retouren

  • Beloof < TransferResultInfo >

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

isochronousTransfer()

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

Voert een isochrone overdracht uit op het specifieke apparaat.

Parameters

Retouren

  • Beloof < TransferResultInfo >

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

listInterfaces()

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

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

Parameters

Retouren

  • Beloof < InterfaceDescriptor []>

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

openDevice()

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

Opent een USB-apparaat dat wordt geretourneerd door getDevices .

Parameters

Retouren

  • Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

releaseInterface()

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

Geeft een geclaimde interface vrij.

Parameters

  • Een open verbinding met het apparaat.

  • interfaceNummer

    nummer

    De interface die moet worden vrijgegeven.

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retouren

  • Beloof <nietig>

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

requestAccess()

Belofte verouderd
chrome.usb.requestAccess(
  device: Device,
  interfaceId: number,
  callback?: function,
)

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 retourneert true op alle platforms.

Vraagt ​​toegang aan de toestemmingsmakelaar tot een apparaat dat door Chrome OS wordt geclaimd als de gegeven interface op het apparaat niet wordt geclaimd.

Parameters

  • apparaat

    Het Device waartoe toegang moet worden aangevraagd.

  • interfaceId

    nummer

    De specifieke gevraagde interface.

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (success: boolean) => void

    • succes

      Booleaans

Retouren

  • Beloof<boolean>

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

resetDevice()

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

Probeert het USB-apparaat te resetten. Als het opnieuw instellen mislukt, wordt de gegeven verbindingsgreep gesloten en lijkt het alsof het USB-apparaat is losgekoppeld en vervolgens opnieuw is aangesloten. In dit geval moet getDevices of findDevices opnieuw worden aangeroepen om het apparaat te verkrijgen.

Parameters

  • Een verbindingshandvat om te resetten.

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    (success: boolean) => void

    • succes

      Booleaans

Retouren

  • Beloof<boolean>

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

setConfiguration()

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

Selecteer een apparaatconfiguratie.

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

Parameters

  • Een open verbinding met het apparaat.

  • configuratieWaarde

    nummer

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retouren

  • Beloof <nietig>

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

setInterfaceAlternateSetting()

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

Selecteert een alternatieve instelling op een eerder geclaimde interface.

Parameters

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

  • interfaceNummer

    nummer

    De interface om te configureren.

  • alternatieveInstelling

    nummer

    De alternatieve instelling om te configureren.

  • terugbellen

    functie optioneel

    De callback parameter ziet er als volgt uit:

    () => void

Retouren

  • Beloof <nietig>

    Chroom 116+

    Beloftes worden alleen ondersteund voor Manifest V3 en hoger, andere platforms moeten callbacks gebruiken.

Evenementen

onDeviceAdded

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

Gebeurtenis gegenereerd wanneer een apparaat aan het systeem wordt toegevoegd. Gebeurtenissen worden alleen uitgezonden 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

  • terugbellen

    functie

    De callback parameter ziet er als volgt uit:

    (device: Device) => void

onDeviceRemoved

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

Gebeurtenis die wordt gegenereerd wanneer een apparaat uit het systeem wordt verwijderd. Zie onDeviceAdded voor welke evenementen worden geleverd.

Parameters

  • terugbellen

    functie

    De callback parameter ziet er als volgt uit:

    (device: Device) => void