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
usbBeschikbaarheid
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
indexwordt 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
0betekent 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
Synchronisatietype optioneel
Overdrachtssynchronisatiemodus (alleen isochroon).
- type
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
VerouderdGelijkwaardig aan het instellen
DeviceFilter.productId. - leveranciers-ID
nummer optioneel
VerouderdGelijkwaardig 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
0betekent 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
packetLengthgrenzen 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.
undefinedvoor uitvoeroverdrachten. - resultaatcode
nummer optioneel
Een waarde van
0geeft 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()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Voert een bulkoverdracht uit op het opgegeven apparaat.
Parameters
- hendel
Een open verbinding met het apparaat.
- transferInfo
De overdrachtsparameters.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(info: TransferResultInfo) => void
- informatie
Retourneert
Promise< TransferResultInfo >
Chrome 116+Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
claimInterface()
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
- hendel
Een open verbinding met het apparaat.
- interfaceNummer
nummer
De interface die geclaimd moet worden.
- terugbelverzoek
functie optioneel
De
callbackparameter 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()
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
- hendel
De
ConnectionHandleom te sluiten. - terugbelverzoek
functie optioneel
De
callbackparameter 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.
controlTransfer()
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
- hendel
Een open verbinding met het apparaat.
- transferInfo
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(info: TransferResultInfo) => void
- informatie
Retourneert
Promise< TransferResultInfo >
Chrome 116+Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
findDevices()
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
De eigenschappen waarnaar op de doelapparaten gezocht moet worden.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(handles: ConnectionHandle[]) => void
- handvatten
Retourneert
Promise< ConnectionHandle []>
Chrome 116+Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
): Promise<ConfigDescriptor>
Geeft de configuratiebeschrijving weer voor de momenteel geselecteerde configuratie.
Parameters
- hendel
Een open verbinding met het apparaat.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(config: ConfigDescriptor) => void
- configuratie
Retourneert
Promise< ConfigDescriptor >
Chrome 116+Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
): Promise<ConfigDescriptor[]>
Geeft de volledige set apparaatconfiguratiebeschrijvingen terug.
Parameters
- apparaat
Het
Devicewaarvan de beschrijvingen moeten worden opgehaald. - terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(configs: ConfigDescriptor[]) => void
- configuraties
Retourneert
Promise< ConfigDescriptor []>
Chrome 116+Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
): Promise<Device[]>
Geeft een overzicht van de aangesloten USB-apparaten.
Parameters
Retourneert
Promise< Apparaat []>
Chrome 116+Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
getUserSelectedDevices()
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
Retourneert
Promise< Apparaat []>
Chrome 116+Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Voert een interruptoverdracht uit op het opgegeven apparaat.
Parameters
- hendel
Een open verbinding met het apparaat.
- transferInfo
De overdrachtsparameters.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(info: TransferResultInfo) => void
- informatie
Retourneert
Promise< TransferResultInfo >
Chrome 116+Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Voert een isochrone overdracht uit op het specifieke apparaat.
Parameters
- hendel
Een open verbinding met het apparaat.
- transferInfo
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(info: TransferResultInfo) => void
- informatie
Retourneert
Promise< TransferResultInfo >
Chrome 116+Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
): Promise<InterfaceDescriptor[]>
Geeft een overzicht van alle interfaces op een USB-apparaat.
Parameters
- hendel
Een open verbinding met het apparaat.
- terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(descriptors: InterfaceDescriptor[]) => void
- beschrijvingen
Retourneert
Promise< InterfaceDescriptor []>
Chrome 116+Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
): Promise<ConnectionHandle>
Opent een USB-apparaat dat is geretourneerd door getDevices .
Parameters
- apparaat
Het
Devicemoet worden geopend. - terugbelverzoek
functie optioneel
De
callbackparameter ziet er als volgt uit:(handle: ConnectionHandle) => void
- hendel
Retourneert
Promise< ConnectionHandle >
Chrome 116+Promises worden alleen ondersteund voor Manifest V3 en later; voor andere platforms moeten callbacks worden gebruikt.
releaseInterface()
chrome.usb.releaseInterface(
handle: ConnectionHandle,
interfaceNumber: number,
callback?: function,
): Promise<void>
Geeft een geclaimde interface vrij.
Parameters
- hendel
Een open verbinding met het apparaat.
- interfaceNummer
nummer
De interface wordt binnenkort uitgebracht.
- terugbelverzoek
functie optioneel
De
callbackparameter 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()
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
Devicewaartoe toegang moet worden aangevraagd. - interfaceId
nummer
De specifieke interface die is aangevraagd.
- terugbelverzoek
functie optioneel
De
callbackparameter 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()
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
- hendel
Een verbindingshendel om te resetten.
- terugbelverzoek
functie optioneel
De
callbackparameter 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()
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
- hendel
Een open verbinding met het apparaat.
- configuratiewaarde
nummer
- terugbelverzoek
functie optioneel
De
callbackparameter 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()
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
- hendel
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
callbackparameter 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
callbackparameter ziet er als volgt uit:(device: Device) => void
- apparaat
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.