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
usbBeschikbaarheid
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
indexmoet 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
0geeft 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
SynchronizationType optioneel
Synchronisatiemodus voor overdracht (alleen isochroon).
-
type
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ëindigdDit is gelijk aan de instelling
DeviceFilter.productId. -
vendorId
number optioneel
BeëindigdDit 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
0geeft 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.
undefinedvoor uitvoeroverdrachten. -
resultCode
number optioneel
De waarde
0geeft 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()
chrome.usb.bulkTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Voert een bulkoverdracht uit op het aangegeven apparaat.
Parameters
-
gebruikersnaam
Een open verbinding met het apparaat.
-
transferInfo
De overdrachtsparameters.
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(info: TransferResultInfo) => void
-
info
-
Retourzendingen
-
Promise<TransferResultInfo>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
claimInterface()
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
callbackziet er zo uit:() => void
Retourzendingen
-
Promise<void>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
closeDevice()
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
-
gebruikersnaam
De
ConnectionHandleom te sluiten. -
callback
functie optioneel
De parameter
callbackziet er zo uit:() => void
Retourzendingen
-
Promise<void>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
controlTransfer()
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
-
gebruikersnaam
Een open verbinding met het apparaat.
-
transferInfo
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(info: TransferResultInfo) => void
-
info
-
Retourzendingen
-
Promise<TransferResultInfo>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
findDevices()
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
-
De eigenschappen waarnaar moet worden gezocht op doelapparaten.
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(handles: ConnectionHandle[]) => void
-
gebruikersnamen
-
Retourzendingen
-
Promise<ConnectionHandle[]>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getConfiguration()
chrome.usb.getConfiguration(
handle: ConnectionHandle,
callback?: function,
): Promise<ConfigDescriptor>
Haalt de configuratiedescriptor op voor de geselecteerde configuratie.
Parameters
-
gebruikersnaam
Een open verbinding met het apparaat.
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(config: ConfigDescriptor) => void
-
config
-
Retourzendingen
-
Promise<ConfigDescriptor>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getConfigurations()
chrome.usb.getConfigurations(
device: Device,
callback?: function,
): Promise<ConfigDescriptor[]>
Retourneert de volledige set apparaatconfiguratie-descriptors.
Parameters
-
apparaat
De
Devicewaaruit de descriptors moeten worden opgehaald. -
callback
functie optioneel
De parameter
callbackziet er zo uit:(configs: ConfigDescriptor[]) => void
-
configs
-
Retourzendingen
-
Promise<ConfigDescriptor[]>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
getDevices()
chrome.usb.getDevices(
options: EnumerateDevicesOptions,
callback?: function,
): Promise<Device[]>
Maakt een lijst van verbonden USB-apparaten.
Parameters
Retourzendingen
-
Promise<Device[]>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
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, 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
Retourzendingen
-
Promise<Device[]>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
interruptTransfer()
chrome.usb.interruptTransfer(
handle: ConnectionHandle,
transferInfo: GenericTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Voert een interruptoverdracht uit op het aangegeven apparaat.
Parameters
-
gebruikersnaam
Een open verbinding met het apparaat.
-
transferInfo
De overdrachtsparameters.
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(info: TransferResultInfo) => void
-
info
-
Retourzendingen
-
Promise<TransferResultInfo>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
isochronousTransfer()
chrome.usb.isochronousTransfer(
handle: ConnectionHandle,
transferInfo: IsochronousTransferInfo,
callback?: function,
): Promise<TransferResultInfo>
Voert een isochrone overdracht uit op het specifieke apparaat.
Parameters
-
gebruikersnaam
Een open verbinding met het apparaat.
-
transferInfo
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(info: TransferResultInfo) => void
-
info
-
Retourzendingen
-
Promise<TransferResultInfo>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
listInterfaces()
chrome.usb.listInterfaces(
handle: ConnectionHandle,
callback?: function,
): Promise<InterfaceDescriptor[]>
Toont alle interfaces op een USB-apparaat.
Parameters
-
gebruikersnaam
Een open verbinding met het apparaat.
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(descriptors: InterfaceDescriptor[]) => void
-
beschrijvingen
-
Retourzendingen
-
Promise<InterfaceDescriptor[]>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
openDevice()
chrome.usb.openDevice(
device: Device,
callback?: function,
): Promise<ConnectionHandle>
Opent een USB-apparaat dat wordt geretourneerd door getDevices.
Parameters
-
apparaat
De
Deviceom te openen. -
callback
functie optioneel
De parameter
callbackziet er zo uit:(handle: ConnectionHandle) => void
-
gebruikersnaam
-
Retourzendingen
-
Promise<ConnectionHandle>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
releaseInterface()
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
callbackziet er zo uit:() => void
Retourzendingen
-
Promise<void>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
requestAccess()
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
Devicewaarvoor u toegang wilt aanvragen. -
interfaceId
getal
De specifieke interface die is aangevraagd.
-
callback
functie optioneel
De parameter
callbackziet er zo uit:(success: boolean) => void
-
geslaagd
booleaans
-
Retourzendingen
-
Promise<boolean>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
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 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
callbackziet er zo uit:(success: boolean) => void
-
geslaagd
booleaans
-
Retourzendingen
-
Promise<boolean>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
setConfiguration()
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
callbackziet er zo uit:() => void
Retourzendingen
-
Promise<void>
Chrome 116 of hogerPromises worden alleen ondersteund voor Manifest V3 en hoger. Andere platforms moeten callbacks gebruiken.
setInterfaceAlternateSetting()
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
callbackziet er zo uit:() => void
Retourzendingen
-
Promise<void>
Chrome 116 of hogerPromises 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
callbackziet er zo uit:(device: Device) => void
-
apparaat
-
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.