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 | मैसेज की आईडी |
|
पेलोड
साइज़: अलग-अलग होता है (मैसेज के टाइप पर निर्भर करता है)
जानकारी: हेडर के बाद, पेलोड मैसेज का आखिरी हिस्सा होता है. पेलोड, मैसेज के टाइप पर निर्भर करता है. यहां दिए गए सेक्शन में, हर तरह के मैसेज के पेलोड का फ़ॉर्मैट बताया गया है.
रेंजिंग की सुविधा के अनुरोध का मैसेज पेलोड
साइज़ (हेडर का साइज़ शामिल नहीं है): 2 बाइट
जानकारी: मैसेज एक्सचेंज शुरू करने के लिए, मैसेज भेजने वाले डिवाइस से भेजा जाता है.
अगर सूचना देने वाला चैनल, विज्ञापन पर आधारित है, तो यह मैसेज भेजना ज़रूरी नहीं है. ऐसे में, जवाब देने वाले डिवाइस को पहले चरण के तौर पर Ranging
Capability
मैसेज का विज्ञापन दिखाना होगा. शुरुआत करने वाला डिवाइस (शुरुआती स्कैनर), विज्ञापन को पढ़ता है और सीधे Ranging Capability
मैसेज के साथ जवाब देता है. इससे इस मैसेज की ज़रूरत नहीं पड़ती.
Ranging Capability Request
मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:
ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
---|---|---|---|
0 | uint8*2 | अनुरोध की गई रेंजिंग टेक्नोलॉजी का बिटफ़ील्ड |
|
रेंजिंग की सुविधा के जवाब का मैसेज पेलोड
साइज़ (हेडर का साइज़ शामिल नहीं है): अलग-अलग होता है (सामान्य हिस्सा 2 बाइट और शामिल की गई हर रेंजिंग टेक्नोलॉजी के बाइट का साइज़)
ब्यौरा: Ranging Capability
Request
मैसेज के जवाब में, जवाब देने वाला व्यक्ति इसे भेजता है. इस मैसेज के पेलोड में, सामान्य हिस्सा और रेंजिंग टेक्नोलॉजी के हिसाब से अलग-अलग हिस्से (BLE CS, Wi-Fi NAN RTT CS, BLE RSSI) होते हैं. इनके बारे में यहां दी गई टेबल में बताया गया है. रेंजिंग टेक्नोलॉजी से जुड़ा हर हिस्सा सिर्फ़ तब जोड़ा जाना चाहिए, जब रेंजिंग टेक्नोलॉजी, रिस्पॉन्स देने वाले डिवाइस पर काम करती हो और Ranging Capability Request
मैसेज में इसका अनुरोध किया गया हो. विज्ञापन के लिए इस्तेमाल किए जाने वाले कम्यूनिकेशन चैनल के मामले में, रेंजिंग के लिए काम करने वाली सभी टेक्नोलॉजी शामिल होनी चाहिए.
आम तौर पर, Ranging Capability Response
मैसेज का पेलोड नीचे दी गई टेबल में बताया गया है:
ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
---|---|---|---|
0 | uint8*2 | रेंजिंग के लिए इस्तेमाल की जा सकने वाली टेक्नोलॉजी का बिटफ़ील्ड. बाकी के पेलोड में मौजूद, रेंजिंग टेक्नोलॉजी की क्षमताओं के सेट के बारे में बताता है. |
|
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 | रेंजिंग के लिए कम से कम इंटरवल | इससे पता चलता है कि रेंजिंग के लिए, मिलीसेकंड में सबसे कम समयावधि क्या है. इस्तेमाल की जा सकने वाली वैल्यू (मिलीसेकंड में):
|
18 | uint8 | स्लॉट की कम से कम अवधि | इससे पता चलता है कि स्लॉट की सबसे कम अवधि कितनी हो सकती है. इसे मिलीसेकंड में दिखाया जाता है. उदाहरण के लिए, अगर डिवाइस 1 एमएस दिखाता है, तो यह माना जाता है कि वह 2 एमएस या उससे ज़्यादा स्लॉट अवधि के साथ भी काम करता है. इस्तेमाल की जा सकने वाली वैल्यू (मिलीसेकंड में):
|
19 | यूडब्ल्यूबी डिवाइस की भूमिका के लिए इस्तेमाल होने वाला बिटफ़ील्ड | UWB की सुविधा के साथ काम करने वाली भूमिकाओं का बिटफ़ील्ड. उदाहरण के लिए, अगर दोनों काम करते हैं, तो फ़ाइनल फ़ील्ड वैल्यू 0x3 होगी.
|
BLE CS Ranging Capability Request
मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:
ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
---|---|---|---|
0 | uint8 | रेंजिंग टेक्नोलॉजी आईडी | 0x1 - बीएलई सीएस |
1 | uint8 | साइज़ | बीएलई सीएस की सुविधाओं का साइज़, बाइट में. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड भी शामिल हैं. |
2 | uint8 | इस्तेमाल किए जा सकने वाले सिक्योरिटी टाइप का बिटफ़ील्ड | बीएलई सीएस के लिए, इस्तेमाल की जा सकने वाली सुरक्षा टाइप का बिटफ़ील्ड.
|
3 | uint8*6 | डिवाइस का पता | BLE CS के लिए इस्तेमाल किए गए डिवाइस का पता, बिग इंडियन ऑर्डर में. |
Wi-Fi NAN RTT CS Ranging Capability Request
मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:
ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
---|---|---|---|
0 | uint8 | रेंजिंग टेक्नोलॉजी आईडी | 0x2 - वाई-फ़ाई एनएएन आरटीटी |
1 | uint8 | साइज़ | BLE आरएसएसआई की क्षमताओं का साइज़, बाइट में. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड भी शामिल हैं. |
2 | uint8 | काम करने वाली सुविधाओं का बिटफ़ील्ड | काम करने वाली सुविधाओं का बिटफ़ील्ड.
|
3 | uint8 | समय-समय पर रेंजिंग की सुविधा काम करती है |
|
4 | uint8 | इस्तेमाल की जा सकने वाली बैंडविड्थ | इस जानकारी से, वाई-फ़ाई एनएएन का इस्तेमाल करके, रेंजिंग की सटीक जानकारी पाने में मदद मिलती है. साथ ही, ऐप्लिकेशन यह तय कर सकते हैं कि रेंजिंग के लिए UWB, बीएलई सीएस, बीएलई आरएसएसआई या वाई-फ़ाई एनएएन का इस्तेमाल करना है या नहीं.
|
5 | uint8 | ईमेल पाने की चेन की संख्या | इस जानकारी से, वाई-फ़ाई एनएएन का इस्तेमाल करके, रेंजिंग की सटीक जानकारी पाने में मदद मिलती है. साथ ही, ऐप्लिकेशन यह तय कर सकते हैं कि रेंजिंग के लिए UWB, बीएलई सीएस, बीएलई आरएसएसआई या वाई-फ़ाई एनएएन का इस्तेमाल करना है या नहीं.
|
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 | रेंजिंग टेक्नोलॉजी कॉन्फ़िगरेशन सेट बिटफ़ील्ड | रेंजिंग टेक्नोलॉजी का बिटफ़ील्ड, जिसके लिए इस मैसेज में कॉन्फ़िगरेशन डेटा शामिल है और जिसके लिए कॉन्फ़िगरेशन पैरामीटर सेट किए जाने चाहिए.
|
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 | चुना गया रेंजिंग इंटरवल | चुना गया रेंजिंग इंटरवल रेट, मिलीसेकंड में. इस्तेमाल की जा सकने वाली वैल्यू (मिलीसेकंड में):
|
13 | uint8 | चुने गए स्लॉट की अवधि | चुने गए स्लॉट की अवधि, मिलीसेकंड में. इस्तेमाल की जा सकने वाली वैल्यू (मिलीसेकंड में):
|
14 | uint8 | सेशन की कुंजी की लंबाई | सेशन कुंजी की लंबाई, बाइट में |
15 | बाइट ऐरे | सेशन कुंजी | सेशन कुंजी. अगर S-STS का इस्तेमाल किया जाता है, तो पहले दो बाइट वेंडर आईडी होते हैं और अगले छह बाइट स्टैटिक एसटीएस IV होते हैं. अगर P-STS का इस्तेमाल किया जाता है, तो यह 16 या 32 बाइट की सेशन कुंजी होती है. इस्तेमाल की जाने वाली सुरक्षा का टाइप, कॉन्फ़िगरेशन आईडी से तय होता है. |
अलग-अलग | uint8*2 | देश का कोड | ISO 3166-1 alpha-2 देश कोड, जिसे दो ASCII वर्ण से दिखाया जाता है |
अलग-अलग | uint8 | डिवाइस की चुनी गई भूमिका |
|
अलग-अलग | uint8 | चुना गया डिवाइस मोड |
|
BLE CS Ranging Configuration
मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:
ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
---|---|---|---|
0 | uint8 | रेंजिंग टेक्नोलॉजी आईडी | 0x1 - बीएलई सीएस |
1 | uint8 | साइज़ | BLE CS कॉन्फ़िगरेशन का साइज़ (इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड शामिल हैं), बाइट में |
2 | uint8 | चुना गया सुरक्षा टाइप | चुना गया सुरक्षा टाइप. इस्तेमाल की जा सकने वाली वैल्यू:
|
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 | डिवाइस की भूमिका |
|
अलग-अलग | uint8 | समय-समय पर रेंजिंग का इस्तेमाल करना |
|
BLE आरएसएसआई Ranging Configuration
मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:
ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
---|---|---|---|
0 | uint8 | रेंजिंग टेक्नोलॉजी आईडी | 0x3 - बीएलई आरएसएसआई |
1 | uint8 | साइज़ | BLE आरएसएसआई कॉन्फ़िगरेशन का साइज़ (इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड शामिल हैं), बाइट में |
2 | uint8*6 | डिवाइस का पता | BLE आरएसएसआई के लिए इस्तेमाल किए गए डिवाइस का पता; बिग इंडियन ऑर्डर में |
रेंजिंग कॉन्फ़िगरेशन रिस्पॉन्स मैसेज का पेलोड
साइज़ (हेडर का साइज़ शामिल नहीं है): 2 बाइट
जानकारी: यह मैसेज, जवाब देने वाला व्यक्ति Ranging Configuration
मैसेज के जवाब में भेजता है. यह मैसेज भेजना ज़रूरी नहीं है. इसे सिर्फ़ तब भेजना ज़रूरी है, जब इस्तेमाल किए जा रहे कम्यूनिकेशन चैनल पर हर अनुरोध के लिए साफ़ तौर पर जवाब देना ज़रूरी हो.
Ranging Configuration Response
मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:
ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
---|---|---|---|
0 | uint8*2 | रेंजिंग टेक्नोलॉजी का कॉन्फ़िगरेशन सेट किया गया | रेंजिंग टेक्नोलॉजी का बिटफ़ील्ड, जो सेट हो गया है. अगर टेक्नोलॉजी का अनुरोध किया गया था और उसे सेट किया गया था, तो बिटफ़ील्ड, रेंजिंग टेक्नोलॉजी बिट को 1 पर सेट करता है. अगर ऐसा नहीं किया गया था, तो उसे 0 पर सेट करता है.
|
Stop Ranging message payload
साइज़ (हेडर का साइज़ शामिल नहीं है): 2 बाइट
जानकारी: यह मैसेज, शुरू करने वाले डिवाइस से तब भेजा जाता है, जब तय की गई रेंजिंग टेक्नोलॉजी से रेंजिंग बंद करने का समय आ जाता है.
Stop Ranging
मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:
ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
---|---|---|---|
0 | uint8*2 | बिटफ़ील्ड को रोकने के लिए रेंजिंग टेक्नोलॉजी | रेंजिंग टेक्नोलॉजी का बिटफ़ील्ड, जिसे रेंजिंग बंद करनी है. बिट को 1 पर सेट करने का मतलब है कि रेंजिंग टेक्नोलॉजी को रेंजिंग बंद करनी चाहिए. वहीं, 0 पर सेट करने का मतलब है कि रेंजिंग टेक्नोलॉजी पहले से रेंजिंग नहीं कर रही थी या अगर पहले से रेंजिंग कर रही थी, तो उसे रेंजिंग जारी रखनी चाहिए. रेंजिंग की कुछ टेक्नोलॉजी (जैसे, सीएस) के लिए, यह कोई काम का नहीं है, क्योंकि रेंजिंग की प्रोसेस सिर्फ़ शुरू करने वाले डिवाइस पर शुरू और बंद की जाती है.
|
Stop Ranging Response message payload
साइज़ (हेडर का साइज़ शामिल नहीं है): 2 बाइट
जानकारी: यह मैसेज, जवाब देने वाला व्यक्ति Stop Ranging
मैसेज के जवाब में भेजता है. यह मैसेज भेजना ज़रूरी नहीं है. इसे सिर्फ़ तब भेजना ज़रूरी है, जब इस्तेमाल किए जा रहे कम्यूनिकेशन चैनल पर हर अनुरोध के लिए साफ़ तौर पर जवाब देना ज़रूरी हो.
Stop Ranging Response
मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:
ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
---|---|---|---|
0 | uint8*2 | Ranging technologies stopped successfully bitfield | रेंजिंग की उन टेक्नोलॉजी का बिटफ़ील्ड जिन्हें रेंजिंग की प्रोसेस पूरी होने के बाद बंद कर दिया गया. अगर टेक्नोलॉजी को बंद करने का अनुरोध किया गया था और वह बंद हो गई, तो बिटफ़ील्ड, रेंजिंग टेक्नोलॉजी के बिट को 1 पर सेट करता है. अगर ऐसा नहीं हुआ, तो बिटफ़ील्ड उसे 0 पर सेट करता है.
|
वर्शन
स्पेसिफ़िकेशन का वर्शन, हर मैसेज के हेडर में शामिल होता है. इस सेक्शन में बताया गया है कि जब कोई एक डिवाइस (इनीशियेटर या रिस्पॉन्स देने वाला डिवाइस) दूसरे डिवाइस से पुराने वर्शन पर हो, तो कैसे कम्यूनिकेशन किया जाता है.
पहला उदाहरण: कनेक्शन पर आधारित कम्यूनिकेशन चैनल
इस सेक्शन में, कनेक्शन पर आधारित कम्यूनिकेशन चैनल का इस्तेमाल करने वाले मामलों के बारे में बताया गया है. इसमें 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
मैसेज मिलने पर, जवाब देने वाले डिवाइस को कुछ करने की ज़रूरत नहीं होती, बशर्ते बीटी चालू हो. रिस्पॉन्स देने वाला डिवाइस, उन मैसेज का इस्तेमाल यूज़र इंटरफ़ेस (यूआई) को अपडेट करने के लिए ट्रिगर के तौर पर कर सकता है. उदाहरण के लिए, डिवाइस के एलईडी को ब्लिंक कर सकता है.