chroom.usb

Beschrijving

Gebruik de chrome.usb API om te communiceren met aangesloten USB-apparaten. Deze API biedt toegang tot USB-bewerkingen binnen de context van een app. Met deze API kunnen apps functioneren als drivers 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 ongedefinieerd.

Machtigingen

usb

Typen

ConfigDescriptor

Eigenschappen

  • actief

    Booleaanse

    Chroom 47+

    Is dit de actieve configuratie?

  • configuratiewaarde

    nummer

    Het configuratienummer.

  • beschrijving

    string optioneel

    Beschrijving van de configuratie.

  • extra_gegevens

    ArrayBuffer

    Extra descriptorgegevens die aan deze configuratie zijn gekoppeld.

  • interfaces

    Beschikbare interfaces.

  • maxPower

    nummer

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

  • remoteWakeup

    Booleaanse

    Het apparaat ondersteunt remote wakeup.

  • zelfaangedreven

    Booleaanse

    Het apparaat is zelfvoorzienend.

ConnectionHandle

Eigenschappen

  • hendel

    nummer

    Een ondoorzichtige handle die deze verbinding met het USB-apparaat en alle bijbehorende geclaimde interfaces en in behandeling zijnde overdrachten vertegenwoordigt. Elke keer dat het apparaat wordt geopend, wordt er een nieuwe handle aangemaakt. De verbindingshandle verschilt van Device.device .

  • product-ID

    nummer

    De product-ID.

  • leveranciers-ID

    nummer

    De leverancier-ID van het apparaat.

ControlTransferInfo

Eigenschappen

  • gegevens

    ArrayBuffer optioneel

    De te verzenden gegevens (alleen vereist voor uitvoeroverdrachten).

  • richting

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

  • index

    nummer

    Het wIndex veld, zie Ibid .

  • lengte

    nummer optioneel

    Het maximale aantal bytes dat moet worden ontvangen (alleen vereist bij invoeroverdrachten).

  • ontvanger

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

  • verzoek

    nummer

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

  • aanvraagtype

    Het aanvraagtype.

  • time-out

    nummer optioneel

    Chroom 43+

    Time-out van verzoek (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. Deze blijft ongewijzigd totdat het apparaat wordt losgekoppeld.

  • fabrikantnaam

    snaar

    Chroom 46+

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

  • product-ID

    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-tekenreeks die van het apparaat wordt gelezen, indien beschikbaar.

  • leveranciers-ID

    nummer

    De leverancier-ID van het apparaat.

  • versie

    nummer

    Chroom 51+

    De versie van het apparaat (veld bcdDevice).

DeviceFilter

Eigenschappen

  • interfaceKlasse

    nummer optioneel

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

  • interfaceProtocol

    nummer optioneel

    USB-interfaceprotocol: wordt alleen gecontroleerd als de interface-subklasse overeenkomt.

  • interfaceSubklasse

    nummer optioneel

    USB-interface-subklasse, wordt alleen gecontroleerd als de interface-klasse overeenkomt.

  • product-ID

    nummer optioneel

    Product-ID van het apparaat: wordt alleen gecontroleerd als de leveranciers-ID overeenkomt.

  • leveranciers-ID

    nummer optioneel

    Leveranciers-ID van het apparaat.

DevicePromptOptions

Eigenschappen

  • filters

    DeviceFilter [] optioneel

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

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

    Overdrachtssynchronisatiemodus (alleen isochroon).

  • Overdrachtstype.

  • gebruik

    Gebruikstype optioneel

    Hint voor eindpuntgebruik.

EnumerateDevicesAndRequestAccessOptions

Eigenschappen

  • interface-ID

    nummer optioneel

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

  • product-ID

    nummer

    De product-ID.

  • leveranciers-ID

    nummer

    De leverancier-ID van het apparaat.

EnumerateDevicesOptions

Eigenschappen

  • filters

    DeviceFilter [] optioneel

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

  • product-ID

    nummer optioneel

    Verouderd

    Equivalent aan het instellen van DeviceFilter.productId .

  • leveranciers-ID

    nummer optioneel

    Verouderd

    Equivalent aan het instellen DeviceFilter.vendorId .

GenericTransferInfo

Eigenschappen

  • gegevens

    ArrayBuffer optioneel

    De te verzenden gegevens (alleen vereist voor 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 bytes dat moet worden ontvangen (alleen vereist bij invoeroverdrachten).

  • time-out

    nummer optioneel

    Chroom 43+

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

InterfaceDescriptor

Eigenschappen

  • alternatieve instelling

    nummer

    Het alternatieve instellingsnummer van de interface (standaard 0

  • beschrijving

    string 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 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.

  • overdrachtsinfo

    Overdrachtsparameters. De in dit parameterblok gespecificeerde overdrachtslengte of gegevensbuffer 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 in de USB-specificatie.

Enum

"asynchroon"

"adaptief"

"synchroon"

TransferResultInfo

Eigenschappen

  • gegevens

    ArrayBuffer optioneel

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

  • resultaatcode

    nummer optioneel

    Een waarde van 0 geeft aan dat de overdracht succesvol was. Andere waarden geven aan dat de overdracht mislukt is.

TransferType

Enum

"controle"

"onderbreken"

"isochroon"

"massa"

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

Retourneren

  • Belofte< TransferResultInfo >

    Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

claimInterface()

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

Claimt een interface op een USB-apparaat. Voordat gegevens kunnen worden overgedragen naar een interface of bijbehorende eindpunten, moet de interface worden geclaimd. Slechts één verbindingshandle kan tegelijkertijd een interface claimen. Als de interface al is geclaimd, 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.

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    () => void

Retourneren

  • Belofte<leegte>

    Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

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 zorgt er niet voor dat er actie wordt ondernomen.

Parameters

Retourneren

  • Belofte<leegte>

    Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

controlTransfer()

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

Voert een controleoverdracht 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

Retourneren

  • Belofte< TransferResultInfo >

    Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

findDevices()

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

Vindt USB-apparaten die zijn gespecificeerd door de leverancier, het product en (optioneel) de interface-ID's. Als de machtigingen dit toestaan, worden deze geopend 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 gelijkwaardig aan het aanroepen van getDevices gevolgd door openDevice voor elk apparaat.

Parameters

Retourneren

  • Belofte< ConnectionHandle []>

    Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

getConfiguration()

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

Haalt de configuratiedescriptor op voor de momenteel geselecteerde configuratie.

Parameters

Retourneren

  • Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

getConfigurations()

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

Retourneert de volledige set configuratiebeschrijvingen van het apparaat.

Parameters

Retourneren

  • Belofte< ConfigDescriptor []>

    Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

getDevices()

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

Geeft een overzicht van de aangesloten USB-apparaten.

Parameters

  • De eigenschappen waarnaar moet worden gezocht op doelapparaten.

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    (devices: Device[]) => void

Retourneren

  • Belofte< Apparaat []>

    Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

getUserSelectedDevices()

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

Presenteert een apparaatkiezer aan de gebruiker en retourneert de geselecteerde Device . Als de gebruiker annuleert, zijn de apparaten in de kiezer leeg. Een gebruikersgebaar is vereist om het dialoogvenster weer te geven. Zonder gebruikersgebaar wordt de callback uitgevoerd alsof de gebruiker heeft geannuleerd.

Parameters

  • Configuratie van het dialoogvenster Apparaatkiezer.

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    (devices: Device[]) => void

Retourneren

  • Belofte< Apparaat []>

    Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

interruptTransfer()

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

Voert een interrupt-overdracht uit op het opgegeven apparaat.

Parameters

Retourneren

  • Belofte< TransferResultInfo >

    Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

isochronousTransfer()

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

Voert een isochrone overdracht uit op het specifieke apparaat.

Parameters

Retourneren

  • Belofte< TransferResultInfo >

    Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

listInterfaces()

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

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

Parameters

Retourneren

  • Belofte< InterfaceDescriptor []>

    Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

openDevice()

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

Opent een USB-apparaat dat is geretourneerd door getDevices .

Parameters

Retourneren

  • Belofte< ConnectionHandle >

    Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

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 moet vrijgegeven worden.

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    () => void

Retourneren

  • Belofte<leegte>

    Chroom 116+

    Promises 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,
)
: Promise<boolean>

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

Vraagt toegang aan bij de toestemmingsmakelaar tot een apparaat dat door Chrome OS is geclaimd als de opgegeven interface op het apparaat niet is geclaimd.

Parameters

  • apparaat

    Het Device waartoe u toegang wilt aanvragen.

  • interface-ID

    nummer

    De specifieke interface die is aangevraagd.

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    (success: boolean) => void

    • succes

      Booleaanse

Retourneren

  • Belofte<boolean>

    Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

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 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 verbindingshendel om te resetten.

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    (success: boolean) => void

    • succes

      Booleaanse

Retourneren

  • Belofte<boolean>

    Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

setConfiguration()

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

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 buggy apparaten hebben een werkende configuratie 0 , waardoor deze waarde is toegestaan.

Parameters

  • Een open verbinding met het apparaat.

  • configuratiewaarde

    nummer

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    () => void

Retourneren

  • Belofte<leegte>

    Chroom 116+

    Promises 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,
)
: Promise<void>

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.

  • alternatieve instelling

    nummer

    De alternatieve instelling om te configureren.

  • terugbellen

    functie optioneel

    De callback ziet er als volgt uit:

    () => void

Retourneren

  • Belofte<leegte>

    Chroom 116+

    Promises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.

Evenementen

onDeviceAdded

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

Gebeurtenis die 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. Deze 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 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 om te zien welke gebeurtenissen worden geleverd.

Parameters

  • terugbellen

    functie

    De callback ziet er als volgt uit:

    (device: Device) => void