Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo demonstra como alterar uma configuração dentro de uma interface USB. Use o objeto UsbInterfaceSetting para obter a configuração atual e configurar a interface.
Antes de começar
- Você deve ter aberto o dispositivo e obtido o objeto UsbDevice . Leia Como se conectar a um dispositivo USB (aplicativo UWP).
- Os exemplos de código são baseados no exemplo CustomUSBDevice. Você pode baixar o exemplo completo nesta página da galeria de códigos.
Sobre as configurações da interface USB
Cada interface USB expõe um ou mais terminais agrupados nas configurações de interface. Essas configurações são definidas pelo dispositivo e identificadas com um número chamado índice de configuração . Cada interface deve ter apenas uma configuração ativa. Para um dispositivo de interface múltipla, cada interface deve ter uma configuração ativa. Se uma configuração estiver ativa, os dados poderão ser transferidos de ou para seus pontos de extremidade. Os pontos de extremidade em configurações não ativas são desabilitados para transferências de dados.
Diz-se que uma configuração está ativa depois de ter sido selecionada no dispositivo. A configuração ativa padrão é a primeira configuração de uma interface.
Cada configuração é representada por um objeto UsbInterfaceSetting. Usando o objeto, seu aplicativo UWP pode executar estas operações:
- Determine se uma configuração específica está ativa ao enumerar todas as configurações em uma interface.
- Inicie uma solicitação que seleciona uma configuração.
Para obter informações sobre as configurações da interface USB, consulte layout do dispositivo USB.
Obtenha a configuração ativa de uma interface USB
- Obtenha o objeto UsbInterface a partir do objeto UsbDevice obtido anteriormente. Este exemplo de código obtém a primeira interface na configuração USB. Para um dispositivo de várias interfaces, você pode obter o objeto UsbInterface que deseja usar enumerando todas as interfaces. Você pode obter essa matriz através do valor da propriedade UsbConfiguration.UsbInterfaces.
- Obtenha todas as configurações definidas na interface como uma matriz de objetos UsbInterfaceSetting ao obter o valor da propriedade UsbInterface.InterfaceSettings.
- Enumere a matriz e, em cada iteração, verifique se a configuração está ativa, verificando a UsbInterfaceSetting.Selected propriedade.
Este código de exemplo mostra como obter o número de configuração para todas as configurações definidas na interface padrão.
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;
}
}
}
Definir uma configuração de interface USB
Para selecionar uma configuração que não está ativa no momento, deve-se encontrar o objeto UsbInterfaceSetting para selecionar a configuração e, em seguida, iniciar uma operação assíncrona chamando o método UsbInterfaceSetting.SelectSettingAsync. A operação não retorna um valor.
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);
}