Comment sélectionner un paramètre d’interface USB (application UWP)
Cet article montre comment modifier un paramètre au sein d’une interface USB. Utilisez l’objet UsbInterfaceSetting pour obtenir le paramètre actuel et définir un paramètre dans l’interface.
Avant de commencer
- Vous devez avoir ouvert l’appareil et obtenu l’objet UsbDevice . Consultez Comment se connecter à un périphérique USB (application UWP).
- Les exemples de code sont basés sur l’exemple CustomUSBDevice. Vous pouvez télécharger l’exemple complet à partir de cette page de galerie de codes.
À propos des paramètres d’interface USB
Chaque interface USB expose un ou plusieurs points de terminaison regroupés dans les paramètres de l’interface. Ces paramètres sont définis par l’appareil et identifiés par un nombre appelé index de paramètre. Chaque interface ne doit avoir qu’un seul paramètre actif. Pour un appareil d’interface multiple, chaque interface doit avoir un paramètre actif. Si un paramètre est actif, les données peuvent être transférées vers ou à partir de ses points de terminaison. Les points de terminaison dans les paramètres non actifs sont désactivés pour les transferts de données.
Un paramètre est dit actif une fois qu’il a été sélectionné sur l’appareil. Le paramètre actif par défaut est le premier paramètre d’une interface.
Chaque paramètre est représenté par un objet UsbInterfaceSetting . À l’aide de l’objet, votre application UWP peut effectuer les opérations suivantes :
- Déterminez si un paramètre particulier est actif lors de l’énumération de tous les paramètres dans une interface.
- Lancez une demande qui sélectionne un paramètre.
Pour plus d’informations sur les paramètres d’interface USB, consultez Disposition des périphériques USB.
Obtenir le paramètre actif d’une interface USB
- Obtenez l’objet UsbInterface à partir de l’objet UsbDevice obtenu précédemment. Cet exemple de code obtient la première interface de la configuration USB. Pour un appareil à plusieurs interfaces, vous pouvez obtenir l’objet UsbInterface que vous souhaitez utiliser en énumérant toutes les interfaces. Vous pouvez obtenir ce tableau via la valeur de la propriété UsbConfiguration.UsbInterfaces .
- Obtenez tous les paramètres définis dans l’interface en tant que tableau d’objets UsbInterfaceSetting en obtenant la valeur de la propriété UsbInterface.InterfaceSettings .
- Énumérez le tableau et, dans chaque itération, case activée si le paramètre est actif en vérifiant la propriété UsbInterfaceSetting.Selected.
Cet exemple de code montre comment obtenir le numéro de paramètre pour tous les paramètres définis dans l’interface par défaut.
void GetInterfaceSetting (UsbDevice device)
{
auto interfaceSettings = device.InterfaceSettings;
for each(UsbInterfaceSetting interfaceSetting in interfaceSettings)
{
if (interfaceSetting->Selected)
{
uint8 interfaceSettingNumber = interfaceSetting.InterfaceDescriptor.AlternateSettingNumber;
// Use the interface setting number. Not shown.
break;
}
}
}
Définir un paramètre d’interface USB
Pour sélectionner un paramètre qui n’est pas actif actuellement, vous devez rechercher l’objet UsbInterfaceSetting pour le paramètre à sélectionner, puis démarrer une opération asynchrone en appelant la méthode UsbInterfaceSetting.SelectSettingAsync . L’opération ne retourne pas de valeur.
private async void SetInterfaceSetting(UsbDevice device, Byte settingNumber)
{
var interfaceSetting = device.DefaultInterface.InterfaceSettings[settingNumber];
await interfaceSetting.SelectSettingAsync();
MainPage.Current.NotifyUser("Interface Setting is set to " + settingNumber, NotifyType.StatusMessage);
}