Android 9 में वाई-फ़ाई राउंड ट्रिप टाइम (RTT) की सुविधा उपलब्ध है. इससे, इस सुविधा के साथ काम करने वाले डिवाइस, दूसरे डिवाइसों के बीच की दूरी का पता लगा सकते हैं. ये डिवाइस, ऐक्सेस पॉइंट (एपी) या वाई-फ़ाई अवेयर पीयर हो सकते हैं. हालांकि, इसके लिए यह ज़रूरी है कि डिवाइस पर वाई-फ़ाई अवेयर की सुविधा काम करती हो. यह सुविधा, IEEE 802.11mc और IEEE 802.11az प्रोटोकॉल पर आधारित है. यह Android 15 से उपलब्ध है. इसकी मदद से, ऐप्लिकेशन जगह की ज़्यादा सटीक जानकारी का इस्तेमाल कर सकते हैं.
उदाहरण और सोर्स
इस सुविधा का इस्तेमाल करने के लिए, वेंडर HAL इंटरफ़ेस लागू करें. Android 14 और इसके बाद के वर्शन में, वेंडर एचएएल इंटरफ़ेस को एआईडीएल का इस्तेमाल करके तय किया जाता है. Android 13 और इससे पहले के वर्शन में, वेंडर एचएएल इंटरफ़ेस को एचआईडीएल का इस्तेमाल करके तय किया जाता है. Android 8.0 में, एचआईडीएल ने हार्डवेयर ऐब्स्ट्रैक्शन लेयर (एचएएल) के पिछले स्ट्रक्चर की जगह ले ली. इसका इस्तेमाल, इंटरफ़ेस और पैकेज में इकट्ठा किए गए टाइप और तरीके के कॉल तय करके, लागू करने की प्रोसेस को आसान बनाने के लिए किया जाता था.
वाई-फ़ाई आरटीटी की सुविधा का इस्तेमाल करने के लिए, वाई-फ़ाई इंटरफ़ेस का इस्तेमाल करें. लागू किए गए इंटरफ़ेस के हिसाब से, यह:
- एआईडीएल:
hardware/interfaces/wifi/aidl
- HIDL:
hardware/interfaces/wifi/1.0
या उसके बाद का वर्शन.
एआईडीएल और एचआईडीएल इंटरफ़ेस से इसका क्या संबंध है, यह जानने के लिए लेगसी वाई-फ़ाई एचएएल देखें: hardware/libhardware_legacy/+/android16-release/include/hardware_legacy/rtt.h.
लागू करना
वाई-फ़ाई आरटीटी को लागू करने के लिए, आपको फ़्रेमवर्क और HAL/फ़र्मवेयर, दोनों के लिए सहायता देनी होगी:
फ़्रेमवर्क:
- AOSP कोड
- वाई-फ़ाई आरटीटी चालू करें: इसके लिए, सुविधा फ़्लैग की ज़रूरत होती है
वाई-फ़ाई आरटीटी (IEEE 802.11mc या IEEE 802.11az) एचएएल के साथ काम करता हो. इसका मतलब है कि फ़र्मवेयर के साथ काम करता हो
इस सुविधा को लागू करने के लिए, वाई-फ़ाई एआईडीएल या एचआईडीएल इंटरफ़ेस लागू करें. साथ ही, सुविधा फ़्लैग चालू करें:
device/<oem>/<device>
में मौजूदdevice.mk
में,PRODUCT_COPY_FILES
एनवायरमेंट वैरिएबल में बदलाव करके, वाई-फ़ाई आरटीटी की सुविधा शामिल करें:PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
इसके अलावा, इस सुविधा के लिए ज़रूरी सभी चीज़ें AOSP में शामिल हैं.
एमएसी पता बदलने की सुविधा
निजता को बेहतर बनाने के लिए, वाई-फ़ाई आरटीटी लेन-देन के दौरान इस्तेमाल किया गया एमएसी पता, किसी भी क्रम में लगाया गया होना चाहिए. इसका मतलब है कि यह वाई-फ़ाई इंटरफ़ेस के नेटिव एमएसी पते से मेल नहीं खाना चाहिए. हालांकि, अपवाद के तौर पर, जब कोई डिवाइस किसी एपी से जुड़ा होता है, तो वह उस मैक पते का इस्तेमाल कर सकता है जिससे वह एपी से जुड़ा है. ऐसा, उस एपी या अन्य एपी के साथ किसी भी आरटीटी लेन-देन के लिए किया जा सकता है.
Validation
इस सुविधा के लिए, Android Compatibility Test Suite (CTS) टेस्ट मौजूद हैं. CTS को यह पता चलता है कि सुविधा कब चालू है. साथ ही, यह इससे जुड़े टेस्ट को अपने-आप शामिल कर लेता है. इस सुविधा को Vendor Test Suite (VTS) का इस्तेमाल करके भी टेस्ट किया जा सकता है.
यूनिट टेस्ट
वाई-फ़ाई आरटीटी पैकेज के टेस्ट, इनका इस्तेमाल करके किए जाते हैं:
सेवा की जांच:
atest com.android.server.wifi.rtt
मैनेजर के टेस्ट:
atest android.net.wifi.rtt
CTS
इस सुविधा के लिए, Android Compatibility Test Suite (CTS) टेस्ट मौजूद हैं. CTS को यह पता चलता है कि सुविधा कब चालू है. साथ ही, यह इससे जुड़े टेस्ट को अपने-आप शामिल कर लेता है. वाई-फ़ाई आरटीटी (IEEE 802.11mc) के साथ काम करने वाला ऐक्सेस पॉइंट, टेस्ट किए जा रहे डिवाइस की रेंज में होना चाहिए.
इन तरीकों से, सीटीएस टेस्ट ट्रिगर किए जा सकते हैं:
atest WifiRttTest
कैलिब्रेशन
Wi-Fi RTT की परफ़ॉर्मेंस अच्छी हो, इसके लिए ज़रूरी है कि 802.11mc या 802.11az प्रोटोकॉल में बताई गई रेंज, इस सेक्शन में बताए गए मुख्य परफ़ॉर्मेंस इंडिकेटर (केपीआई) के हिसाब से सटीक हो.
11mc प्रोटोकॉल के लिए, यहां दी गई बैंडविड्थ (80 मेगाहर्ट्ज़, 40 मेगाहर्ट्ज़, 20 मेगाहर्ट्ज़) और आठ के बर्स्ट साइज़ पर, रेंज के अनुमान के लिए केपीआई से गड़बड़ी के 90वें पर्सेंटाइल पर यह सटीक नतीजे मिलने की उम्मीद है.
- 80 MHz: 2 मीटर
- 40 मेगाहर्ट्ज़: 4 मीटर
- 20 मेगाहर्ट्ज़: 8 मीटर
11az प्रोटोकॉल के लिए, ऐंटेना एमआईएमओ कॉन्फ़िगरेशन और लॉन्ग ट्रेनिंग फ़ील्ड (एलटीएफ़) की पुनरावृत्ति से सटीक नतीजे मिलते हैं. आम तौर पर इस्तेमाल होने वाले मोबाइल फ़ोन (दो ऐंटेना का इस्तेमाल करने वाला) और ऐक्सेस पॉइंट (चार ऐंटेना) के साथ, सिस्टम में 2x4 एमआईएमओ कॉन्फ़िगरेशन होता है. एलटीएफ़ के दोहराव के फ़ैक्टर के तौर पर दो का इस्तेमाल करके और लिस्ट की गई बैंडविड्थ (160 मेगाहर्ट्ज़, 80 मेगाहर्ट्ज़, 40 मेगाहर्ट्ज़, 20 मेगाहर्ट्ज़) पर इस तरह के कॉन्फ़िगरेशन के लिए, रेंज के अनुमान से जुड़ी केपीआई से, गड़बड़ी के 90वें पर्सेंटाइल पर यह सटीक नतीजे मिलने की उम्मीद है.
- 160 मेगाहर्ट्ज़: 0.5 मीटर
- 80 MHz: 1 मीटर
- 40 मेगाहर्ट्ज़: 2 मीटर
- 20 MHz: 4 मीटर
यह पक्का करने के लिए कि सुविधा को लागू करने की प्रोसेस सही तरीके से काम कर रही है, कैलिब्रेशन की जांच करना ज़रूरी है.
इसे अलग-अलग दूरी पर, अनुमानित आरटीटी रेंज की तुलना ग्राउंड ट्रुथ रेंज से करके हासिल किया जा सकता है. बुनियादी तौर पर पुष्टि करने के लिए, आपको अपने समाधान की पुष्टि ऐसे डिवाइस के ख़िलाफ़ करनी चाहिए जिसे आरटीटी के लिए कैलिब्रेट किया गया हो. रेंज कैलिब्रेशन की जांच इन स्थितियों में की जानी चाहिए:
- खुली जगह पर बनी बड़ी प्रयोगशाला या ऐसा कॉरिडोर जिसमें धातु की ज़्यादा चीज़ें न हों. ऐसा इसलिए, ताकि मल्टी-पाथ की वजह से सिग्नल में होने वाली रुकावट कम हो.
- कम से कम 25 मीटर तक लाइन-ऑफ़-साइट (एलओएस) ट्रैक या पाथ होना चाहिए.
- ट्रैक के एक छोर से दूसरे छोर तक, 0.5 मीटर के अंतर पर मार्कर.
ट्रैक के एक सिरे पर, आरटीटी की सुविधा वाले ऐक्सेस पॉइंट को सुरक्षित रखने की जगह. यह जगह, फ़्लोर से 20 सेमी ऊपर होनी चाहिए. साथ ही, Android फ़ोन (या जांच किए जा रहे अन्य Android मोबाइल डिवाइस) के लिए एक ऐसा माउंट होना चाहिए जिसे ट्रैक पर घुमाया जा सके. इसे फ़्लोर से 20 सेमी ऊपर, 0.5 मीटर के मार्कर के साथ अलाइन किया जा सके.
हर मार्कर पर, 50 रेंजिंग के नतीजे रिकॉर्ड किए जाने चाहिए. साथ ही, ऐक्सेस पॉइंट से दूरी भी रिकॉर्ड की जानी चाहिए. हर मार्कर की पोज़िशन के लिए, आंकड़े कैलकुलेट किए जाने चाहिए. जैसे, रेंज का औसत और वैरिएंस.
पांचवें चरण के नतीजों से, अनुमानित रेंज (y-ऐक्सिस) के मुकाबले ग्राउंड ट्रुथ (x-ऐक्सिस) के लिए एक चार्ट बनाया जा सकता है. साथ ही, सबसे सही रिग्रेशन लाइन का अनुमान लगाया जा सकता है. डिवाइस को सही तरीके से कैलिब्रेट करने पर, ग्रेडिएंट 1.0 वाली लाइन दिखेगी. साथ ही, y-ऐक्सिस पर ऑफ़सेट 0.0 मीटर होगा. अगर ये वैल्यू, बैंडविड्थ के हिसाब से केपीआई के दायरे में हैं, तो इनमें अंतर हो सकता है. अगर नतीजे केपीआई से बाहर हैं, तो डिवाइस की सुविधा को फिर से कैलिब्रेट किया जाना चाहिए, ताकि नतीजे केपीआई स्पेसिफ़िकेशन के मुताबिक आएं.