रेंजिंग: आउट-ऑफ़-बैंड मैसेज का क्रम और पेलोड की खास बातें

Android 16 में रेंजिंग मॉड्यूल की सुविधा लॉन्च की गई थी. इस प्रोटोकॉल और पेलोड स्पेसिफ़िकेशन में, मैसेज के क्रम और आउट-ऑफ़-बैंड (ओओबी) कम्यूनिकेशन के पेलोड के बारे में बताया गया है. इसका इस्तेमाल, रेंजिंग कॉन्फ़िगरेशन को एक्सचेंज करने के लिए किया जाता है. साथ ही, रेंजिंग में शामिल होने वाले डिवाइस के बीच रेंजिंग शुरू और बंद करने के लिए भी इसका इस्तेमाल किया जाता है.

इस पेज का मुख्य लक्ष्य, Android डिवाइस उपलब्ध कराने वाली कंपनियों को इस स्पेसिफ़िकेशन को लागू करने में मदद करना है, ताकि उनके डिवाइस, Android डिवाइसों के साथ रेंजिंग के लिए काम कर सकें.

मैसेज और मैसेज का क्रम

इस सेक्शन में मैसेज और मैसेज एक्सचेंज के क्रम के बारे में बताया गया है.

नीचे दी गई टेबल में, ऑउट ऑफ़ बाउंड (ओओबी) एक्सचेंज में मौजूद सभी मैसेज दिखाए गए हैं:

मैसेज मैसेज की आईडी
Ranging Capability Request 0x0
Ranging Capability Response 0x1
Ranging Configuration 0x2
Ranging Configuration Response (ज़रूरी नहीं) 0x3
Stop Ranging 0x6
Stop Ranging Response (ज़रूरी नहीं) 0x7

जैसा कि पहले और दूसरे चित्र में दिखाया गया है, मैसेज एक्सचेंज कैसे ट्रिगर होता है यह बात, कम्यूनिकेशन चैनल पर निर्भर करती है.

BLE GATT जैसे कनेक्शन-आधारित कम्यूनिकेशन चैनलों के लिए, मैसेज का आदान-प्रदान तब शुरू होता है, जब मैसेज भेजने वाला डिवाइस, मैसेज पाने वाले डिवाइस को Ranging Capability Request भेजता है. जवाब देने वाला डिवाइस, Ranging Capability Response भेजकर जवाब देता है, जैसा कि पहली इमेज में दिखाया गया है:

कनेक्शन के हिसाब से कम्यूनिकेशन चैनल का फ़्लो

पहली इमेज. कनेक्शन पर आधारित कम्यूनिकेशन चैनल का इस्तेमाल करके, ओओबी मैसेज एक्सचेंज करना.

विज्ञापन पर आधारित कम्यूनिकेशन चैनलों के लिए, जवाब देने वाला डिवाइस Ranging Capability का विज्ञापन दिखाकर शुरू होता है. इस मामले में, Ranging Capability Request को शुरू करने वाले डिवाइस से नहीं भेजा जाता. इसके बजाय, विज्ञापन का पता लगाने के बाद, जब शुरुआत करने वाला (शुरुआती स्कैनर) डिवाइस तैयार हो जाता है, तो वह अपने पहले मैसेज के तौर पर Ranging Configuration का विज्ञापन दिखाकर जवाब देता है, जैसा कि दूसरे चित्र में दिखाया गया है:

विज्ञापन पर आधारित कम्यूनिकेशन चैनल का फ़्लो

दूसरी इमेज. विज्ञापन पर आधारित कम्यूनिकेशन का इस्तेमाल करके, ओओबी मैसेज एक्सचेंज करना.

दोनों मामलों में, मैसेज एक्सचेंज करने का तरीका एक जैसा ही है. जवाब देने वाला डिवाइस, Ranging Configuration मैसेज मिलने के तुरंत बाद रेंज में आ जाता है. Stop Ranging मैसेज मिलने या उसका पता चलने के बाद, जवाब देने वाला डिवाइस रेंजिंग बंद कर देता है.

कनेक्शन पर आधारित फ़्लो में, रिस्पॉन्स देने वाला डिवाइस, Ranging Capability Request मैसेज में अनुरोध की गई रेंजिंग टेक्नोलॉजी की ही सुविधाओं को भरता है. वहीं, विज्ञापन फ़्लो में, रिस्पॉन्स देने वाले डिवाइस को अपनी सभी सुविधाओं की सूची बनानी होगी, क्योंकि इसके पहले सुविधा के अनुरोध वाला कोई मैसेज नहीं होता.

अनुरोध करने वाला डिवाइस यह मानता है कि उसे भेजे गए किसी भी अनुरोध मैसेज का सिर्फ़ एक जवाब मिलेगा. जवाब देने वाले डिवाइस को ऐसा कोई अनुमान नहीं लगाना चाहिए, ताकि वह किसी भी अनुरोध का जवाब किसी भी क्रम में दे सके. इससे यह पक्का होता है कि जवाब देने वाला डिवाइस, मैसेज शुरू करने वाले डिवाइस से एक के बाद एक भेजे गए कई Ranging Capability Request मैसेज या क्रम से बाहर के किसी भी मैसेज का जवाब दे सकता है.

रेंजिंग टेक्नोलॉजी आईडी

रेंजिंग टेक्नोलॉजी के आईडी, नीचे दी गई टेबल में दिए गए हैं:

रेंजिंग टेक्नोलॉजी ID
यूडब्ल्यूबी 0x0
CS 0x1
वाई-फ़ाई एनएएन आरटीटी 0x2
RSSI 0x3
आरएफ़यू 0x4 - 0xFF

इन आईडी का इस्तेमाल, नीचे दी गई टेबल में किया जाता है, जहां रेंजिंग टेक्नोलॉजी आईडी की ज़रूरत होती है. रेंजिंग टेक्नोलॉजी बिटफ़ील्ड वाले फ़ील्ड के लिए, टेक्नोलॉजी के आईडी के इंडेक्स से जुड़ा एक बिट तब सेट किया जाता है, जब उस टेक्नोलॉजी को बिटफ़ील्ड में शामिल किया जाता है.

उदाहरण के लिए, आरएसएसआई की आईडी वैल्यू 3 है. हालांकि, अगर आरएसएसआई को रेंजिंग टेक्नोलॉजी बिफ़ील्ड में शामिल किया जाता है, तो आईडी (3) की पोज़िशन वाले बिट को चालू करना होगा (पहला बिट 0 पोज़िशन पर होता है). इससे बिफ़ील्ड की वैल्यू 0x8 हो जाती है. अगर UWB और आरएसएसआई, दोनों शामिल हैं, तो बिटफ़ील्ड की वैल्यू 0x0A होगी (0 और 3, दोनों बिट चालू होंगे).

मैसेज फ़ॉर्मैट

हर मैसेज में एक हेडर और एक पेलोड होता है.

मैसेज फ़ॉर्मैट

तीसरी इमेज. मैसेज का फ़ॉर्मैट.

साइज़: 2 बाइट

जानकारी: हेडर, मैसेज का पहला हिस्सा होता है. यह सभी मैसेज में मौजूद होता है. हेडर में मैसेज टाइप का वर्शन और आईडी शामिल होता है. वर्शन फ़ील्ड से इस स्पेसिफ़िकेशन के उस वर्शन के बारे में पता चलता है जिसका पालन मैसेज के कॉन्टेंट में किया गया है. इस स्पेसिफ़िकेशन का मौजूदा वर्शन 1 है. अलग-अलग वर्शन वाले डिवाइसों के बीच, वर्शन का इस्तेमाल कैसे किया जाता है, इस बारे में ज़्यादा जानने के लिए वर्शन देखें. हेडर, अलग-अलग वर्शन के साथ काम करता रहता है. इसका मतलब है कि मैसेज के वर्शन और आईडी का पता लगाने के लिए, इस्तेमाल के उदाहरण में इसे हमेशा पार्स किया जा सकता है.

हेडर के बारे में खास जानकारी, नीचे दी गई टेबल में दी गई है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8 वर्शन 0x1 - मौजूदा वर्शन
1 unit8 मैसेज की आईडी
  • 0x0 - Ranging Capability Request मैसेज
  • 0x1 - Ranging Capability Response मैसेज
  • 0x2 - Ranging Configuration मैसेज
  • 0x3 - Ranging Configuration Response मैसेज (ज़रूरी नहीं)
  • 0x6 - Stop Ranging मैसेज
  • 0x7 - Stop Ranging Response मैसेज (ज़रूरी नहीं)
  • 0x4-0x5, 0x8 - 0xFF आरएफ़यू

पेलोड

साइज़: अलग-अलग होता है (मैसेज के टाइप पर निर्भर करता है)

जानकारी: हेडर के बाद, पेलोड मैसेज का आखिरी हिस्सा होता है. पेलोड, मैसेज के टाइप पर निर्भर करता है. यहां दिए गए सेक्शन में, हर तरह के मैसेज के पेलोड का फ़ॉर्मैट बताया गया है.

रेंजिंग की सुविधा के अनुरोध का मैसेज पेलोड

साइज़ (हेडर का साइज़ शामिल नहीं है): 2 बाइट

जानकारी: मैसेज एक्सचेंज शुरू करने के लिए, मैसेज भेजने वाले डिवाइस से भेजा जाता है. अगर सूचना देने वाला चैनल, विज्ञापन पर आधारित है, तो यह मैसेज भेजना ज़रूरी नहीं है. ऐसे में, जवाब देने वाले डिवाइस को पहले चरण के तौर पर Ranging Capability मैसेज का विज्ञापन दिखाना होगा. शुरुआत करने वाला डिवाइस (शुरुआती स्कैनर), विज्ञापन को पढ़ता है और सीधे Ranging Capability मैसेज के साथ जवाब देता है. इससे इस मैसेज की ज़रूरत नहीं पड़ती.

Ranging Capability Request मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8*2 अनुरोध की गई रेंजिंग टेक्नोलॉजी का बिटफ़ील्ड
  • 0x01 - UWB
  • 0x02 - BLE चैनल की आवाज़
  • 0x04 - वाई-फ़ाई एनएएन आरटीटी
  • 0x08 - बीएलई आरएसएसआई
  • आरएफ़यू

रेंजिंग की सुविधा के जवाब का मैसेज पेलोड

साइज़ (हेडर का साइज़ शामिल नहीं है): अलग-अलग होता है (सामान्य हिस्सा 2 बाइट और शामिल की गई हर रेंजिंग टेक्नोलॉजी के बाइट का साइज़)

ब्यौरा: Ranging Capability Request मैसेज के जवाब में, जवाब देने वाला व्यक्ति इसे भेजता है. इस मैसेज के पेलोड में, सामान्य हिस्सा और रेंजिंग टेक्नोलॉजी के हिसाब से अलग-अलग हिस्से (BLE CS, Wi-Fi NAN RTT CS, BLE RSSI) होते हैं. इनके बारे में यहां दी गई टेबल में बताया गया है. रेंजिंग टेक्नोलॉजी से जुड़ा हर हिस्सा सिर्फ़ तब जोड़ा जाना चाहिए, जब रेंजिंग टेक्नोलॉजी, रिस्पॉन्स देने वाले डिवाइस पर काम करती हो और Ranging Capability Request मैसेज में इसका अनुरोध किया गया हो. विज्ञापन के लिए इस्तेमाल किए जाने वाले कम्यूनिकेशन चैनल के मामले में, रेंजिंग के लिए काम करने वाली सभी टेक्नोलॉजी शामिल होनी चाहिए.

आम तौर पर, Ranging Capability Response मैसेज का पेलोड नीचे दी गई टेबल में बताया गया है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8*2 रेंजिंग के लिए इस्तेमाल की जा सकने वाली टेक्नोलॉजी का बिटफ़ील्ड. बाकी के पेलोड में मौजूद, रेंजिंग टेक्नोलॉजी की क्षमताओं के सेट के बारे में बताता है.
  • 0x01 - UWB
  • 0x02 - BLE चैनल की आवाज़
  • 0x04 - वाई-फ़ाई एनएएन आरटीटी
  • 0x08 - बीएलई आरएसएसआई
  • आरएफ़यू
2 बाइट ऐरे रेंजिंग टेक्नोलॉजी की क्षमता के बाइट. हर टेक्नोलॉजी के हिसाब से तय किए गए स्ट्रक्चर के दोहराए गए ब्लॉक.

UWB Ranging Capability Response मैसेज के पेलोड के बारे में खास जानकारी, नीचे दी गई टेबल में दी गई है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8 रेंजिंग टेक्नोलॉजी आईडी 0x0 - UWB
1 uint8 साइज़ UWB की सुविधाओं का साइज़, बाइट में. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड भी शामिल हैं.
2 uint8*2 UWB पता डिवाइस का दो बाइट का यूडब्ल्यूबी पता.
4 uint8*4 इन चैनलों पर विज्ञापन दिखाए जा सकते हैं bitfield जिन चैनलों पर यह सुविधा काम करती है उनका बिटफ़ील्ड. बिट को 0 पर सेट करने का मतलब है कि सुविधा काम नहीं करती. 1 पर सेट करने का मतलब है कि सुविधा काम करती है. बिट 0, चैनल 0 से जुड़ा होता है.
LSB == channel 0
MSB == channel 31
8 uint8*4 इस्तेमाल किया जा सकने वाला प्रीऐमबल इंडेक्स बिटफ़ील्ड काम करने वाले प्रीऐंबेल इंडेक्स का बिटफ़ील्ड. बिट को 0 पर सेट करने का मतलब है कि सुविधा काम नहीं करती. 1 पर सेट करने का मतलब है कि सुविधा काम करती है. बिट 0, प्रीऐमबल इंडेक्स 1 से जुड़ा होता है.
LSB == preamble index 1
MSB == preamble index 32
12 uint8*4 इस्तेमाल किए जा सकने वाले कॉन्फ़िगरेशन आईडी की बिटफ़ील्ड काम करने वाले UWB कॉन्फ़िगरेशन आईडी का बिटफ़ील्ड. बिट को 0 पर सेट करने का मतलब है कि सुविधा काम नहीं करती. 1 पर सेट करने का मतलब है कि सुविधा काम करती है.
LSB == config Id 0
>MSB == config Id 31
16 uint8*2 रेंजिंग के लिए कम से कम इंटरवल इससे पता चलता है कि रेंजिंग के लिए, मिलीसेकंड में सबसे कम समयावधि क्या है. इस्तेमाल की जा सकने वाली वैल्यू (मिलीसेकंड में):
  • 96
  • 120
  • 240
  • 600
18 uint8 स्लॉट की कम से कम अवधि इससे पता चलता है कि स्लॉट की सबसे कम अवधि कितनी हो सकती है. इसे मिलीसेकंड में दिखाया जाता है. उदाहरण के लिए, अगर डिवाइस 1 एमएस दिखाता है, तो यह माना जाता है कि वह 2 एमएस या उससे ज़्यादा स्लॉट अवधि के साथ भी काम करता है. इस्तेमाल की जा सकने वाली वैल्यू (मिलीसेकंड में):
  • 1
  • 2
19 यूडब्ल्यूबी डिवाइस की भूमिका के लिए इस्तेमाल होने वाला बिटफ़ील्ड UWB की सुविधा के साथ काम करने वाली भूमिकाओं का बिटफ़ील्ड. उदाहरण के लिए, अगर दोनों काम करते हैं, तो फ़ाइनल फ़ील्ड वैल्यू 0x3 होगी.
  • 0x1 - शुरुआत करने वाले की भूमिका के लिए इस्तेमाल किया जा सकता है
  • 0x2 - जवाब देने वाले की भूमिका के लिए इस्तेमाल किया जा सकता है

BLE CS Ranging Capability Request मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8 रेंजिंग टेक्नोलॉजी आईडी 0x1 - बीएलई सीएस
1 uint8 साइज़ बीएलई सीएस की सुविधाओं का साइज़, बाइट में. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड भी शामिल हैं.
2 uint8 इस्तेमाल किए जा सकने वाले सिक्योरिटी टाइप का बिटफ़ील्ड बीएलई सीएस के लिए, इस्तेमाल की जा सकने वाली सुरक्षा टाइप का बिटफ़ील्ड.
  • 0x01 - CS_SECURITY_LEVEL_UNKNOWN
  • 0x02 - CS_SECURITY_LEVEL_ONE
  • 0x04 - CS_SECURITY_LEVEL_TWO
  • 0x08 - CS_SECURITY_LEVEL_THREE
  • 0x10 - CS_SECURITY_LEVEL_FOUR
3 uint8*6 डिवाइस का पता BLE CS के लिए इस्तेमाल किए गए डिवाइस का पता, बिग इंडियन ऑर्डर में.

Wi-Fi NAN RTT CS Ranging Capability Request मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8 रेंजिंग टेक्नोलॉजी आईडी 0x2 - वाई-फ़ाई एनएएन आरटीटी
1 uint8 साइज़ BLE आरएसएसआई की क्षमताओं का साइज़, बाइट में. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड भी शामिल हैं.
2 uint8 काम करने वाली सुविधाओं का बिटफ़ील्ड काम करने वाली सुविधाओं का बिटफ़ील्ड.
  • 0x01 - 11mc की सुविधा
  • 0x02 - 11az की सुविधा
3 uint8 समय-समय पर रेंजिंग की सुविधा काम करती है
  • 0x0 - समय-समय पर रेंजिंग की सुविधा काम नहीं करती
  • 0x1 - समयावधि की सुविधा काम करती है
4 uint8 इस्तेमाल की जा सकने वाली बैंडविड्थ इस जानकारी से, वाई-फ़ाई एनएएन का इस्तेमाल करके, रेंजिंग की सटीक जानकारी पाने में मदद मिलती है. साथ ही, ऐप्लिकेशन यह तय कर सकते हैं कि रेंजिंग के लिए UWB, बीएलई सीएस, बीएलई आरएसएसआई या वाई-फ़ाई एनएएन का इस्तेमाल करना है या नहीं.
  • 0x00 - 20 मेगाहर्ट्ज़
  • 0x01 - 40 मेगाहर्ट्ज़
  • 0x02 - 80 मेगाहर्ट्ज़
  • 0x03 - 160 मेगाहर्ट्ज़
  • 0x04 - 80+80 मेगाहर्ट्ज़
  • 0x05 - 320 मेगाहर्ट्ज़
  • आरएफ़यू
5 uint8 ईमेल पाने की चेन की संख्या इस जानकारी से, वाई-फ़ाई एनएएन का इस्तेमाल करके, रेंजिंग की सटीक जानकारी पाने में मदद मिलती है. साथ ही, ऐप्लिकेशन यह तय कर सकते हैं कि रेंजिंग के लिए UWB, बीएलई सीएस, बीएलई आरएसएसआई या वाई-फ़ाई एनएएन का इस्तेमाल करना है या नहीं.
  • 0x00 - तय नहीं है
  • 0x01 - एक RX चेन
  • 0x02 - दो RX चेन
  • 0x03 - तीन RX चेन
  • 0x04 - चार RX चेन

BLE आरएसएसआई Ranging Capability Request मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8 रेंजिंग टेक्नोलॉजी आईडी 0x3 - बीएलई सीएस
1 uint8 साइज़ बीएलई आरएसएसआई की क्षमताओं का साइज़, बाइट में. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड भी शामिल हैं
2 uint8*6 डिवाइस का पता BLE आरएसएसआई के लिए इस्तेमाल किए गए डिवाइस का पता; बिग इंडियन ऑर्डर में

रेंजिंग कॉन्फ़िगरेशन मैसेज का पेलोड

साइज़ (हेडर का साइज़ शामिल नहीं है): अलग-अलग होता है (सामान्य हिस्सा 4 बाइट और शामिल की गई हर रेंजिंग टेक्नोलॉजी के बाइट का साइज़).

जानकारी: यह मैसेज, शुरू करने वाला डिवाइस भेजता है. इसमें ऐसे कॉन्फ़िगरेशन होते हैं जिनसे हर रेंजिंग टेक्नोलॉजी, रेंजिंग शुरू कर सकती है. इस मैसेज को मिलने के बाद, रिस्पॉन्स देने वाले डिवाइस को रेंजिंग के लिए, बताई गई हर टेक्नोलॉजी का इस्तेमाल करना चाहिए. इस मैसेज के पेलोड में, सामान्य हिस्सा और रेंजिंग टेक्नोलॉजी के हिसाब से अलग-अलग हिस्से (UWB, BLE CS, Wi-Fi NAN RTT, BLE RSSI) शामिल होते हैं. इन हिस्सों के बारे में नीचे दी गई टेबल में बताया गया है.

आम तौर पर, Ranging Configuration मैसेज का पेलोड नीचे दी गई टेबल में बताया गया है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8*2 रेंजिंग टेक्नोलॉजी कॉन्फ़िगरेशन सेट बिटफ़ील्ड रेंजिंग टेक्नोलॉजी का बिटफ़ील्ड, जिसके लिए इस मैसेज में कॉन्फ़िगरेशन डेटा शामिल है और जिसके लिए कॉन्फ़िगरेशन पैरामीटर सेट किए जाने चाहिए.
  • 0x01 - UWB
  • 0x02 - BLE चैनल की आवाज़
  • 0x04 - वाई-फ़ाई एनएएन आरटीटी
  • 0x08 - बीएलई आरएसएसआई
  • आरएफ़यू
2 uint8*2 बिटफ़ील्ड RFU. इसकी वैल्यू, रेंजिंग टेक्नोलॉजी कॉन्फ़िगरेशन सेट बिटफ़ील्ड फ़ील्ड की वैल्यू के बराबर होनी चाहिए.
4 बाइट ऐरे रेंजिंग टेक्नोलॉजी के कॉन्फ़िगरेशन के बाइट हर टेक्नोलॉजी के हिसाब से तय किए गए स्ट्रक्चर के दोहराए गए ब्लॉक

UWB Ranging Configuration मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8 रेंजिंग टेक्नोलॉजी आईडी 0x0 - UWB
1 uint8 साइज़ UWB कॉन्फ़िगरेशन का साइज़ (इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड शामिल हैं), बाइट में
2 uint8*2 UWB पता डिवाइस का दो बाइट वाला यूडब्ल्यूबी पता
4 uint8*4 सेशन आईडी जनरेट किया गया सेशन आईडी. सेशन आईडी, फ़ोन और पेरिफ़रल के बीच रेंजिंग सेशन के लिए एक यूनीक आइडेंटिफ़ायर होता है.
8 uint8 चुना गया कॉन्फ़िगरेशन आईडी चुना गया कॉन्फ़िगरेशन आईडी नंबर, पूर्णांक में. कॉन्फ़िगरेशन आईडी, टाइमिंग पैरामीटर और सुरक्षा के उस टाइप के बारे में बताता है जिसका इस्तेमाल UWB रेंजिंग सेशन के लिए किया जाना चाहिए.
9 uint8 चुना गया चैनल UWB रेंजिंग सेशन के लिए चुना गया चैनल
10 uint8 चुना गया प्रीऐबल इंडेक्स UWB रेंजिंग सेशन के लिए चुना गया प्रीऐंबुल इंडेक्स
11 uint8*2 चुना गया रेंजिंग इंटरवल चुना गया रेंजिंग इंटरवल रेट, मिलीसेकंड में. इस्तेमाल की जा सकने वाली वैल्यू (मिलीसेकंड में):
  • 96
  • 120
  • 240
  • 600
13 uint8 चुने गए स्लॉट की अवधि चुने गए स्लॉट की अवधि, मिलीसेकंड में. इस्तेमाल की जा सकने वाली वैल्यू (मिलीसेकंड में):
  • 1
  • 2
14 uint8 सेशन की कुंजी की लंबाई सेशन कुंजी की लंबाई, बाइट में
15 बाइट ऐरे सेशन कुंजी सेशन कुंजी. अगर S-STS का इस्तेमाल किया जाता है, तो पहले दो बाइट वेंडर आईडी होते हैं और अगले छह बाइट स्टैटिक एसटीएस IV होते हैं. अगर P-STS का इस्तेमाल किया जाता है, तो यह 16 या 32 बाइट की सेशन कुंजी होती है. इस्तेमाल की जाने वाली सुरक्षा का टाइप, कॉन्फ़िगरेशन आईडी से तय होता है.
अलग-अलग uint8*2 देश का कोड ISO 3166-1 alpha-2 देश कोड, जिसे दो ASCII वर्ण से दिखाया जाता है
अलग-अलग uint8 डिवाइस की चुनी गई भूमिका
  • 0x01 - शुरुआत करने वाला
  • 0x02 - जवाब देने वाला व्यक्ति
अलग-अलग uint8 चुना गया डिवाइस मोड
  • 0x01 - कंट्रोलर
  • 0x02 - कंट्रोल किया जा रहा डिवाइस

BLE CS Ranging Configuration मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8 रेंजिंग टेक्नोलॉजी आईडी 0x1 - बीएलई सीएस
1 uint8 साइज़ BLE CS कॉन्फ़िगरेशन का साइज़ (इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड शामिल हैं), बाइट में
2 uint8 चुना गया सुरक्षा टाइप चुना गया सुरक्षा टाइप. इस्तेमाल की जा सकने वाली वैल्यू:
  • 0x0 - CS_SECURITY_LEVEL_UNKNOWN
  • 0x1 - CS_SECURITY_LEVEL_ONE
  • 0x2 - CS_SECURITY_LEVEL_TWO
  • 0x3 - CS_SECURITY_LEVEL_THREE
  • 0x4 - CS_SECURITY_LEVEL_FOUR
3 uint8*6 डिवाइस का पता BLE CS के लिए इस्तेमाल किए गए डिवाइस का पता; बिग इंडियन ऑर्डर में

Wi-Fi NAN आरटीटी Ranging Configuration मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8 रेंजिंग टेक्नोलॉजी आईडी 0x2 - वाई-फ़ाई एनएएन आरटीटी
1 uint8 साइज़ वाई-फ़ाई एनएएन आरटीटी कॉन्फ़िगरेशन का साइज़, बाइट में. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड भी शामिल हैं
2 uint8 सेवा के नाम की लंबाई सेवा के नाम वाले फ़ील्ड की लंबाई, बाइट में. Wi-Fi Aware Specification v4.0 सेक्शन 1.3.3 टेबल 1 देखें. परिभाषाएं.
3 बाइट ऐरे सेवा का नाम सेवा का नाम. Wi-Fi Aware Specification v4.0 सेक्शन 1.3.3 टेबल 1 देखें. परिभाषाएं.
अलग-अलग uint8 डिवाइस की भूमिका
  • 0x0 - रिस्पॉन्स देने वाला (एनएएन सेवा पब्लिशर)
  • 0x1 - शुरुआत करने वाला (एनएएन सेवा का सदस्य)
अलग-अलग uint8 समय-समय पर रेंजिंग का इस्तेमाल करना
  • 0x0 - समय-समय पर रेंजिंग की सुविधा बंद है
  • 0x1 - समय-समय पर रेंजिंग की सुविधा चालू है

BLE आरएसएसआई Ranging Configuration मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8 रेंजिंग टेक्नोलॉजी आईडी 0x3 - बीएलई आरएसएसआई
1 uint8 साइज़ BLE आरएसएसआई कॉन्फ़िगरेशन का साइज़ (इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड शामिल हैं), बाइट में
2 uint8*6 डिवाइस का पता BLE आरएसएसआई के लिए इस्तेमाल किए गए डिवाइस का पता; बिग इंडियन ऑर्डर में

रेंजिंग कॉन्फ़िगरेशन रिस्पॉन्स मैसेज का पेलोड

साइज़ (हेडर का साइज़ शामिल नहीं है): 2 बाइट

जानकारी: यह मैसेज, जवाब देने वाला व्यक्ति Ranging Configuration मैसेज के जवाब में भेजता है. यह मैसेज भेजना ज़रूरी नहीं है. इसे सिर्फ़ तब भेजना ज़रूरी है, जब इस्तेमाल किए जा रहे कम्यूनिकेशन चैनल पर हर अनुरोध के लिए साफ़ तौर पर जवाब देना ज़रूरी हो.

Ranging Configuration Response मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8*2 रेंजिंग टेक्नोलॉजी का कॉन्फ़िगरेशन सेट किया गया रेंजिंग टेक्नोलॉजी का बिटफ़ील्ड, जो सेट हो गया है. अगर टेक्नोलॉजी का अनुरोध किया गया था और उसे सेट किया गया था, तो बिटफ़ील्ड, रेंजिंग टेक्नोलॉजी बिट को 1 पर सेट करता है. अगर ऐसा नहीं किया गया था, तो उसे 0 पर सेट करता है.
  • 0x01 - UWB
  • 0x02 - BLE चैनल की आवाज़
  • 0x04 - वाई-फ़ाई एनएएन आरटीटी
  • 0x08 - बीएलई आरएसएसआई
  • आरएफ़यू

Stop Ranging message payload

साइज़ (हेडर का साइज़ शामिल नहीं है): 2 बाइट

जानकारी: यह मैसेज, शुरू करने वाले डिवाइस से तब भेजा जाता है, जब तय की गई रेंजिंग टेक्नोलॉजी से रेंजिंग बंद करने का समय आ जाता है.

Stop Ranging मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8*2 बिटफ़ील्ड को रोकने के लिए रेंजिंग टेक्नोलॉजी रेंजिंग टेक्नोलॉजी का बिटफ़ील्ड, जिसे रेंजिंग बंद करनी है. बिट को 1 पर सेट करने का मतलब है कि रेंजिंग टेक्नोलॉजी को रेंजिंग बंद करनी चाहिए. वहीं, 0 पर सेट करने का मतलब है कि रेंजिंग टेक्नोलॉजी पहले से रेंजिंग नहीं कर रही थी या अगर पहले से रेंजिंग कर रही थी, तो उसे रेंजिंग जारी रखनी चाहिए. रेंजिंग की कुछ टेक्नोलॉजी (जैसे, सीएस) के लिए, यह कोई काम का नहीं है, क्योंकि रेंजिंग की प्रोसेस सिर्फ़ शुरू करने वाले डिवाइस पर शुरू और बंद की जाती है.
  • 0x01 - UWB
  • 0x02 - BLE चैनल की आवाज़
  • 0x04 - वाई-फ़ाई एनएएन आरटीटी
  • 0x08 - बीएलई आरएसएसआई
  • आरएफ़यू

Stop Ranging Response message payload

साइज़ (हेडर का साइज़ शामिल नहीं है): 2 बाइट

जानकारी: यह मैसेज, जवाब देने वाला व्यक्ति Stop Ranging मैसेज के जवाब में भेजता है. यह मैसेज भेजना ज़रूरी नहीं है. इसे सिर्फ़ तब भेजना ज़रूरी है, जब इस्तेमाल किए जा रहे कम्यूनिकेशन चैनल पर हर अनुरोध के लिए साफ़ तौर पर जवाब देना ज़रूरी हो.

Stop Ranging Response मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8*2 Ranging technologies stopped successfully bitfield रेंजिंग की उन टेक्नोलॉजी का बिटफ़ील्ड जिन्हें रेंजिंग की प्रोसेस पूरी होने के बाद बंद कर दिया गया. अगर टेक्नोलॉजी को बंद करने का अनुरोध किया गया था और वह बंद हो गई, तो बिटफ़ील्ड, रेंजिंग टेक्नोलॉजी के बिट को 1 पर सेट करता है. अगर ऐसा नहीं हुआ, तो बिटफ़ील्ड उसे 0 पर सेट करता है.
  • 0x01 - UWB
  • 0x02 - BLE चैनल की आवाज़
  • 0x04 - वाई-फ़ाई एनएएन आरटीटी
  • 0x08 - बीएलई आरएसएसआई
  • आरएफ़यू

वर्शन

स्पेसिफ़िकेशन का वर्शन, हर मैसेज के हेडर में शामिल होता है. इस सेक्शन में बताया गया है कि जब कोई एक डिवाइस (इनीशियेटर या रिस्पॉन्स देने वाला डिवाइस) दूसरे डिवाइस से पुराने वर्शन पर हो, तो कैसे कम्यूनिकेशन किया जाता है.

पहला उदाहरण: कनेक्शन पर आधारित कम्यूनिकेशन चैनल

इस सेक्शन में, कनेक्शन पर आधारित कम्यूनिकेशन चैनल का इस्तेमाल करने वाले मामलों के बारे में बताया गया है. इसमें Ranging Capability Request, शुरू करने वाले डिवाइस से भेजा गया पहला मैसेज होता है.

पहला मामला: शुरू करने वाला व्यक्ति, स्पेसिफ़िकेशन के नए वर्शन का इस्तेमाल करता है और जवाब देने वाला व्यक्ति, स्पेसिफ़िकेशन के पुराने वर्शन का इस्तेमाल करता है.

शुरू करने वाला डिवाइस, नए वर्शन के साथ Ranging Capability Request मैसेज भेजता है. जवाब देने वाले डिवाइस पर सिर्फ़ पुराना वर्शन काम करता है. इसलिए, वह उसी वर्शन का इस्तेमाल करके जवाब देता है. इसके बाद, मैसेज एक्सचेंज के बाकी हिस्से के लिए, जवाब देने वाले डिवाइस के पुराने वर्शन का इस्तेमाल किया जाता है. इसका मतलब है कि Ranging Capability Request मैसेज, पुराने सिस्टम के साथ काम करना चाहिए.

केस 1.b: शुरू करने वाला पुराने वर्शन का इस्तेमाल करता है, जबकि जवाब देने वाला, स्पेसिफ़िकेशन के नए वर्शन का इस्तेमाल करता है.

जवाब देने वाला डिवाइस देखता है कि मैसेज भेजने वाला डिवाइस, नए वर्शन का इस्तेमाल नहीं कर सकता. इसलिए, वह मैसेज भेजने के लिए, सिर्फ़ उस पुराने वर्शन का इस्तेमाल करता है जिसका अनुरोध मैसेज भेजने वाले डिवाइस ने शुरू में किया था.

दूसरा उदाहरण: विज्ञापन पर आधारित कम्यूनिकेशन चैनल

इस सेक्शन में, विज्ञापन पर आधारित कम्यूनिकेशन चैनल का इस्तेमाल करने वाले मामलों के बारे में बताया गया है. इसमें, जवाब देने वाले डिवाइस पर, शुरुआती अनुरोध के बिना Ranging Capability Request का विज्ञापन सीधे तौर पर दिखता है.

दूसरा मामला: इनिशिएटर, स्पेसिफ़िकेशन के नए वर्शन के साथ काम करता है, जबकि रिस्पॉन्स देने वाला एजेंट, स्पेसिफ़िकेशन के पुराने वर्शन के साथ काम करता है.

Ranging Capability Response विज्ञापन में सेट किए गए पुराने वर्शन का इस्तेमाल, बाकी बातचीत के लिए किया जाता है.

दूसरा मामला: अनुरोध करने वाला, स्पेसिफ़िकेशन के पुराने वर्शन का इस्तेमाल करता है और जवाब देने वाला, नए वर्शन का इस्तेमाल करता है.

Ranging Capability Response विज्ञापन का नया वर्शन, पुराने वर्शन के साथ काम करना चाहिए, ताकि मैसेज भेजने वाला डिवाइस, नया वर्शन इस्तेमाल करने के बावजूद मैसेज पढ़ सके. इसके बाद, शुरू करने वाले डिवाइस पर मौजूद पुराने वर्शन का इस्तेमाल करके, Ranging Configuration मैसेज भेजा जाता है. इस वर्शन का इस्तेमाल, बाकी बातचीत के लिए किया जाता है.

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

फ़्रैगमेंटेशन

यह स्पेसिफ़िकेशन, कम्यूनिकेशन चैनल के हिसाब से नहीं है. इसलिए, इसमें यह नहीं बताया गया है कि अगर कोई मैसेज, इस्तेमाल किए जा रहे कम्यूनिकेशन चैनल के ट्रांसफ़र पैकेट में फ़िट नहीं होता है, तो मैसेज के पेलोड को कैसे फ़्रैगमेंट में बांटें. रेंजिंग मॉड्यूल को हर मैसेज को उसके पूरे फ़ॉर्म में मिलने की उम्मीद होती है. फ़्रैगमेंटेशन की ज़िम्मेदारी, ओओबी कम्यूनिकेशन चैनल को लागू करने वाले व्यक्ति की होती है.

Ranging-technology-specifics

इस सेक्शन में, रेंजिंग टेक्नोलॉजी के बारे में खास जानकारी दी गई है.

अल्ट्रा-वाइडबैंड (यूडब्ल्यूबी) के बारे में खास जानकारी

इस सेक्शन में, अल्ट्रा-वाइडबैंड के बारे में खास जानकारी दी गई है.

कॉन्फ़िगरेशन आईडी

UWB के लिए एक्सचेंज किए गए ओओबी कॉन्फ़िगरेशन डेटा में, उन उपलब्ध कॉन्फ़िगरेशन पैरामीटर का पूरा सेट शामिल नहीं होता है जिनकी ज़रूरत UWB को रेंजिंग सेशन शुरू करने के लिए होती है. ऐसा इसलिए होता है, क्योंकि चुने गए कॉन्फ़िगरेशन आईडी से कुछ पैरामीटर अपने-आप चुने जाते हैं.

हर कॉन्फ़िगरेशन आईडी, पहले से तय किए गए UWB कॉन्फ़िगरेशन पैरामीटर का एक सेट होता है. इसकी जानकारी UwbRangingParams में दी गई है. रिस्पॉन्स देने वाला डिवाइस, सुविधा के रिस्पॉन्स मैसेज के हिस्से के तौर पर, उन सभी कॉन्फ़िगरेशन आईडी की सूची भेजता है जिन पर वह काम करता है. साथ ही, शुरू करने वाला डिवाइस, इस्तेमाल किए जाने वाले उन कॉन्फ़िगरेशन आईडी में से किसी एक को चुनता है. इससे, ओओबी के दौरान कॉन्फ़िगरेशन पैरामीटर के छोटे सेट को एक-दूसरे के साथ शेयर किया जा सकता है. यह UWB के साथ रेंजिंग के लिए इस्तेमाल किए जा सकने वाले पैरामीटर के संभावित कॉम्बिनेशन की संख्या को भी सीमित करता है. इससे, सिर्फ़ अनुमति वाले पैरामीटर के कॉम्बिनेशन की जांच की जा सकती है.

हर UWB सेशन के बाद, सुविधाओं का अनुरोध करना

किसी मौजूदा UWB सेशन को रोकने के बाद और नया UWB सेशन शुरू करने से पहले, शुरू करने वाले डिवाइस को जवाब देने वाले डिवाइस की क्षमताओं का अनुरोध करना होगा और कॉन्फ़िगरेशन पैरामीटर को फिर से सेट करना होगा. ऐसा इसलिए, क्योंकि मौजूदा रेंजिंग सेशन खत्म होते ही UWB पता बदल सकता है.

बीएलई चैनल साउंडिंग (सीएस) के बारे में खास जानकारी

इस सेक्शन में, चैनल के साउंडिंग के बारे में खास जानकारी दी गई है.

डिवाइसों के बीच ज़रूरी बॉन्ड

चैनल साउंडिंग का इस्तेमाल करके रेंज तय करने के लिए, यह ज़रूरी है कि चैनल शुरू करने वाले और जवाब देने वाले डिवाइस के बीच पहले से कोई बॉन्ड मौजूद हो. इस स्पेसिफ़िकेशन में, डिवाइसों के बीच बॉन्ड बनाने का तरीका नहीं बताया गया है. Ranging APIs का इस्तेमाल करने वाले उपयोगकर्ता को डिवाइसों के बीच यह बॉन्ड बनाना होगा.

सीएस के लिए, जवाब देने वाले पक्ष को कार्रवाई करनी होगी

UWB में, दोनों डिवाइसों को UWB स्टार्ट रेंजिंग और स्टॉप रेंजिंग एपीआई को साफ़ तौर पर कॉल करना ज़रूरी है. इसके उलट, सीएस के लिए, ब्लूटूथ (बीटी) स्टैक को कॉल करके, सिर्फ़ शुरू करने वाले डिवाइस को सीएस रेंजिंग शुरू करनी होती है. जवाब देने वाले डिवाइस पर, बाकी सभी प्रोसेस बीटी के ज़रिए बैंड में होती है. इसका मतलब है कि सीएस के लिए Ranging Configuration मैसेज या Stop Ranging मैसेज मिलने पर, जवाब देने वाले डिवाइस को कुछ करने की ज़रूरत नहीं होती, बशर्ते बीटी चालू हो. रिस्पॉन्स देने वाला डिवाइस, उन मैसेज का इस्तेमाल यूज़र इंटरफ़ेस (यूआई) को अपडेट करने के लिए ट्रिगर के तौर पर कर सकता है. उदाहरण के लिए, डिवाइस के एलईडी को ब्लिंक कर सकता है.