다음을 통해 공유


USB 인터페이스 설정을 선택하는 방법(UWP 앱)

이 문서에서는 USB 인터페이스 내에서 설정을 변경하는 방법을 보여 줍니다. UsbInterfaceSetting 개체를 사용하여 현재 설정을 가져와서 인터페이스에서 설정을 설정합니다.

시작하기 전에

USB 인터페이스 설정 정보

각 USB 인터페이스는 인터페이스 설정에서 그룹화된 하나 이상의 엔드포인트를 노출합니다. 이러한 설정은 디바이스 정의이며 설정 인덱스라는 숫자로 식별됩니다. 각 인터페이스에는 하나의 활성 설정 있어야 합니다. 여러 인터페이스 디바이스의 경우 각 인터페이스에 활성 설정이 있어야 합니다. 설정이 활성 상태이면 해당 엔드포인트로 또는 엔드포인트에서 데이터를 전송할 수 있습니다. 비활성 설정의 엔드포인트는 데이터 전송에 사용할 수 없습니다.

설정은 디바이스에서 선택된 후 활성 상태라고 합니다. 기본 활성 설정은 인터페이스의 첫 번째 설정입니다.

각 설정은 UsbInterfaceSetting 개체로 표시됩니다. 개체를 사용하면 UWP 앱에서 다음 작업을 수행할 수 있습니다.

  • 인터페이스의 모든 설정을 열거하는 동안 특정 설정이 활성 상태인지 여부를 확인합니다.
  • 설정을 선택하는 요청을 시작합니다.

USB 인터페이스 설정에 대한 자세한 내용은 USB 디바이스 레이아웃을 참조하세요.

USB 인터페이스의 활성 설정 가져오기

  1. 이전에 가져온 UsbDevice 개체에서 UsbInterface 개체를 가져옵니다. 이 코드 예제에서는 USB 구성의 첫 번째 인터페이스를 가져옵니다. 다중 인터페이스 디바이스의 경우 모든 인터페이스를 열거하여 사용하려는 UsbInterface 개체를 가져올 수 있습니다. UsbConfiguration.UsbInterfaces 속성 값을 통해 해당 배열을 가져올 수 있습니다.
  2. UsbInterface.InterfaceSettings 속성 값을 가져와서 인터페이스에 정의된 모든 설정을 UsbInterfaceSetting 개체의 배열로 가져옵니다.
  3. 배열을 열거하고 각 반복에서 UsbInterfaceSetting.Selected 속성을 확인하여 설정이 활성 상태인지 확인합니다.

이 예제 코드는 기본 인터페이스에 정의된 모든 설정에 대한 설정 번호를 가져오는 방법을 보여 있습니다.

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;
            }
        }
}

USB 인터페이스 설정

현재 활성화되지 않은 설정을 선택하려면 UsbInterfaceSetting.SelectSettingAsync 메서드를 호출하여 비동기 작업을 시작할 설정에 대한 UsbInterfaceSetting 개체를 찾아야 합니다. 작업에서 값을 반환하지 않습니다.

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);
}

또한 참조하십시오