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 le contexte d'une application. Elle permet aux applications de fonctionner comme pilotes pour des 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 seront pas définis.

Autorisations

usb

Types

ConfigDescriptor

Propriétés

  • actif

    boolean

    Chrome 47 ou version ultérieure

    S'agit-il de la configuration active ?

  • configurationValue

    number

    Numéro de configuration.

  • description

    string facultatif

    Description de la configuration.

  • extra_data

    ArrayBuffer

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

  • de commande

    Interfaces disponibles

  • maxPower

    number

    Puissance maximale nécessaire à l'appareil en milliampères (mA).

  • remoteWakeup

    boolean

    L'appareil est compatible avec la fonctionnalité de réveil à distance.

  • selfPowered

    boolean

    L'appareil est auto-alimenté.

ConnectionHandle

Propriétés

  • handle

    number

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

  • productId

    number

    ID produit.

  • vendorId

    number

    ID du fournisseur de l'appareil.

ControlTransferInfo

Propriétés

  • data

    ArrayBuffer facultatif

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

  • direction

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

  • index

    number

    Champ wIndex (voir Ibid).

  • length

    numéro facultatif

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

  • destinataire

    Cible du transfert. La cible donnée par index doit être revendiquée si elle est définie sur "interface" ou "endpoint".

  • request

    number

    Champ bRequest, voir Universal Serial Bus Specification Révision 1.1 § 9.3

  • requestType

    Type de requête.

  • pause

    numéro facultatif

    Chrome 43 et versions ultérieures

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

  • valeur

    number

    Champ wValue (voir Ibid).

Device

Propriétés

  • appareil

    number

    ID opaque du périphérique USB. Il reste inchangé jusqu'au débranchement de l'appareil.

  • manufacturerName

    chaîne

    Chrome 46 ou version ultérieure

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

  • productId

    number

    ID produit.

  • productName

    chaîne

    Chrome 46 ou version ultérieure

    Chaîne iProduct lue à partir de l'appareil, le cas échéant.

  • serialNumber

    chaîne

    Chrome 46 ou version ultérieure

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

  • vendorId

    number

    ID du fournisseur de l'appareil.

  • version

    number

    Chrome 51 et versions ultérieures

    Version de l'appareil (champ "bcdDevice").

DeviceFilter

Propriétés

  • interfaceClass

    numéro facultatif

    Classe d'interface USB, correspondant à 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 d'interface correspond.

  • productId

    numéro facultatif

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

  • vendorId

    numéro facultatif

    ID du fournisseur de l'appareil.

DevicePromptOptions

Propriétés

  • filtres

    DeviceFilter[] facultatif

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

  • plusieurs

    Booléen facultatif

    Autoriser l'utilisateur à sélectionner plusieurs appareils

Direction

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

Enum

"out"

EndpointDescriptor

Propriétés

  • adresse

    number

    Adresse du point de terminaison.

  • direction

    Direction du transfert.

  • extra_data

    ArrayBuffer

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

  • maximumPacketSize

    number

    Taille maximale des paquets.

  • pollingInterval

    numéro facultatif

    Intervalle d'interrogation (interruption et isochrone uniquement).

  • de l'audiodescription

    Transfert du mode de synchronisation (isochrone uniquement).

  • Type de transfert.

  • utilisation

    UsageType facultatif

    Indice d'utilisation des points de terminaison.

EnumerateDevicesAndRequestAccessOptions

Propriétés

  • interfaceId

    numéro facultatif

    ID de l'interface à laquelle demander l'accès. Disponible uniquement sur Chrome OS. Cela n'a aucun effet sur les autres plates-formes.

  • productId

    number

    ID produit.

  • vendorId

    number

    ID du fournisseur de l'appareil.

EnumerateDevicesOptions

Propriétés

  • filtres

    DeviceFilter[] facultatif

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

  • productId

    numéro facultatif

    Obsolète

    Équivaut à définir DeviceFilter.productId.

  • vendorId

    numéro facultatif

    Obsolète

    Équivaut à définir DeviceFilter.vendorId.

GenericTransferInfo

Propriétés

  • data

    ArrayBuffer facultatif

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

  • direction

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

  • point de terminaison

    number

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

  • length

    numéro facultatif

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

  • pause

    numéro facultatif

    Chrome 43 et versions ultérieures

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

InterfaceDescriptor

Propriétés

  • alternateSetting

    number

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

  • description

    string facultatif

    Description de l'interface.

  • endpoints

    Points de terminaison disponibles.

  • extra_data

    ArrayBuffer

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

  • interfaceClass

    number

    Classe d'interface USB

  • interfaceNumber

    number

    Numéro d'interface.

  • interfaceProtocol

    number

    Protocole d'interface USB

  • interfaceSubclass

    number

    Sous-classe d'interface USB.

IsochronousTransferInfo

Propriétés

  • packetLength

    number

    Longueur de chacun des paquets de ce transfert.

  • paquets

    number

    Nombre total de paquets dans ce transfert.

  • transferInfo

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

Recipient

Enum

"device"

"interface"

"endpoint"

RequestType

Enum

"standard"

"class"

"vendor"

SynchronizationType

Pour les modes d'interruption et isoochre, les éléments SynchronizationType et UsageType correspondent à leurs homologues dans la spécification USB.

Enum

"adaptive"

TransferResultInfo

Propriétés

  • data

    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

Enum

"control"

"isochronous"

"bulk"

UsageType

Enum

"data"

"explicitFeedback"

"periodic"

"notification"

Méthodes

bulkTransfer()

Promesse
chrome.usb.bulkTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

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

Paramètres

Renvoie

  • 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()

Promesse
chrome.usb.claimInterface(
  handle: ConnectionHandle,
  interfaceNumber: number,
  callback?: function,
)

Revend une interface sur un appareil USB. Avant de pouvoir transférer des données vers une interface ou des points de terminaison associés, vous devez revendiquer l'interface. 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 ouverte à l'appareil.

  • interfaceNumber

    number

    Interface à revendiquer.

  • rappel

    fonction facultative

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

    ()=>void

Renvoie

  • Promise<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()

Promesse
chrome.usb.closeDevice(
  handle: ConnectionHandle,
  callback?: function,
)

Ferme un handle de connexion. Appeler des opérations sur un handle après sa fermeture est une opération sûre, mais n'entraîne aucune action.

Paramètres

Renvoie

  • Promise<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()

Promesse
chrome.usb.controlTransfer(
  handle: ConnectionHandle,
  transferInfo: ControlTransferInfo,
  callback?: function,
)

Effectue un transfert des commandes 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

  • 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()

Promesse
chrome.usb.findDevices(
  options: EnumerateDevicesAndRequestAccessOptions,
  callback?: function,
)

Recherche les appareils USB spécifiés par le fournisseur, le produit et (éventuellement) les ID d'interface, et détermine si les autorisations le permettent.

Si la demande d'accès est rejetée ou si l'appareil ne s'ouvre pas, aucun identifiant de connexion n'est créé ni renvoyé.

L'appel de cette méthode équivaut à appeler getDevices suivi de openDevice pour chaque appareil.

Paramètres

Renvoie

  • Promise<ConnectionHandle[]>

    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()

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

  • 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()

Promesse Chrome 47 et versions ultérieures
chrome.usb.getConfigurations(
  device: Device,
  callback?: function,
)

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

Paramètres

Renvoie

  • Promise<ConfigDescriptor[]>

    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()

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

    fonction facultative

    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()

Promesse
chrome.usb.getUserSelectedDevices(
  options: DevicePromptOptions,
  callback?: function,
)

Présente à l'utilisateur un sélecteur d'appareil et les Device sélectionnées. Si l'utilisateur annule, les appareils de sélection 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 sera exécuté comme si l'utilisateur avait annulé.

Paramètres

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

  • rappel

    fonction facultative

    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()

Promesse
chrome.usb.interruptTransfer(
  handle: ConnectionHandle,
  transferInfo: GenericTransferInfo,
  callback?: function,
)

Effectue un transfert des interruptions sur l'appareil spécifié.

Paramètres

Renvoie

  • 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()

Promesse
chrome.usb.isochronousTransfer(
  handle: ConnectionHandle,
  transferInfo: IsochronousTransferInfo,
  callback?: function,
)

Effectue un transfert isochrone sur l'appareil spécifique.

Paramètres

Renvoie

  • 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()

Promesse
chrome.usb.listInterfaces(
  handle: ConnectionHandle,
  callback?: function,
)

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

Paramètres

Renvoie

  • 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()

Promesse
chrome.usb.openDevice(
  device: Device,
  callback?: function,
)

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

Paramètres

Renvoie

  • 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()

Promesse
chrome.usb.releaseInterface(
  handle: ConnectionHandle,
  interfaceNumber: number,
  callback?: function,
)

Annule une interface revendiquée.

Paramètres

  • Connexion ouverte à l'appareil.

  • interfaceNumber

    number

    Interface à publier.

  • rappel

    fonction facultative

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

    ()=>void

Renvoie

  • Promise<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()

Promesse Obsolète
chrome.usb.requestAccess(
  device: Device,
  interfaceId: number,
  callback?: function,
)

Cette fonction était spécifique à Chrome OS et l'appel sur d'autres plates-formes échouait. Cette opération est désormais exécutée implicitement dans le cadre de openDevice et cette fonction renvoie true sur toutes les plates-formes.

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

Paramètres

  • appareil

    Le Device auquel demander l'accès.

  • interfaceId

    number

    L'interface demandée

  • rappel

    fonction facultative

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

    (success: boolean)=>void

    • success

      boolean

Renvoie

  • Promise<boolean>

    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()

Promesse
chrome.usb.resetDevice(
  handle: ConnectionHandle,
  callback?: function,
)

Essaie de réinitialiser le périphérique USB. Si la réinitialisation échoue, l'identifiant de connexion indiqué est fermé 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

    fonction facultative

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

    (success: boolean)=>void

    • success

      boolean

Renvoie

  • Promise<boolean>

    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()

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. Toutefois, la configuration de certains appareils présentant des bugs est 0 fonctionnelle. Cette valeur est donc autorisée.

Paramètres

  • Connexion ouverte à l'appareil.

  • configurationValue

    number

  • rappel

    fonction facultative

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

    ()=>void

Renvoie

  • Promise<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()

Promesse
chrome.usb.setInterfaceAlternateSetting(
  handle: ConnectionHandle,
  interfaceNumber: number,
  alternateSetting: number,
  callback?: function,
)

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

Paramètres

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

  • interfaceNumber

    number

    Interface à configurer.

  • alternateSetting

    number

    Autre paramètre à configurer.

  • rappel

    fonction facultative

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

    ()=>void

Renvoie

  • Promise<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'auprès des applications et des 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

    function

    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 la section onDeviceAdded pour connaître les événements qui sont diffusés.

Paramètres

  • rappel

    function

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

    (device: Device)=>void