La funzione Wi-Fi Round Trip Time (RTT) in Android 9 consente ai dispositivi di supporto di misurare una distanza da altri dispositivi di supporto: siano essi punti di accesso (AP) o peer Wi-Fi Aware (se Wi-Fi Aware è supportato sul dispositivo). Questa funzione, basata sul protocollo IEEE 802.11mc, consente alle app di utilizzare una maggiore precisione e consapevolezza della posizione.
Esempi e fonte
Per utilizzare questa funzione, implementa il Wi-Fi Hardware Interface Design Language (HIDL) fornito nell'Android Open Source Project (AOSP). In Android 8.0, HIDL sostituisce la precedente struttura HAL (Hardware Abstraction Layer) utilizzata per semplificare le implementazioni specificando tipi e chiamate di metodo raccolte in interfacce e pacchetti.
Segui il Wi-Fi HIDL per utilizzare la funzione Wi-Fi RTT: hardware/interfaces/wifi/1.0
o successivo.
Puoi fare riferimento all'HAL Wi-Fi legacy per vedere come si correla con la nuova interfaccia HIDL: hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h .
Implementazione
Per implementare Wi-Fi RTT, è necessario fornire sia il framework che il supporto HAL/firmware:
Struttura:
- codice AOSP
- Abilita Wi-Fi RTT: richiede un flag di funzionalità
Supporto HAL Wi-Fi RTT (IEEE 802.11mc) (che implica il supporto del firmware)
Per implementare questa funzione, implementa il Wi-Fi HIDL e abilita il flag della funzione:
In
device.mk
situato indevice/<oem>/<device>
, modifica la variabile di ambientePRODUCT_COPY_FILES
per includere il supporto per la funzionalità 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
In caso contrario, tutto ciò che è necessario per questa funzionalità è incluso in AOSP.
Randomizzazione MAC
Per migliorare la privacy, l'indirizzo MAC utilizzato durante le transazioni Wi-Fi RTT deve essere casuale, ovvero non deve corrispondere all'indirizzo MAC nativo dell'interfaccia Wi-Fi. Tuttavia, in via eccezionale, quando un dispositivo è associato a un AP, può utilizzare l'indirizzo MAC a cui è associato per qualsiasi transazione RTT con quell'AP o con altri AP.
Convalida
Esistono test Android Compatibility Test Suite (CTS) per questa funzione. CTS rileva quando la funzione è abilitata e include automaticamente i test associati. Questa funzione può anche essere testata utilizzando Vendor Test Suite (VTS) e acts/sl4a , una suite di test che conduce test di integrazione approfonditi.
Test unitari
I test del pacchetto Wi-Fi RTT vengono eseguiti utilizzando:
Test di servizio:
atest com.android.server.wifi.rtt
Test manager:
atest android.net.wifi.rtt
Test di integrazione (ACTS).
La suite di test acts/sl4a, descritta in /tools/test/connectivity/acts_tests/tests/google/wifi/rtt/README.md
, fornisce test funzionali, prestazionali e di stress.
CTS
Esistono test Android Compatibility Test Suite (CTS) per questa funzione. CTS rileva quando la funzione è abilitata e include automaticamente i test associati. Un punto di accesso che supporti Wi-Fi RTT (IEEE 802.11mc) deve trovarsi nel raggio del dispositivo sottoposto a test.
I test CTS possono essere attivati utilizzando:
atest WifiRttTest
Calibrazione
Affinché Wi-Fi RTT funzioni bene, gli intervalli restituiti nel protocollo 802.11mc sono idealmente accurati all'interno del Key Performance Indicator (KPI). Per l'errore CDF del 90%, alle larghezze di banda elencate, si prevede che il KPI consigliato per una stima dell'intervallo abbia le seguenti tolleranze:
- 80 MHz: 2 metri
- 40 MHz: 4 metri
- 20 MHz: 8 metri
Per garantire che l'implementazione della funzione funzioni correttamente, è necessario il test di calibrazione.
Ciò può essere ottenuto confrontando un intervallo di verità al suolo con l'intervallo stimato RTT a distanze crescenti. Per la conformità di base, dovresti convalidare la tua soluzione rispetto a un dispositivo noto per essere calibrato RTT. La calibrazione della portata deve essere testata nelle seguenti condizioni:
- Un grande laboratorio aperto, o un corridoio che non ha molti oggetti metallici che possono portare a occorrenze insolitamente elevate di percorsi multipli.
- Almeno una pista/percorso in linea di vista (LOS) che si estende per 25 m.
- Indicatori con incrementi di 0,5 metri da un'estremità all'altra del binario.
- Un posto per fissare un punto di accesso compatibile con RTT a un'estremità del binario montato a 20 cm dal pavimento e un supporto mobile per un telefono Android (o altro dispositivo mobile Android in prova) che può essere spostato lungo il binario e allineato con il Indicatori di 0,5 m, anche a 20 cm dal pavimento. Nota: questo compito ripetitivo può essere eseguito da un piccolo robot, ma va bene anche un operatore umano.
- 50 risultati di intervallo devono essere registrati su ciascun marker, insieme alla distanza dal punto di accesso. Le statistiche, come la media e la varianza dell'intervallo, devono essere calcolate per ciascuna posizione del marker.
Dai risultati nel passaggio 5, è possibile tracciare un grafico per la verità fondamentale (asse x) rispetto all'intervallo stimato (asse y) e stimare una linea di regressione migliore. La calibrazione ideale del dispositivo risulterà in una linea di pendenza 1,0, con offset 0,0 m sull'asse y. Le deviazioni da questi valori sono accettabili se rientrano nel KPI per la larghezza di banda corrispondente. Se i risultati sono al di fuori del KPI, la funzione del dispositivo deve essere ricalibrata per portare i risultati all'interno della specifica KPI.
,La funzione Wi-Fi Round Trip Time (RTT) in Android 9 consente ai dispositivi di supporto di misurare una distanza da altri dispositivi di supporto: siano essi punti di accesso (AP) o peer Wi-Fi Aware (se Wi-Fi Aware è supportato sul dispositivo). Questa funzione, basata sul protocollo IEEE 802.11mc, consente alle app di utilizzare una maggiore precisione e consapevolezza della posizione.
Esempi e fonte
Per utilizzare questa funzione, implementa il Wi-Fi Hardware Interface Design Language (HIDL) fornito nell'Android Open Source Project (AOSP). In Android 8.0, HIDL sostituisce la precedente struttura HAL (Hardware Abstraction Layer) utilizzata per semplificare le implementazioni specificando tipi e chiamate di metodo raccolte in interfacce e pacchetti.
Segui il Wi-Fi HIDL per utilizzare la funzione Wi-Fi RTT: hardware/interfaces/wifi/1.0
o successivo.
Puoi fare riferimento all'HAL Wi-Fi legacy per vedere come si correla con la nuova interfaccia HIDL: hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h .
Implementazione
Per implementare Wi-Fi RTT, è necessario fornire sia il framework che il supporto HAL/firmware:
Struttura:
- codice AOSP
- Abilita Wi-Fi RTT: richiede un flag di funzionalità
Supporto HAL Wi-Fi RTT (IEEE 802.11mc) (che implica il supporto del firmware)
Per implementare questa funzione, implementa il Wi-Fi HIDL e abilita il flag della funzione:
In
device.mk
situato indevice/<oem>/<device>
, modifica la variabile di ambientePRODUCT_COPY_FILES
per includere il supporto per la funzionalità 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
In caso contrario, tutto ciò che è necessario per questa funzionalità è incluso in AOSP.
Randomizzazione MAC
Per migliorare la privacy, l'indirizzo MAC utilizzato durante le transazioni Wi-Fi RTT deve essere casuale, ovvero non deve corrispondere all'indirizzo MAC nativo dell'interfaccia Wi-Fi. Tuttavia, in via eccezionale, quando un dispositivo è associato a un AP, può utilizzare l'indirizzo MAC a cui è associato per qualsiasi transazione RTT con quell'AP o con altri AP.
Convalida
Esistono test Android Compatibility Test Suite (CTS) per questa funzionalità. CTS rileva quando la funzione è abilitata e include automaticamente i test associati. Questa funzione può anche essere testata utilizzando Vendor Test Suite (VTS) e acts/sl4a , una suite di test che conduce test di integrazione approfonditi.
Test unitari
I test del pacchetto Wi-Fi RTT vengono eseguiti utilizzando:
Test di servizio:
atest com.android.server.wifi.rtt
Test manager:
atest android.net.wifi.rtt
Test di integrazione (ACTS).
La suite di test acts/sl4a, descritta in /tools/test/connectivity/acts_tests/tests/google/wifi/rtt/README.md
, fornisce test funzionali, prestazionali e di stress.
CTS
Esistono test Android Compatibility Test Suite (CTS) per questa funzionalità. CTS rileva quando la funzione è abilitata e include automaticamente i test associati. Un punto di accesso che supporti Wi-Fi RTT (IEEE 802.11mc) deve trovarsi nel raggio del dispositivo sottoposto a test.
I test CTS possono essere attivati utilizzando:
atest WifiRttTest
Calibrazione
Affinché Wi-Fi RTT funzioni bene, gli intervalli restituiti nel protocollo 802.11mc sono idealmente accurati all'interno del Key Performance Indicator (KPI). Per l'errore CDF del 90%, alle larghezze di banda elencate, si prevede che il KPI consigliato per una stima dell'intervallo abbia le seguenti tolleranze:
- 80 MHz: 2 metri
- 40 MHz: 4 metri
- 20 MHz: 8 metri
Per garantire che l'implementazione della funzione funzioni correttamente, è necessario il test di calibrazione.
Ciò può essere ottenuto confrontando un intervallo di verità al suolo con l'intervallo stimato RTT a distanze crescenti. Per la conformità di base, dovresti convalidare la tua soluzione rispetto a un dispositivo noto per essere calibrato RTT. La calibrazione della portata deve essere testata nelle seguenti condizioni:
- Un grande laboratorio aperto, o un corridoio che non ha molti oggetti metallici che possono portare a occorrenze insolitamente elevate di percorsi multipli.
- Almeno una pista/percorso in linea di vista (LOS) che si estende per 25 m.
- Indicatori con incrementi di 0,5 metri da un'estremità all'altra del binario.
- Un posto per fissare un punto di accesso compatibile con RTT a un'estremità del binario montato a 20 cm dal pavimento e un supporto mobile per un telefono Android (o altro dispositivo mobile Android in prova) che può essere spostato lungo il binario e allineato con il Indicatori di 0,5 m, anche a 20 cm dal pavimento. Nota: questo compito ripetitivo può essere eseguito da un piccolo robot, ma va bene anche un operatore umano.
- 50 risultati di intervallo devono essere registrati su ciascun marker, insieme alla distanza dal punto di accesso. Le statistiche, come la media e la varianza dell'intervallo, devono essere calcolate per ciascuna posizione del marker.
Dai risultati nel passaggio 5, è possibile tracciare un grafico per la verità fondamentale (asse x) rispetto all'intervallo stimato (asse y) e stimare una linea di regressione migliore. La calibrazione ideale del dispositivo risulterà in una linea di pendenza 1,0, con offset 0,0 m sull'asse y. Le deviazioni da questi valori sono accettabili se rientrano nel KPI per la larghezza di banda corrispondente. Se i risultati sono al di fuori del KPI, la funzione del dispositivo deve essere ricalibrata per portare i risultati all'interno della specifica KPI.