Funkcja Wi-Fi Round Trip Time (RTT) w systemie Android 9 umożliwia obsługującym urządzeniom mierzenie odległości do innych obsługujących urządzeń: niezależnie od tego, czy są to punkty dostępowe (AP), czy urządzenia równorzędne Wi-Fi Aware (jeśli Wi-Fi Aware jest obsługiwane w systemie urządzenie). Ta funkcja, oparta na protokole IEEE 802.11mc, umożliwia aplikacjom korzystanie z większej dokładności i świadomości lokalizacji.
Przykłady i źródło
Aby skorzystać z tej funkcji, zaimplementuj interfejs HAL dostawcy. W Androidzie 14 i nowszych interfejs HAL dostawcy jest definiowany przy użyciu AIDL. W systemie Android 13 i starszych interfejs HAL dostawcy jest definiowany przy użyciu języka HIDL. W systemie Android 8.0 język HIDL zastąpił poprzednią strukturę warstwy abstrakcji sprzętu (HAL) używaną do usprawnienia implementacji poprzez określenie typów i wywołań metod zebranych w interfejsach i pakietach.
Postępuj zgodnie z interfejsem Wi-Fi, aby skorzystać z funkcji Wi-Fi RTT. W zależności od tego, który interfejs jest zaimplementowany, jest to:
- AIDL:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.0
lub nowszy.
Możesz zapoznać się ze starszą wersją HAL Wi-Fi, aby zobaczyć, jak koreluje ona z interfejsami AIDL i HIDL: hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h .
Realizacja
Aby zaimplementować Wi-Fi RTT, musisz zapewnić obsługę zarówno frameworku, jak i HAL/oprogramowania sprzętowego:
Struktura:
- Kod AOSP
- Włącz Wi-Fi RTT: wymaga flagi funkcji
Obsługa Wi-Fi RTT (IEEE 802.11mc) HAL (co oznacza obsługę oprogramowania sprzętowego)
Aby zaimplementować tę funkcję, zaimplementuj interfejs Wi-Fi AIDL lub HIDL i włącz flagę funkcji:
W
device.mk
znajdującym się wdevice/<oem>/<device>
zmodyfikuj zmienną środowiskowąPRODUCT_COPY_FILES
, aby uwzględnić obsługę funkcji Wi-Fi RTT:PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
W przeciwnym razie wszystko, co jest wymagane dla tej funkcji, jest zawarte w AOSP.
Randomizacja MAC
Aby zwiększyć prywatność, adres MAC używany podczas transakcji Wi-Fi RTT musi być losowy, tj. nie może odpowiadać natywnemu adresowi MAC interfejsu Wi-Fi. Jednakże w drodze wyjątku, gdy urządzenie jest powiązane z punktem dostępowym, może ono używać adresu MAC, z którym jest powiązane do wszelkich transakcji RTT z tym punktem dostępowym lub z innymi punktami dostępowymi.
Walidacja
Dla tej funkcji istnieją testy pakietu testów zgodności systemu Android (CTS). CTS wykrywa, kiedy funkcja jest włączona i automatycznie uwzględnia powiązane testy. Tę funkcję można również przetestować za pomocą pakietu Vendor Test Suite (VTS) i Acts/sl4a , zestawu testów, który przeprowadza obszerne testy integracyjne.
Testy jednostkowe
Testy pakietu Wi-Fi RTT są wykonywane przy użyciu:
Testy serwisowe:
atest com.android.server.wifi.rtt
Testy menadżerskie:
atest android.net.wifi.rtt
Testy integracyjne (ACTS).
Zestaw testów acts/sl4a, opisany w /tools/test/connectivity/acts_tests/tests/google/wifi/rtt/README.md
, zapewnia testy funkcjonalne, wydajnościowe i obciążeniowe.
CTS
Dla tej funkcji istnieją testy pakietu testów zgodności systemu Android (CTS). CTS wykrywa, kiedy funkcja jest włączona i automatycznie uwzględnia powiązane testy. Punkt dostępu obsługujący Wi-Fi RTT (IEEE 802.11mc) musi znajdować się w zasięgu testowanego urządzenia.
Testy CTS można wywołać za pomocą:
atest WifiRttTest
Kalibrowanie
Aby Wi-Fi RTT działało dobrze, zakresy zwracane w protokole 802.11mc są idealnie dokładne w ramach kluczowego wskaźnika wydajności (KPI). W przypadku błędu CDF 90%, przy podanych szerokościach pasma, oczekuje się, że zalecany KPI dla oszacowania zakresu będzie miał następujące tolerancje:
- 80 MHz: 2 metry
- 40 MHz: 4 metry
- 20 MHz: 8 metrów
Aby mieć pewność, że implementacja tej funkcji działa prawidłowo, konieczne są testy kalibracyjne.
Można to osiągnąć poprzez porównanie rzeczywistego zasięgu z szacunkowym zasięgiem RTT przy rosnących odległościach. Aby uzyskać podstawową zgodność, należy sprawdzić swoje rozwiązanie na urządzeniu kalibrowanym RTT. Kalibrację zakresu należy testować w następujących warunkach:
- Duże otwarte laboratorium lub korytarz, w którym nie ma zbyt wielu metalowych przedmiotów, co może powodować niezwykle częste występowanie wielościeżek.
- Przynajmniej tor/ścieżka w zasięgu wzroku (LOS) rozciągająca się na długość 25 m.
- Znaczniki co 0,5 metra od jednego końca toru do drugiego.
- Miejsce do zabezpieczenia punktu dostępu obsługującego RTT na jednym końcu toru, zamontowanego 20 cm nad podłogą oraz ruchomy uchwyt na telefon z systemem Android (lub inne testowane urządzenie mobilne z systemem Android), który można przesuwać wzdłuż toru i dopasowywać do Znaczniki 0,5 m, również 20 cm nad podłogą. Uwaga: to powtarzalne zadanie może wykonać mały robot, ale operator-człowiek też sobie poradzi.
- Przy każdym znaczniku należy zapisać 50 wyników pomiaru odległości wraz z odległością od punktu dostępu. Dla każdej pozycji znacznika należy obliczyć statystyki, takie jak średnia zakresu i wariancja.
Na podstawie wyników uzyskanych w kroku 5 można narysować wykres prawdy podstawowej (oś x) w porównaniu z szacowanym zakresem (oś y) i oszacowaną linią regresji według najlepszego dopasowania. Idealna kalibracja urządzenia spowoduje powstanie linii o nachyleniu 1,0 z przesunięciem 0,0 m na osi Y. Odchylenia od tych wartości są dopuszczalne, jeśli mieszczą się w KPI dla odpowiedniej przepustowości. Jeśli wyniki wykraczają poza KPI, należy ponownie skalibrować funkcję urządzenia, aby wyniki mieściły się w specyfikacji KPI.