다음을 통해 공유


휴먼 디바이스 어댑터

HDA(휴먼 디바이스 어댑터)는 BTP(Bluetooth 테스트 플랫폼)와 수동으로 상호 작용하여 아직 자동화되지 않은 BTP를 사용하는 디바이스를 사용할 수 있는 직접 수행하는 방법입니다. 예를 들어 HDA를 사용하면 BTP에 연결할 명확한 방법이 없는 구매한 헤드셋과 상호 작용할 수 있습니다. HDA를 사용하면 Traduci와 같은 외부 하드웨어를 사용하지 않고 Windows 디바이스와 프로토타입 하드웨어 간에 수동 사용자 테스트를 수행할 수 있습니다. 따라서 설정에 필요한 것은 Bluetooth 및 사용자 고유의 테스트 디바이스를 지원하는 PC뿐입니다.

HDA 설정

HDA를 지원하려면 BTP 소프트웨어 설정 에 설명된 대로 소프트웨어를 설치합니다.

HDA 구성 파일

테스트 디바이스의 이름을 따서 명명된 구성 파일(예: mytestdevice.txt)을 만듭니다. 파일 이름 및 확장명은 중요하지 않습니다. 구성 파일에는 다음 정보가 포함되어야 합니다.

name=myTestDevice
baseband=BR
br_address=B4:F1:DA:96:C0:A4

HDA 페어링 테스트

BTP 소프트웨어 패키지가 추출된 폴더(일반적으로 C:\BTP)로 이동합니다. 스크립트는 패키지 디렉터리의 하위 폴더에 있습니다. 원하는 명령 환경에 적합한 스크립트를 실행합니다.

명령 환경 스크립트
관리자 권한 명령 프롬프트 RunPairingTests.bat HDA,conf_file=<configuration file name>
관리자 권한 PowerShell 콘솔 RunPairingTests.ps1 HDA,conf_file=<configuration file name>

선택적 매개 변수 -VerboseLogs 를 추가하여 디버깅을 지원하기 위해 BTP의 내부 작업에 대한 자세한 출력을 제공할 수 있습니다.

HDA 수동 페어링

  1. 스크립트는 디바이스가 이전에 페어링되었는지 묻습니다. y로 응답하면 스크립트가 페어링을 삭제합니다. n으로 응답하는 경우 프로세스는 아무 작업도 없이 계속됩니다.

    Verify: SUCCEEDED(WEX::TestExecution::RuntimeParameters::TryGetValue(deviceParameterName.c_str(), deviceParametersStr)): Getting required runtime parameter 'central'
    [BluetoothTests::PairingTestsImpl::PairingTestsImpl]: Using central device named: MyCentralDevice
    [BluetoothTests::PairingTestsImpl::PairingTestsImpl]: Using peripheral device named: MyTestDevice
    [BluetoothTestHelpers::Pairing::Unpair]: Unpairing device with address B4F1DA96C0A4 from the device with address D83BBFAC35607
    [BluetoothTestHelpers::Pairing::Unpair]: Unpaired successfully
    [BluetoothTestHelpers::Pairing::WaitForDisconnection]: Waiting for disconnection of device with address B4F1DA96C0A4
    [BluetoothTestHelpers::Pairing::WaitForDisconnection]: Asserted: connectionModule.WaitForDisconnection(otherDeviceAddress, c_disconnectionAfterUnpairingTimeout)
    [BluetoothTestHelpers::Pairing::WaitForDisconnection]: Disconnected successfully
    Is MyTestDevice paired to the device with address D83BBFAC35607?
    Enter (y/n): y
    

    다음 예제에서는 페어링을 삭제하는 HDA를 보여줍니다. 또한 디바이스에서 페어링 정보를 삭제하라는 메시지가 표시됩니다(여기서는 "MyTestDevice"로 명명됨). 페어링 정보가 삭제되면 아무 키나 눌러 계속합니다.

    [BluetoothTestHelpers::Pairing::Unpair]: Unpairing device with address D83BBFAC35607 Public from the device with address D83BBFAC35607 Public
    If possible, delete the pairing on MyTestDevice
    Press any key to continue
    
  2. 그런 다음, 스크립트는 검사를 실행하여 페어링 프로세스를 시작한 다음 사용자에게 디바이스(여기서는 "MyTestDevice"라는 이름)를 "밴드 페어링 모드"에 입력하라는 메시지를 표시합니다. 디바이스를 페어링 모드로 전환한 후 아무 키나 눌러 계속합니다.

    StartGroup: BluetoothTests::TaefPairingTests::OutgoingJustWorksPairingTest
    [BluetoothTests::PairingTestsImpl::OutgoingJustWorksPairingTest]: Will attempt an outgoing pairing to the peripheral device and validate that a JustWorks ceremony was used
    [BluetoothTestHelpers::Pairing::Pair]: Asserted: (originDeviceAssociationModule) != nullptr
    [BluetoothTestHelpers::Pairing::Pair]: Asserted: originDeviceAssociationModule->CanInitiatePairing()
    [BluetoothTestHelpers::Pairing::Pair]: Asserted: originDeviceAssociationModule->CanCheckPairingStatus()
    [BluetoothTestHelpers::Pairing::Pair]: Asserted: !(originDeviceAssociationModule->IsPairedTo(destinationDeviceAddress))
    If not already, put MyTestDevice in BR pairing mode
    Press any key to continue . . .
    
  3. 스크립트는 페어링을 시작합니다. 페어링에 성공하면 다음과 같은 출력이 표시됩니다. 디바이스 또는 테스트 PC의 알림에 응답하여 페어링을 확인하고 완료합니다. 그런 다음 테스트는 디바이스를 페어링 모드에서 제거하라는 메시지를 표시합니다. 디바이스를 페어링 모드에서 벗어나려면 아무 키나 눌러 계속합니다.

    [BluetoothTestHelpers::Pairing::Pair]: Initiating pairing request from device with address D83BBFAC35607 to device with address B4F1DA96C0A4
    [BluetoothTestHelpers::Pairing::DefaultPairingCeremonyHandler::OnJustWorks]: JustWorks ceremony used
    [BluetoothTestHelpers::Pairing::Pair]: Asserted: originDeviceAssociationModule->IsPairedTo(destinationDeviceAddress)
    [BluetoothTestHelpers::Pairing::Pair]: Asserted: ceremonyHandler.GetLastCeremonyUsed().has_value()
    [BluetoothTestHelpers::Pairing::Pair]: Asserted: ceremonyHandler.GetLastCeremonyUsed().value() == expectedCeremony
    [BluetoothTestHelpers::Pairing::Pair]: Paired successfully
    If the device is in pairing mode, exit pairing mode if possible.
    Press any key to continue . . .
    
  4. 페어링이 완료되면 스크립트는 테스트 도구 모음에서 사용할 수 있는 테스트로 계속 진행됩니다. 사용 가능한 테스트 및 실행 방법에 대한 설명서는 현재 지원되는 BTP 테스트에서 찾을 수 있습니다.

HDA 로그 캡처

문제가 발생하는 경우 로그 캡처를 위해 GitHub의 Windows 리포지토리용 Busiotools 지침에 따라 Bluetooth 로그를 캡처하거나 테스트를 시작할 때 스크립트 옵션을 -VerboseLogs 사용하여 Bluetooth 로그를 캡처할 수 있습니다.

추가 정보