chrome.usb

Description

Utilisez l'API chrome.usb pour interagir avec les appareils USB connectés. Cette API permet d'accéder aux opérations USB depuis une application. À l'aide de cette API, les applications peuvent fonctionner comme pilotes de périphériques matériels. Les erreurs générées par cette API sont signalées en définissant runtime.lastError et en exécutant le rappel standard de la fonction. Dans ce cas, les paramètres standards du rappel ne sont pas définis.

Autorisations

usb

Types

ConfigDescriptor

Propriétés

  • actif

    booléen

    Chrome (version 47 ou ultérieure)

    S'agit-il de la configuration active ?

  • configurationValue

    Nombre

    Numéro de configuration.

  • description

    chaîne facultatif

    Description de la configuration.

  • extra_data

    ArrayBuffer

    Données de descripteur supplémentaires associées à cette configuration.

  • de commande

    Interfaces disponibles

  • maxPower

    Nombre

    Puissance maximale requise par cet appareil en milliampères (mA).

  • remoteWakeup

    booléen

    L'appareil est compatible avec l'activation à distance.

  • selfPowered

    booléen

    L'appareil est autonome.

ConnectionHandle

Propriétés

  • handle

    Nombre

    Poignée opaque représentant cette connexion au périphérique USB et à toutes les interfaces revendiquées associées et aux transferts en attente. Un nouvel identifiant est créé chaque fois que l'appareil est ouvert. Le handle de connexion est différent de Device.device.

  • productId

    Nombre

    ID du produit.

  • vendorId

    Nombre

    ID du fournisseur de l'appareil.

ControlTransferInfo

Propriétés

  • données

    ArrayBuffer facultatif

    Données à transmettre (requis uniquement pour les transferts de sortie).

  • direction

    Sens de correspondance ("in" ou "out").

  • index

    Nombre

    Pour le champ wIndex, consultez Ibid.

  • longueur

    numéro facultatif

    Nombre maximal d'octets à recevoir (requis uniquement pour les transferts d'entrée).

  • destinataire

    Cible de transfert. La cible indiquée par index doit être revendiquée si "interface" ou "endpoint".

  • request

    Nombre

    Le champ bRequest, consultez la section Révision 1.1 des spécifications du bus série universel paragraphe 9.3.

  • requestType

    Type de requête.

  • délai avant expiration

    numéro facultatif

    Chrome 43 ou version ultérieure

    Délai avant expiration de la requête (en millisecondes). La valeur par défaut 0 indique l'absence de délai avant expiration.

  • valeur

    Nombre

    Pour le champ wValue, consultez Ibid.

Device

Propriétés

  • appareil

    Nombre

    Identifiant opaque du périphérique USB. Elle reste inchangée jusqu'à ce que l'appareil soit débranché.

  • manufacturerName

    chaîne

    Chrome (version 46 ou ultérieure)

    Chaîne iManufacturer lue sur l'appareil, si disponible.

  • productId

    Nombre

    ID du produit.

  • productName

    chaîne

    Chrome (version 46 ou ultérieure)

    Chaîne iProduct lue à partir de l'appareil, si disponible.

  • serialNumber

    chaîne

    Chrome (version 46 ou ultérieure)

    La chaîne iSerialNumber est lue sur l'appareil, si elle est disponible.

  • vendorId

    Nombre

    ID du fournisseur de l'appareil.

  • version

    Nombre

    Chrome (version 51 ou ultérieure)

    Version de l'appareil (champ bcdDevice).

DeviceFilter

Propriétés

  • interfaceClass

    numéro facultatif

    Classe d'interface USB, correspond à n'importe quelle interface de l'appareil.

  • interfaceProtocol

    numéro facultatif

    Protocole d'interface USB, coché uniquement si la sous-classe d'interface correspond.

  • interfaceSubclass

    numéro facultatif

    Sous-classe d'interface USB, cochée uniquement si la classe de l'interface correspond.

  • productId

    numéro facultatif

    ID produit de l'appareil, coché uniquement si l'ID du fournisseur correspond.

  • vendorId

    numéro facultatif

    ID du fournisseur de l'appareil.

DevicePromptOptions

Propriétés

  • filtres

    DeviceFilter[] facultatif

    Filtrer la liste des appareils présentés à l'utilisateur Si plusieurs filtres sont fournis, les appareils correspondant à l'un des filtres s'affichent.

  • plusieurs

    Booléen facultatif

    Autorisez l'utilisateur à sélectionner plusieurs appareils.

Direction

Direction, Recipient, RequestType et TransferType sont tous mappés avec leur nom dans la spécification USB.

Énumération

"dans"

"out"

EndpointDescriptor

Propriétés

  • adresse

    Nombre

    Adresse du point de terminaison.

  • direction

    Transférez l'itinéraire.

  • extra_data

    ArrayBuffer

    Données de descripteur supplémentaires associées à ce point de terminaison.

  • maximumPacketSize

    Nombre

    Taille maximale des paquets.

  • pollingInterval

    numéro facultatif

    Intervalle d'interrogation (interruption et isochrone uniquement).

  • synchronisation

    Mode de synchronisation du transfert (isochronique uniquement).

  • Type de transfert.

  • utilisation

    UsageType facultatif

    Conseil sur l'utilisation du point de terminaison.

EnumerateDevicesAndRequestAccessOptions

Propriétés

  • interfaceId

    numéro facultatif

    ID d'interface auquel demander l'accès. Disponible uniquement sur ChromeOS. Cela n'a aucune incidence sur les autres plates-formes.

  • productId

    Nombre

    ID du produit.

  • vendorId

    Nombre

    ID du fournisseur de l'appareil.

EnumerateDevicesOptions

Propriétés

  • filtres

    DeviceFilter[] facultatif

    Un appareil correspondant à un filtre donné sera renvoyé. Une liste de filtres vide affichera tous les appareils pour lesquels l'application est autorisée.

  • productId

    numéro facultatif

    <ph type="x-smartling-placeholder"></ph> Obsolète

    Cela équivaut à définir DeviceFilter.productId.

  • vendorId

    numéro facultatif

    <ph type="x-smartling-placeholder"></ph> Obsolète

    Cela équivaut à définir DeviceFilter.vendorId.

GenericTransferInfo

Propriétés

  • données

    ArrayBuffer facultatif

    Données à transmettre (requis uniquement pour les transferts de sortie).

  • direction

    Sens de correspondance ("in" ou "out").

  • point de terminaison

    Nombre

    Adresse du point de terminaison cible. L'interface contenant ce point de terminaison doit être revendiquée.

  • longueur

    numéro facultatif

    Nombre maximal d'octets à recevoir (requis uniquement pour les transferts d'entrée).

  • délai avant expiration

    numéro facultatif

    Chrome 43 ou version ultérieure

    Délai avant expiration de la requête (en millisecondes). La valeur par défaut 0 indique l'absence de délai avant expiration.

InterfaceDescriptor

Propriétés

  • alternateSetting

    Nombre

    Numéro du paramètre alternatif de l'interface (0 par défaut)

  • description

    chaîne facultatif

    Description de l'interface.

  • endpoints

    Points de terminaison disponibles.

  • extra_data

    ArrayBuffer

    Données de descripteur supplémentaires associées à cette interface.

  • interfaceClass

    Nombre

    Classe d'interface USB.

  • interfaceNumber

    Nombre

    Numéro d'interface.

  • interfaceProtocol

    Nombre

    Protocole d'interface USB.

  • interfaceSubclass

    Nombre

    Sous-classe d'interface USB.

IsochronousTransferInfo

Propriétés

  • packetLength

    Nombre

    Longueur de chacun des paquets de ce transfert.

  • paquets

    Nombre

    Nombre total de paquets dans ce transfert.

  • transferInfo

    Paramètres de transfert. La longueur de transfert ou le tampon de données spécifié dans ce bloc de paramètres est divisé le long des limites packetLength pour former les paquets individuels du transfert.

Recipient

Énumération

"appareil"

"interface"

"point de terminaison"

"autre"

RequestType

Énumération

"standard"

"classe"

"vendor"

"réservé"

SynchronizationType

Pour les modes d'interruption et isochrone, les valeurs "SynchronizationType" et "UsageType" correspondent à leurs noms dans la spécification USB.

Énumération

"asynchrone"

"adaptatif"

"synchrone"

TransferResultInfo

Propriétés

  • données

    ArrayBuffer facultatif

    Données renvoyées par un transfert d'entrée. undefined pour les transferts de sortie.

  • resultCode

    numéro facultatif

    La valeur 0 indique que le transfert a réussi. D'autres valeurs indiquent un échec.

TransferType

Énumération

"contrôle"

"interrompre"

"isochronous"

"groupé"

UsageType

Énumération

"données"

"commentaires"

"explicitFeedback"

"periodic"

"notification"

Méthodes

bulkTransfer()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.bulkTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

Effectue un transfert groupé sur l'appareil spécifié.

Paramètres

Renvoie

  • Promise&lt;TransferResultInfo&gt;

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

claimInterface()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.claimInterface(
  handle: ConnectionHandle,
  interfaceNumber: number,
  callback?: function,
)

Permet de revendiquer une interface sur un périphérique USB. Pour que les données puissent être transférées vers une interface ou des points de terminaison associés, l'interface doit être revendiquée. Un seul handle de connexion peut revendiquer une interface à la fois. Si l'interface est déjà revendiquée, cet appel échouera.

releaseInterface doit être appelé lorsque l'interface n'est plus nécessaire.

Paramètres

  • Connexion à l'appareil ouverte.

  • interfaceNumber

    Nombre

    Interface à revendiquer.

  • rappel

    function facultatif

    Le paramètre callback se présente comme suit:

    () => void

Renvoie

  • Promesse<void>

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

closeDevice()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.closeDevice(
  handle: ConnectionHandle,
  callback?: function,
)

Ferme une poignée de connexion. L'appel d'opérations sur un handle après sa fermeture est une opération sûre, mais aucune action ne sera effectuée.

Paramètres

Renvoie

  • Promesse<void>

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

controlTransfer()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.controlTransfer(
  handle: ConnectionHandle,
  transferInfo: ControlTransferInfo,
  callback?: function,
)

Effectue un transfert de contrôle sur l'appareil spécifié.

Les transferts de contrôle font référence à l'appareil, à une interface ou à un point de terminaison. Les transferts vers une interface ou un point de terminaison nécessitent que l'interface soit revendiquée.

Paramètres

Renvoie

  • Promise&lt;TransferResultInfo&gt;

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

findDevices()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.findDevices(
  options: EnumerateDevicesAndRequestAccessOptions,
  callback?: function,
)

Recherche les appareils USB spécifiés par les ID du fournisseur, du produit et de l'interface (éventuellement). Si les autorisations le permettent, ils peuvent être utilisés.

Si la demande d'accès est refusée ou si l'appareil ne peut pas être ouvert, aucun identifiant de connexion ne sera créé ni renvoyé.

Appeler cette méthode revient à appeler getDevices, suivi de openDevice pour chaque appareil.

Paramètres

Renvoie

  • Promise&lt;ConnectionHandle[]&gt;

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

getConfiguration()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.getConfiguration(
  handle: ConnectionHandle,
  callback?: function,
)

Récupère le descripteur de configuration pour la configuration actuellement sélectionnée.

Paramètres

Renvoie

  • Promise&lt;ConfigDescriptor&gt;

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

getConfigurations()

<ph type="x-smartling-placeholder"></ph> Promesse Chrome (version 47 ou ultérieure)
chrome.usb.getConfigurations(
  device: Device,
  callback?: function,
)

Renvoie l'ensemble complet des descripteurs de configuration de l'appareil.

Paramètres

Renvoie

  • Promise&lt;ConfigDescriptor[]&gt;

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

getDevices()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.getDevices(
  options: EnumerateDevicesOptions,
  callback?: function,
)

Énumère les appareils USB connectés.

Paramètres

  • Propriétés à rechercher sur les appareils cibles.

  • rappel

    function facultatif

    Le paramètre callback se présente comme suit:

    (devices: Device[]) => void

Renvoie

  • Promesse<Appareil[]>

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

getUserSelectedDevices()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.getUserSelectedDevices(
  options: DevicePromptOptions,
  callback?: function,
)

Présente un sélecteur d'appareil à l'utilisateur et renvoie les Device sélectionnés. Si l'utilisateur annule le sélecteur, les appareils seront vides. Un geste de l'utilisateur est nécessaire pour que la boîte de dialogue s'affiche. Sans geste de l'utilisateur, le rappel s'exécutera comme si l'utilisateur avait annulé l'appel.

Paramètres

  • Configuration de la boîte de dialogue de l'outil de sélection d'appareils.

  • rappel

    function facultatif

    Le paramètre callback se présente comme suit:

    (devices: Device[]) => void

Renvoie

  • Promesse<Appareil[]>

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

interruptTransfer()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.interruptTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

Effectue un transfert d'interruption sur l'appareil spécifié.

Paramètres

Renvoie

  • Promise&lt;TransferResultInfo&gt;

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

isochronousTransfer()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.isochronousTransfer(
  handle: ConnectionHandle,
  transferInfo: IsochronousTransferInfo,
  callback?: function,
)

Effectue un transfert isochrone sur l'appareil concerné.

Paramètres

Renvoie

  • Promise&lt;TransferResultInfo&gt;

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

listInterfaces()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.listInterfaces(
  handle: ConnectionHandle,
  callback?: function,
)

Liste toutes les interfaces d'un périphérique USB.

Paramètres

Renvoie

  • Promise&lt;InterfaceDescriptor[]&gt;

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

openDevice()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.openDevice(
  device: Device,
  callback?: function,
)

Ouvre un périphérique USB renvoyé par getDevices.

Paramètres

Renvoie

  • Promise&lt;ConnectionHandle&gt;

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

releaseInterface()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.releaseInterface(
  handle: ConnectionHandle,
  interfaceNumber: number,
  callback?: function,
)

Libère une interface revendiquée.

Paramètres

  • Connexion à l'appareil ouverte.

  • interfaceNumber

    Nombre

    Interface à publier.

  • rappel

    function facultatif

    Le paramètre callback se présente comme suit:

    () => void

Renvoie

  • Promesse<void>

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

requestAccess()

<ph type="x-smartling-placeholder"></ph> Promesse Obsolète
chrome.usb.requestAccess(
  device: Device,
  interfaceId: number,
  callback?: function,
)

Cette fonction était spécifique à ChromeOS et son appel sur d'autres plates-formes échouait. Cette opération est désormais effectuée implicitement dans openDevice, et cette fonction renvoie true sur toutes les plates-formes.

Demande l'accès à un appareil revendiqué par Chrome OS auprès de l'agent d'autorisations si l'interface donnée sur l'appareil n'est pas revendiquée.

Paramètres

  • appareil

    Le Device auquel demander l'accès

  • interfaceId

    Nombre

    L'interface particulière demandée.

  • rappel

    function facultatif

    Le paramètre callback se présente comme suit:

    (success: boolean) => void

    • success

      booléen

Renvoie

  • Promise&lt;boolean&gt;

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

resetDevice()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.resetDevice(
  handle: ConnectionHandle,
  callback?: function,
)

Essaie de réinitialiser le périphérique USB. Si la réinitialisation échoue, la poignée de connexion donnée sera fermée et le périphérique USB semble être déconnecté, puis reconnecté. Dans ce cas, getDevices ou findDevices doit être appelé à nouveau pour acquérir l'appareil.

Paramètres

  • Poignée de connexion à réinitialiser.

  • rappel

    function facultatif

    Le paramètre callback se présente comme suit:

    (success: boolean) => void

    • success

      booléen

Renvoie

  • Promise&lt;boolean&gt;

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

setConfiguration()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.setConfiguration(
  handle: ConnectionHandle,
  configurationValue: number,
  callback?: function,
)

Sélectionnez une configuration d'appareil.

Cette fonction réinitialise efficacement l'appareil en sélectionnant l'une des configurations disponibles. Seules les valeurs de configuration supérieures à 0 sont valides. Cependant, certains appareils présentant des bugs ont une configuration 0 fonctionnelle. Cette valeur est donc autorisée.

Paramètres

  • Connexion à l'appareil ouverte.

  • configurationValue

    Nombre

  • rappel

    function facultatif

    Le paramètre callback se présente comme suit:

    () => void

Renvoie

  • Promesse<void>

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

setInterfaceAlternateSetting()

<ph type="x-smartling-placeholder"></ph> Promesse
chrome.usb.setInterfaceAlternateSetting(
  handle: ConnectionHandle,
  interfaceNumber: number,
  alternateSetting: number,
  callback?: function,
)

Sélectionne un autre paramètre dans une interface précédemment revendiquée.

Paramètres

  • Une connexion ouverte à l'appareil sur lequel cette interface a été revendiquée.

  • interfaceNumber

    Nombre

    Interface à configurer.

  • alternateSetting

    Nombre

    Autre paramètre à configurer.

  • rappel

    function facultatif

    Le paramètre callback se présente comme suit:

    () => void

Renvoie

  • Promesse<void>

    Chrome 116 et versions ultérieures

    Les promesses ne sont compatibles qu'avec Manifest V3 et versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

Événements

onDeviceAdded

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

Événement généré lorsqu'un appareil est ajouté au système. Les événements ne sont diffusés qu'aux applications et extensions autorisées à accéder à l'appareil. L'autorisation peut avoir été accordée au moment de l'installation, lorsque l'utilisateur a accepté une autorisation facultative (voir permissions.request) ou via getUserSelectedDevices.

Paramètres

  • rappel

    fonction

    Le paramètre callback se présente comme suit:

    (device: Device) => void

onDeviceRemoved

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

Événement généré lorsqu'un appareil est supprimé du système. Consultez onDeviceAdded pour savoir quels événements sont diffusés.

Paramètres

  • rappel

    fonction

    Le paramètre callback se présente comme suit:

    (device: Device) => void