Freigeben über


Adapter für menschliche Geräte

Der Human Device Adapter (HDA) ist eine do-it-selbst Möglichkeit, manuell mit Bluetooth Test Platform (BTP) zu interagieren und die Verwendung von Geräten mit BTP zu ermöglichen, die noch nicht automatisiert wurden. Beispielsweise würde die HDA eine Interaktion mit einem gekauften Headset ermöglichen, das andernfalls keine klare Möglichkeit zum Herstellen einer Verbindung mit BTP hat. Die HDA ermöglicht manuelle Benutzertests zwischen einem Windows-Gerät und Ihrer Prototyphardware, ohne dass externe Hardware verwendet wird, z. B. Traduci. Daher ist alles, was zum Einrichten erforderlich ist, ein PC, der Bluetooth und Ihr eigenes Testgerät unterstützt.

HDA-Einrichtung

Installieren Sie die Software, wie in BTP Software Setup beschrieben, um die HDA zu unterstützen.

HDA-Konfigurationsdatei

Erstellen Sie eine Konfigurationsdatei, die nach Ihrem Testgerät benannt ist, z. B. mytestdevice.txt. Der Dateiname und die Erweiterung sind nicht wichtig. Die Konfigurationsdatei sollte folgende Informationen umfassen:

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

HDA-Kopplungstests

Navigieren Sie zu dem Ordner, in dem das BTP-Softwarepaket extrahiert wurde, in der Regel C:\BTP. Die Skripts befinden sich in einem Unterordner des Paketverzeichnisses. Führen Sie das entsprechende Skript für die gewünschte Befehlsumgebung aus:

Befehlsumgebung Skript
Eingabeaufforderung mit erhöhten Rechten RunPairingTests.bat HDA,conf_file=<configuration file name>
PowerShell-Konsole mit erhöhten Rechten RunPairingTests.ps1 HDA,conf_file=<configuration file name>

Der optionale Parameter -VerboseLogs kann hinzugefügt werden, um eine ausführlichere Ausgabe von inneren Vorgängen von BTP bereitzustellen, um das Debuggen zu unterstützen.

Manuelle HDA-Kopplung

  1. Das Skript fragt, ob das Gerät zuvor gekoppelt wurde. Wenn Sie mit y antworten, löscht das Skript die Kopplung. Wenn Sie mit n antworten, wird der Prozess ohne Aktion fortgesetzt.

    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
    

    Das folgende Beispiel zeigt, wie die HDA die Kopplung löscht. Außerdem werden Sie aufgefordert, alle Kopplungsinformationen auf dem Gerät zu löschen (hier mit dem Namen "MyTestDevice"). Drücken Sie eine beliebige Taste, um fortzufahren, sobald alle Kopplungsinformationen gelöscht wurden.

    [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. Das Skript beginnt dann mit dem Kopplungsprozess durch Ausführen von Prüfungen und fordert den Benutzer auf, sein Gerät (hier mit dem Namen "MyTestDevice") in den "Band-Kopplungsmodus" einzugeben. Nachdem Sie das Gerät in den Kopplungsmodus versetzt haben, drücken Sie eine beliebige Taste, um den Vorgang fortzusetzen.

    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. Das Skript initiiert die Kopplung. Wenn die Kopplung erfolgreich ist, wird die folgende Ausgabe angezeigt. Reagieren Sie auf Benachrichtigungen auf dem Gerät oder auf dem Test-PC, um die Kopplung zu bestätigen und abzuschließen. Der Test fordert Sie dann auf, das Gerät aus dem Kopplungsmodus zu entfernen. Wenn Sie das Gerät aus dem Kopplungsmodus entfernen möchten, drücken Sie eine beliebige Taste, um den Vorgang fortzusetzen.

    [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. Nach Abschluss der Kopplung setzt das Skript die in der Testsuite verfügbaren Tests fort. Dokumentation zu verfügbaren Tests und deren Ausführung finden Sie in derzeit unterstützten BTP-Tests.

HDA-Protokollerfassung

Wenn Probleme auftreten, können Bluetooth-Protokolle erfasst werden, indem Sie die Anweisungen unter Busiotools für Windows Repo auf GitHub zur Erfassung der Protokolle befolgen oder die Skriptoption -VerboseLogs beim Starten der Tests verwenden.

Siehe auch