वाई-फ़ाई आरटीटी (आईईईई 802.11mc, आईईईई 802.11az)

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 मीटर

यह पुष्टि करने के लिए कि सुविधा सही तरीके से लागू की गई है, कैलिब्रेशन टेस्टिंग करना ज़रूरी है.

इसे अलग-अलग दूरी पर, अनुमानित आरटीटी रेंज की तुलना ग्राउंड ट्रुथ रेंज से करके हासिल किया जा सकता है. बुनियादी तौर पर पुष्टि करने के लिए, हमारा सुझाव है कि आप अपने समाधान की पुष्टि, ऐसे डिवाइस के ख़िलाफ़ करें जिसे आरटीटी के लिए कैलिब्रेट किया गया हो. हमारा सुझाव है कि इन स्थितियों में रेंज कैलिब्रेशन की जांच करें:

  1. खुली जगह पर बनी बड़ी प्रयोगशाला या ऐसा कॉरिडोर जिसमें धातु की ज़्यादा चीज़ें न हों. ऐसा इसलिए, ताकि मल्टी-पाथ की वजह से सिग्नल में होने वाली रुकावट कम हो.
  2. कम से कम 25 मीटर तक लाइन-ऑफ़-साइट (एलओएस) ट्रैक या पाथ होना चाहिए.
  3. ट्रैक के एक छोर से दूसरे छोर तक, 0.5 मीटर के अंतर पर मार्कर.
  4. ट्रैक के एक सिरे पर, आरटीटी की सुविधा वाले ऐक्सेस पॉइंट को सुरक्षित रखने की जगह. यह जगह, फ़र्श से 20 सेंटीमीटर ऊपर होनी चाहिए. साथ ही, Android फ़ोन (या जांच किए जा रहे अन्य Android मोबाइल डिवाइस) के लिए एक ऐसा माउंट होना चाहिए जिसे ट्रैक पर घुमाया जा सके. इसे फ़र्श से 20 सेंटीमीटर ऊपर, 0.5 मीटर के मार्कर के साथ अलाइन किया जा सके.

  5. हमारा सुझाव है कि हर मार्कर पर, 50 रेंजिंग नतीजे रिकॉर्ड करें. साथ ही, ऐक्सेस पॉइंट से दूरी भी रिकॉर्ड करें. हर मार्कर की पोज़िशन के लिए, आंकड़े कैलकुलेट किए जाने चाहिए. जैसे, रेंज का औसत और विचरण.

पांचवें चरण के नतीजों से, ग्राउंड ट्रुथ (x-ऐक्सिस) के लिए एक चार्ट बनाया जा सकता है. इसे अनुमानित रेंज (y-ऐक्सिस) के हिसाब से बनाया जाता है. साथ ही, सबसे सही रिग्रेशन लाइन का अनुमान लगाया जाता है. डिवाइस को सही तरीके से कैलिब्रेट करने पर, ग्रेडिएंट 1.0 वाली लाइन मिलेगी. साथ ही, y-ऐक्सिस पर ऑफ़सेट 0.0 मीटर होगा. अगर ये वैल्यू, बैंडविड्थ के हिसाब से केपीआई के दायरे में हैं, तो इनमें अंतर हो सकता है. अगर नतीजे केपीआई से बाहर हैं, तो हमारा सुझाव है कि आप डिवाइस की सुविधा को फिर से कैलिब्रेट करें, ताकि नतीजे केपीआई स्पेसिफ़िकेशन के मुताबिक मिलें.