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

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

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

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

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

नीचे दी गई टेबल में, OOB एक्सचेंज में मौजूद सभी मैसेज दिखाए गए हैं:

मैसेज मैसेज की आईडी
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 को पहले मैसेज के तौर पर भेजता है. इसे इमेज 2 में दिखाया गया है:

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

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

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

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

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

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

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

रेंजिंग टेक्नोलॉजी ID
यूडब्ल्यूबी 0x0
CS 0x1
Wi-Fi NAN RTT 0x2
RSSI 0x3
RFU 0x4 - 0xFF

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

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

पेलोड

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

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

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

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

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

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

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

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

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

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

Ranging Capability Response मैसेज के सामान्य पेलोड के बारे में यहां बताया गया है:

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

UWB Ranging Capability Response मैसेज के पेलोड के बारे में यहां बताया गया है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8 रेंजिंग टेक्नोलॉजी आईडी 0x0 - यूडब्ल्यूबी
1 uint8 साइज़ यूडब्ल्यूबी की सुविधाओं का साइज़, बाइट में. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड शामिल हैं.
2 uint8*2 यूडब्ल्यूबी पता डिवाइस का यूडब्ल्यूबी पता, 2 बाइट का होता है.
4 uint8*4 सहायता देने वाले चैनलों का बिटफ़ील्ड यह बिटफ़ील्ड, उन चैनलों के बारे में बताता है जिन पर यह सुविधा काम करती है. बिट को 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 कॉन्फ़िगरेशन आईडी बिटफ़ील्ड यह यूडब्ल्यूबी के साथ काम करने वाले कॉन्फ़िगरेशन आईडी का बिटफ़ील्ड है. बिट को 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 Response मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8 रेंजिंग टेक्नोलॉजी आईडी 0x1 - BLE CS
1 uint8 साइज़ बीएलई सीएस की क्षमताओं का साइज़, बाइट में. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड शामिल हैं.
2 uint8 सुरक्षा के टाइप के लिए इस्तेमाल किया जा सकने वाला बिटफ़ील्ड यह BLE CS के लिए, इस्तेमाल की जा सकने वाली सुरक्षा के टाइप का बिटफ़ील्ड है.
  • 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 के लिए इस्तेमाल किए गए डिवाइस का पता. यह बिग एंडियन ऑर्डर में होता है.

वाई-फ़ाई एनएएन आरटीटी Ranging Capability Response मैसेज पेलोड के बारे में यहां दी गई टेबल में बताया गया है:

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

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

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

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

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

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

Ranging Configuration मैसेज के सामान्य पेलोड के बारे में यहां बताया गया है:

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

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

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

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

ऑक्टेट डेटा टाइप ब्यौरा वैल्यू
0 uint8 रेंजिंग टेक्नोलॉजी आईडी 0x1 - BLE CS
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 के लिए इस्तेमाल किए गए डिवाइस का पता; बिग एंडियन ऑर्डर में

वाई-फ़ाई एनएएन आरटीटी 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 RSSI Ranging Configuration मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:

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

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

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

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

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

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

Stop Ranging मैसेज पेलोड

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

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

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

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

Stop Ranging Response मैसेज पेलोड

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

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

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

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

वर्शन

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

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

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

पहली स्थिति: अनुरोध करने वाला, नए वर्शन के साथ काम करता है.वहीं, अनुरोध का जवाब देने वाला, पुराने वर्शन के साथ काम करता है.

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

केस 1.b: अनुरोध करने वाला पुराना वर्शन इस्तेमाल करता है, जबकि जवाब देने वाला नया वर्शन इस्तेमाल करता है.

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

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

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

केस 2.a: अनुरोध करने वाला पक्ष, नए वर्शन के साथ काम करता है. वहीं, जवाब देने वाला पक्ष, स्पेसिफ़िकेशन के पुराने वर्शन के साथ काम करता है.

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

केस 2.b: अनुरोध करने वाला पक्ष, पुराने वर्शन के साथ काम करता है और जवाब देने वाला पक्ष, नए वर्शन के साथ काम करता है.

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

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

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

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

Ranging-technology-specifics

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

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

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

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

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

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

हर यूडब्ल्यूबी सेशन के बाद, सुविधाओं का अनुरोध करना

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

BLE चैनल साउंडिंग (सीएस) की खास बातें

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

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

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

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

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