chrome.usb

Beschrijving

Gebruik de chrome.usb API om te communiceren met verbonden USB-apparaten. Deze API biedt toegang tot USB-bewerkingen vanuit de context van een app. Met deze API kunnen apps functioneren als stuurprogramma's voor hardwareapparaten. Fouten die door deze API worden gegenereerd, worden gemeld 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.

Rechten

usb

Beschikbaarheid

Alleen ChromeOS

Typen

ConfigDescriptor

Eigenschappen

  • actief

    booleaans

    Chrome 47+

    Is dit de actieve configuratie?

  • configurationValue

    getal

    Het configuratienummer.

  • beschrijving

    tekenreeks optioneel

    Beschrijving van de configuratie.

  • extra_data

    ArrayBuffer

    Extra descriptorgegevens die aan deze configuratie zijn gekoppeld.

  • interfaces

    Beschikbare interfaces.

  • maxPower

    getal

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

  • remoteWakeup

    booleaans

    Het apparaat ondersteunt activering op afstand.

  • selfPowered

    booleaans

    Het apparaat heeft een eigen voeding.

ConnectionHandle

Eigenschappen

  • gebruikersnaam

    getal

    Een ondoorzichtige handle die deze verbinding met het USB-apparaat en alle bijbehorende geclaimde interfaces en overdrachten in de wachtrij vertegenwoordigt. Er wordt elke keer dat het apparaat wordt geopend een nieuwe ingang gemaakt. De verbindings-ID is anders dan Device.device.

  • productId

    getal

    De product-ID.

  • vendorId

    getal

    De leverancier-ID van het apparaat.

ControlTransferInfo

Eigenschappen

  • gegevens

    ArrayBuffer optioneel

    De gegevens die moeten worden overgedragen (alleen vereist voor uitvoeroverdrachten).

  • routebeschrijving

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

  • index

    getal

    Het veld wIndex, zie Ibid.

  • lengte

    number optioneel

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

  • ontvanger

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

  • verzoek

    getal

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

  • requestType

    Het verzoektype.

  • time-out

    number optioneel

    Chrome 43+

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

  • waarde

    getal

    Het veld wValue, zie Ibid.

Device

Eigenschappen

  • apparaat

    getal

    Een ondoorzichtige ID voor het USB-apparaat. Deze blijft ongewijzigd totdat de stekker van het apparaat uit het stopcontact wordt gehaald.

  • manufacturerName

    tekenreeks

    Chrome 46+

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

  • productId

    getal

    De product-ID.

  • productName

    tekenreeks

    Chrome 46+

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

  • serialNumber

    tekenreeks

    Chrome 46+

    De iSerialNumber-tekenreeks die van het apparaat is gelezen, indien beschikbaar.

  • vendorId

    getal

    De leverancier-ID van het apparaat.

  • versie

    getal

    Chrome 51+

    De apparaatversie (bcdDevice-veld).

DeviceFilter

Eigenschappen

  • interfaceClass

    number optioneel

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

  • interfaceProtocol

    number optioneel

    USB-interfaceprotocol, alleen gecheckt als de interfacesubklasse overeenkomt.

  • interfaceSubclass

    number optioneel

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

  • productId

    number optioneel

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

  • vendorId

    number optioneel

    ID van apparaatleverancier.

DevicePromptOptions

Eigenschappen

  • filters

    DeviceFilter[] optioneel

    De lijst met apparaten filteren die aan de gebruiker worden getoond. Als er meerdere filters worden ingevoerd, worden apparaten getoond die overeenkomen met een van de filters.

  • meerdere

    booleaans optioneel

    Sta de gebruiker toe meerdere apparaten te selecteren.

Direction

Direction, Recipient, RequestType en TransferType worden allemaal toegewezen aan hun naamgenoten in de USB-specificatie.

Enum

"in"

"out"

EndpointDescriptor

Eigenschappen

  • adres

    getal

    Eindpuntadres.

  • routebeschrijving

    Overdrachtsrichting.

  • extra_data

    ArrayBuffer

    Extra descriptorgegevens die aan dit eindpunt zijn gekoppeld.

  • maximumPacketSize

    getal

    Maximale pakketgrootte.

  • pollingInterval

    number optioneel

    Polling-interval (alleen onderbreking en isochroon).

  • synchronisatie

    Synchronisatiemodus voor overdracht (alleen isochroon).

  • Overdrachtstype.

  • gebruik

    UsageType optioneel

    Hint voor eindpuntgebruik.

EnumerateDevicesAndRequestAccessOptions

Eigenschappen

  • interfaceId

    number optioneel

    De interface-ID waarvoor u toegang wilt aanvragen. Alleen beschikbaar op ChromeOS. Dit heeft geen invloed op andere platforms.

  • productId

    getal

    De product-ID.

  • vendorId

    getal

    De leverancier-ID van het apparaat.

EnumerateDevicesOptions

Eigenschappen

  • filters

    DeviceFilter[] optioneel

    Er wordt een apparaat geretourneerd dat overeenkomt met een bepaald filter. Een lege filterlijst retourneert alle apparaten waarvoor de app rechten heeft.

  • productId

    number optioneel

    Beëindigd

    Dit is gelijk aan de instelling DeviceFilter.productId.

  • vendorId

    number optioneel

    Beëindigd

    Dit is gelijk aan de instelling DeviceFilter.vendorId.

GenericTransferInfo

Eigenschappen

  • gegevens

    ArrayBuffer optioneel

    De gegevens die moeten worden overgedragen (alleen vereist voor uitvoeroverdrachten).

  • routebeschrijving

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

  • eindpunt

    getal

    Het adres van het doeleindpunt. De interface die dit eindpunt bevat, moet worden geclaimd.

  • lengte

    number optioneel

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

  • time-out

    number optioneel

    Chrome 43+

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

InterfaceDescriptor

Eigenschappen

  • alternateSetting

    getal

    Het alternatieve instellingsnummer van de interface (standaard 0

  • beschrijving

    tekenreeks optioneel

    Beschrijving van de interface.

  • endpoints

    Beschikbare eindpunten.

  • extra_data

    ArrayBuffer

    Extra descriptorgegevens die aan deze interface zijn gekoppeld.

  • interfaceClass

    getal

    De USB-interfaceklasse.

  • interfaceNumber

    getal

    Het interfacenummer.

  • interfaceProtocol

    getal

    Het USB-interfaceprotocol.

  • interfaceSubclass

    getal

    De subklasse van de USB-interface.

IsochronousTransferInfo

Eigenschappen

  • packetLength

    getal

    De lengte van elk van de pakketten in deze overdracht.

  • pakketten

    getal

    Het totale aantal pakketten in deze overdracht.

  • transferInfo

    Overdrachtsparameters. De overdrachtslengte of gegevensbuffer die in dit parameterblok is opgegeven, wordt gesplitst langs packetLength-grenzen om de afzonderlijke pakketten van de overdracht te vormen.

Recipient

Enum

"device"

"interface"

"endpoint"

"other"

RequestType

Enum

"standard"

"class"

"vendor"

"reserved"

SynchronizationType

Voor de modi Interrupt en Isochronous worden SynchronizationType en UsageType toegewezen aan hun naamgenoten in de USB-specificatie.

Enum

"asynchronous"

"adaptive"

"synchronous"

TransferResultInfo

Eigenschappen

  • gegevens

    ArrayBuffer optioneel

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

  • resultCode

    number optioneel

    De waarde 0 geeft aan dat de overdracht is geslaagd. Andere waarden geven een fout aan.

TransferType

Enum

"control"

"interrupt"

isochronous

"bulk"

UsageType

Enum

"data"

feedback

explicitFeedback

"periodic"

"notification"

Methoden

bulkTransfer()

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

Voert een bulkoverdracht uit op het aangegeven apparaat.

Parameters

Retourzendingen

  • Chrome 116 of hoger

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

claimInterface()

Promise
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. Er kan maar één verbindingshandle tegelijk een interface claimen. Als de interface al is geclaimd, mislukt deze aanroep.

releaseInterface moet worden aangeroepen als de interface niet meer nodig is.

Parameters

  • gebruikersnaam

    Een open verbinding met het apparaat.

  • interfaceNumber

    getal

    De interface die moet worden geclaimd.

  • callback

    functie optioneel

    De parameter callback ziet er zo uit:

    () => void

Retourzendingen

  • Promise<void>

    Chrome 116 of hoger

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

closeDevice()

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

Sluit een verbindingshandle. Bewerkingen aanroepen op een handle nadat deze is gesloten, is een veilige bewerking, maar leidt niet tot actie.

Parameters

Retourzendingen

  • Promise<void>

    Chrome 116 of hoger

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

controlTransfer()

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

Voert een controleoverdracht uit op het aangegeven apparaat.

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

Parameters

Retourzendingen

  • Chrome 116 of hoger

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

findDevices()

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

Zoekt USB-apparaten die zijn gespecificeerd door de leverancier, het product en (optioneel) interface-ID's en opent ze voor gebruik als de rechten dit toestaan.

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

Deze methode aanroepen is hetzelfde als getDevices aanroepen, gevolgd door openDevice voor elk apparaat.

Parameters

Retourzendingen

  • Promise<ConnectionHandle[]>

    Chrome 116 of hoger

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

getConfiguration()

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

Haalt de configuratiedescriptor op voor de geselecteerde configuratie.

Parameters

Retourzendingen

  • Chrome 116 of hoger

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

getConfigurations()

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

Retourneert de volledige set apparaatconfiguratie-descriptors.

Parameters

Retourzendingen

  • Promise<ConfigDescriptor[]>

    Chrome 116 of hoger

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

getDevices()

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

Maakt een lijst van verbonden USB-apparaten.

Parameters

  • De eigenschappen waarnaar moet worden gezocht op doelapparaten.

  • callback

    functie optioneel

    De parameter callback ziet er zo uit:

    (devices: Device[]) => void

Retourzendingen

  • Promise<Device[]>

    Chrome 116 of hoger

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

getUserSelectedDevices()

Promise
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, is de lijst met apparaten leeg. Er is een gebruikersactivatie vereist om het dialoogvenster te tonen. Zonder gebruikersactivatie wordt de callback uitgevoerd alsof de gebruiker heeft geannuleerd.

Parameters

  • Configuratie van het dialoogvenster van de apparaatkiezer.

  • callback

    functie optioneel

    De parameter callback ziet er zo uit:

    (devices: Device[]) => void

Retourzendingen

  • Promise<Device[]>

    Chrome 116 of hoger

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

interruptTransfer()

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

Voert een interruptoverdracht uit op het aangegeven apparaat.

Parameters

Retourzendingen

  • Chrome 116 of hoger

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

isochronousTransfer()

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

Voert een isochrone overdracht uit op het specifieke apparaat.

Parameters

Retourzendingen

  • Chrome 116 of hoger

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

listInterfaces()

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

Toont alle interfaces op een USB-apparaat.

Parameters

Retourzendingen

  • Chrome 116 of hoger

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

openDevice()

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

Opent een USB-apparaat dat wordt geretourneerd door getDevices.

Parameters

Retourzendingen

  • Chrome 116 of hoger

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

releaseInterface()

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

Geeft een geclaimde interface vrij.

Parameters

  • gebruikersnaam

    Een open verbinding met het apparaat.

  • interfaceNumber

    getal

    De interface die moet worden vrijgegeven.

  • callback

    functie optioneel

    De parameter callback ziet er zo uit:

    () => void

Retourzendingen

  • Promise<void>

    Chrome 116 of hoger

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

requestAccess()

Promise Beëindigd
chrome.usb.requestAccess(
  device: Device,
  interfaceId: number,
  callback?: function,
)
: Promise<boolean>

Deze functie was specifiek voor ChromeOS en aanroepen 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 de rechtenmakelaar tot een apparaat dat wordt geclaimd door ChromeOS als de aangegeven interface op het apparaat niet wordt geclaimd.

Parameters

  • apparaat

    De Device waarvoor u toegang wilt aanvragen.

  • interfaceId

    getal

    De specifieke interface die is aangevraagd.

  • callback

    functie optioneel

    De parameter callback ziet er zo uit:

    (success: boolean) => void

    • geslaagd

      booleaans

Retourzendingen

  • Promise<boolean>

    Chrome 116 of hoger

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

resetDevice()

Promise
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 te zijn ontkoppeld en daarna opnieuw verbonden. In dit geval moet getDevices of findDevices opnieuw worden aangeroepen om het apparaat te verkrijgen.

Parameters

  • gebruikersnaam

    Een verbindingshandle om te resetten.

  • callback

    functie optioneel

    De parameter callback ziet er zo uit:

    (success: boolean) => void

    • geslaagd

      booleaans

Retourzendingen

  • Promise<boolean>

    Chrome 116 of hoger

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

setConfiguration()

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

Selecteer een apparaatconfiguratie.

Met deze functie wordt het apparaat gereset door een van de beschikbare configuraties van het apparaat te selecteren. Alleen configuratiewaarden hoger dan 0 zijn geldig, maar sommige apparaten met bugs hebben een werkende configuratie 0 en daarom is deze waarde toegestaan.

Parameters

  • gebruikersnaam

    Een open verbinding met het apparaat.

  • configurationValue

    getal

  • callback

    functie optioneel

    De parameter callback ziet er zo uit:

    () => void

Retourzendingen

  • Promise<void>

    Chrome 116 of hoger

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

setInterfaceAlternateSetting()

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

Selecteert een alternatieve instelling voor een eerder geclaimde interface.

Parameters

  • gebruikersnaam

    Een open verbinding met het apparaat waar deze interface is geclaimd.

  • interfaceNumber

    getal

    De interface die je wilt instellen.

  • alternateSetting

    getal

    De alternatieve instelling die je wilt configureren.

  • callback

    functie optioneel

    De parameter callback ziet er zo uit:

    () => void

Retourzendingen

  • Promise<void>

    Chrome 116 of hoger

    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 als een apparaat aan het systeem wordt toegevoegd. Gebeurtenissen worden alleen uitgezonden naar apps en extensies die toegangsrechten hebben voor het apparaat. Het recht is misschien verleend tijdens de installatie, toen de gebruiker een optioneel recht accepteerde (zie permissions.request) of via getUserSelectedDevices.

Parameters

  • callback

    functie

    De parameter callback ziet er zo uit:

    (device: Device) => void

onDeviceRemoved

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

Gebeurtenis die wordt gegenereerd als een apparaat uit het systeem wordt verwijderd. Ga naar onDeviceAdded voor de gebeurtenissen die worden geleverd.

Parameters

  • callback

    functie

    De parameter callback ziet er zo uit:

    (device: Device) => void