Funkcja Wi-Fi Round Trip Time (RTT) w systemie Android 9 umożliwia zgodnym urządzeniom pomiar odległości do innych obsługujących go urządzeń: niezależnie od tego, czy są to punkty dostępowe (AP), czy równorzędni z Wi-Fi Aware (jeśli funkcja Wi-Fi Aware jest obsługiwana na urządzenie). Ta funkcja, zbudowana na protokole IEEE 802.11mc, umożliwia aplikacjom korzystanie ze zwiększonej dokładności i świadomości lokalizacji.
Przykłady i źródło
Aby korzystać z tej funkcji, zaimplementuj język projektowania interfejsu sprzętowego Wi-Fi (HIDL) dostarczony w projekcie Android Open Source Project (AOSP). W systemie Android 8,0 HIDL zastępuje poprzednią strukturę warstwy abstrakcji sprzętu (HAL) używaną do usprawnienia implementacji przez określenie typów i wywołań metod zebranych w interfejsach i pakietach.
Postępuj zgodnie z Wi-Fi HIDL, aby zastosować funkcję Wi-Fi RTT: hardware/interfaces/wifi/1.0
lub nowszy.
Możesz zapoznać się ze starszą wersją warstwy HAL Wi-Fi, aby zobaczyć, jak jest ona skorelowana z nowym interfejsem HIDL: hardware/libhardware_legacy/+/master/include/hardware_legacy/rtt.h .
Realizacja
Aby wdrożyć Wi-Fi RTT, musisz zapewnić wsparcie zarówno dla frameworka, jak i HAL/firmware:
Struktura:
- Kod AOSP
- Włącz Wi-Fi RTT: wymaga flagi funkcji
Obsługa HAL Wi-Fi RTT (IEEE 802.11mc) (co oznacza obsługę oprogramowania układowego)
Aby zaimplementować tę funkcję, zaimplementuj HIDL Wi-Fi 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 do 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 być zgodny z natywnym adresem MAC interfejsu Wi-Fi. Jednak w drodze wyjątku, gdy urządzenie jest skojarzone z AP, może używać adresu MAC, z którym jest skojarzone, do dowolnych transakcji RTT z tym AP lub innymi AP.
Walidacja
Dla tej funkcji istnieją testy Android Compatibility Test Suite (CTS). CTS wykrywa, kiedy funkcja jest włączona i automatycznie dołącza powiązane testy. Tę funkcję można również przetestować za pomocą pakietu Vendor Test Suite (VTS) i act/sl4a , zestawu testów, który przeprowadza szeroko zakrojone testy integracyjne.
Testy jednostkowe
Testy pakietów Wi-Fi RTT wykonujemy przy użyciu:
Testy serwisowe:
atest com.android.server.wifi.rtt
Testy menedżerskie:
atest android.net.wifi.rtt
Testy integracyjne (ACTS)
Zestaw testów act/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 Android Compatibility Test Suite (CTS). CTS wykrywa, kiedy funkcja jest włączona i automatycznie dołącza powiązane testy. Punkt dostępowy obsługujący Wi-Fi RTT (IEEE 802.11mc) musi znajdować się w zasięgu testowanego urządzenia.
Testy CTS można uruchomić 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 90% CDF, przy wymienionych szerokościach pasma, zalecany wskaźnik KPI dla oszacowania zakresu powinien mieć następujące tolerancje:
- 80 MHz: 2 metry
- 40 MHz: 4 metry
- 20 MHz: 8 metrów
Aby upewnić się, że implementacja funkcji działa poprawnie, konieczne jest przeprowadzenie testów kalibracyjnych.
Można to osiągnąć, porównując zasięg prawdy naziemnej z szacowanym zasięgiem RTT na coraz większych odległościach. Aby uzyskać podstawową zgodność, należy zweryfikować swoje rozwiązanie względem urządzenia, o którym wiadomo, że jest skalibrowane w trybie RTT. Kalibrację zakresu należy przetestować w następujących warunkach:
- Duże otwarte laboratorium lub korytarz, w którym nie ma wielu metalowych obiektów, co może skutkować niezwykle dużą liczbą przypadków wielościeżkowych.
- Co najmniej tor/ścieżka w zasięgu wzroku (LOS) rozciągająca się na 25 m.
- Znaczniki co 0,5 metra od jednego końca toru do drugiego.
- Miejsce do zabezpieczenia punktu dostępowego 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 ustawiać w linii z Znaczniki 0,5m, również 20cm nad podłogą. Uwaga: to powtarzające się zadanie może wykonać mały robot, ale operator jest również w porządku.
- Przy każdym znaczniku należy zarejestrować 50 wyników pomiaru wraz z odległością od punktu dostępu. Dla każdej pozycji markera należy obliczyć statystyki, takie jak średnia zakresu i wariancja.
Na podstawie wyników w kroku 5 można narysować wykres dla podstawowej prawdy (oś x) względem szacowanego zakresu (oś y) i oszacowanej linii regresji najlepszego dopasowania. Idealna kalibracja urządzenia da w wyniku linię gradientu 1.0 z przesunięciem 0.0m 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, funkcję urządzenia należy ponownie skalibrować, aby uzyskać wyniki zgodne ze specyfikacją KPI.