Android 16 में, रेंजिंग मॉड्यूल की सुविधा जोड़ी गई है. इस प्रोटोकॉल और पेलोड स्पेसिफ़िकेशन में, मैसेज के क्रम और आउट-ऑफ़-बैंड (ओओबी) कम्यूनिकेशन के पेलोड के बारे में बताया गया है. ओओबी कम्यूनिकेशन का इस्तेमाल, रेंजिंग कॉन्फ़िगरेशन को शेयर करने के लिए किया जाता है. साथ ही, रेंजिंग शुरू करने और बंद करने के लिए भी इसका इस्तेमाल किया जाता है. यह कम्यूनिकेशन, रेंजिंग में शामिल होने वाले डिवाइसों के बीच होता है. Android 17 में, इस स्पेसिफ़िकेशन का तीसरा वर्शन पेश किया गया है.
इस पेज पर बताया गया है कि Android डिवाइसों के अलावा अन्य डिवाइस बनाने वाली कंपनियां, इस स्पेसिफ़िकेशन को कैसे लागू कर सकती हैं. इससे उनके डिवाइस, Android डिवाइसों के साथ काम कर पाएंगे.
Google के पैकेट डिस्क्रिप्शन लैंग्वेज (पीडीएल) में इस स्पेसिफ़िकेशन को लागू करने की सुविधा GitHub पर उपलब्ध है. इस तरीके से लागू करने पर, PDL कंपाइलर, इस स्पेसिफ़िकेशन में तय किए गए मैसेज के लिए, क्रम से लगाने और क्रम से हटाने का कोड जनरेट कर सकता है. यह स्पेसिफ़िकेशन, C++, Rust, और Java जैसी कई टारगेट भाषाओं के साथ काम करता है.
वर्शन 3 में नया क्या है
OOB स्पेसिफ़िकेशन के तीसरे वर्शन में ये बदलाव किए गए हैं:
- मोशन की सूचना: यह एक ऐसा मैसेज होता है जिसका इस्तेमाल विज्ञापन देने वाले व्यक्ति या कंपनी का डिवाइस, मोशन में हुए बदलाव के बारे में सूचना देने वाले डिवाइस को सूचना देने के लिए करता है.
- रेंजिंग कॉन्फ़िगरेशन: इसमें एक नया
Motion supportफ़ील्ड शामिल है. इससे अनुरोध करने वाले व्यक्ति को यह सूचना मिलती है कि जवाब देने वाले व्यक्ति के डिवाइस की रेंज में कोई बदलाव हुआ है. - रेंजिंग की सुविधा और रेंजिंग कॉन्फ़िगरेशन में, वाई-फ़ाई पीडी टेक्नोलॉजी के लिए नई सुविधा जोड़ी गई है.
Wi-Fi NAN RTT Ranging CapabilityमेंSupported BandwidthऔरSupported number of Receive chainsफ़ील्ड को बंद कर दिया गया है.
एंडियननेस
जब तक अलग से जानकारी नहीं दी जाती, तब तक मैसेज में मौजूद सभी मल्टी-बाइट न्यूमेरिक फ़ील्ड, लिटिल-एंडियन ऑर्डर में होते हैं.
मैसेज और मैसेज का क्रम
इस सेक्शन में, मैसेज और मैसेज एक्सचेंज के क्रम के बारे में बताया गया है.
नीचे दी गई टेबल में, ओओबी एक्सचेंज में मौजूद सभी मैसेज दिखाए गए हैं:
| मैसेज | मैसेज की आईडी |
|---|---|
Ranging Capability Request |
0x0 |
Ranging Capability Response |
0x1 |
Ranging Configuration |
0x2 |
Ranging Configuration Response (वैकल्पिक) |
0x3 |
Stop Ranging |
0x6 |
Stop Ranging Response (वैकल्पिक) |
0x7 |
Motion Notification |
0x8 |
मैसेज एक्सचेंज की प्रोसेस, शुरू करने वाले डिवाइस से शुरू होती है. यह डिवाइस, जवाब देने वाले डिवाइस को Ranging
Capability Request भेजता है. जवाब देने वाला डिवाइस, Ranging Capability Response भेजकर जवाब देता है. जैसा कि पहली इमेज में दिखाया गया है:
पहली इमेज. कनेक्शन पर आधारित कम्यूनिकेशन चैनल का इस्तेमाल करके, ओओबी मैसेज एक्सचेंज करना.
Ranging
Configuration मैसेज मिलने के तुरंत बाद, जवाब देने वाले डिवाइस पर रेंजिंग शुरू हो जाती है. Stop Ranging मैसेज मिलने या उसका पता चलने के बाद, जवाब देने वाला डिवाइस रेंजिंग करना बंद कर देता है.
जवाब देने वाला डिवाइस, सिर्फ़ उन रेंजिंग टेक्नोलॉजी की क्षमताओं की जानकारी देता है जिनके लिए Ranging Capability Request मैसेज में अनुरोध किया गया है.
चैट शुरू करने वाले डिवाइस को, भेजे गए किसी भी अनुरोध मैसेज का सिर्फ़ एक जवाब मिलने की उम्मीद होती है. जवाब देने वाले डिवाइस को इस तरह की कोई भी धारणा नहीं बनानी चाहिए, ताकि वह किसी भी क्रम में किसी भी अनुरोध का जवाब दे सके. इससे यह पुष्टि होती है कि जवाब देने वाला डिवाइस, शुरू करने वाले डिवाइस से मिले लगातार कई Ranging Capability Request मैसेज या क्रम से बाहर के किसी भी मैसेज का जवाब दे सकता है.
टेक्नोलॉजी में बदलाव
OOB वर्शन की मदद से, डिवाइस किसी सेशन के दौरान अलग-अलग रेंजिंग टेक्नोलॉजी के बीच डाइनैमिक तरीके से ट्रांज़िशन कर सकते हैं. इसके लिए, अनुरोध करने वाला व्यक्ति ये काम कर सकता है:
- नई टेक्नोलॉजी को शुरू करने के लिए, एक साथ कई
Ranging Configurationमैसेज भेजें. - चालू टेक्नोलॉजी को बंद करने के लिए,
Stop Rangingको कई मैसेज भेजें.
इन मैसेज का क्रम, जवाब देने वाले व्यक्ति की ओर से इस्तेमाल की जा रही ट्रांज़िशन स्कीम के हिसाब से अलग-अलग होता है:
- ब्रेक-बिफ़ोर-मेक: शुरू करने वाला व्यक्ति, नई टेक्नोलॉजी पर सिर्फ़ तब स्विच कर सकता है, जब वह पहली टेक्नोलॉजी को
Stop Rangingमैसेज के साथ बंद कर दे और दूसरी टेक्नोलॉजी कोRanging Configurationमैसेज के साथ शुरू कर दे. - मेक-बिफ़ोर-ब्रेक: शुरू करने वाला व्यक्ति,
Ranging Configurationमैसेज का इस्तेमाल करके नई टेक्नोलॉजी शुरू कर सकता है. इसके बाद,Stop Rangingमैसेज का इस्तेमाल करके मौजूदा टेक्नोलॉजी को बंद कर सकता है.
जवाब देने वाले को, इन ट्रांज़िशन स्कीम में से किसी एक के लिए सहायता लागू करनी होगी. ऐसा, supported technology transitioning फ़ील्ड की वैल्यू के हिसाब से करना होगा. यह वैल्यू, Ranging Capability Response में मौजूद होती है.
रेंजिंग टेक्नोलॉजी आईडी
रेंजिंग टेक्नोलॉजी के आईडी यहां दी गई टेबल में दिए गए हैं:
| रेंजिंग टेक्नोलॉजी | आईडी |
|---|---|
| यूडब्ल्यूबी | 0x0 |
| CS | 0x1 |
| वाई-फ़ाई एनएएन आरटीटी | 0x2 |
| RSSI | 0x3 |
| वाई-फ़ाई पीडी | 0x4 |
| RFU | 0x5 - 0xFF |
इन आईडी का इस्तेमाल इस पेज पर मौजूद उन टेबल में किया जाता है जहां रेंजिंग टेक्नोलॉजी आईडी की ज़रूरत होती है. रेंजिंग टेक्नोलॉजी बिटफ़ील्ड वाले फ़ील्ड के लिए, टेक्नोलॉजी के आईडी के इंडेक्स से मेल खाने वाला बिट सेट किया जाता है. ऐसा तब होता है, जब उस टेक्नोलॉजी को बिटफ़ील्ड में शामिल किया जाता है.
उदाहरण के लिए, आरएसएसआई की आईडी वैल्यू 3 है. हालांकि, अगर आरएसएसआई को रेंजिंग टेक्नोलॉजी बिटफ़ील्ड में शामिल किया जाता है, तो आईडी (3) की पोज़िशन वाला बिट चालू होना चाहिए (पहला बिट पोज़िशन 0 पर होता है). इससे बिटफ़ील्ड की वैल्यू 0x8 हो जाती है. अगर यूडब्ल्यूबी और आरएसएसआई, दोनों को शामिल किया जाता है, तो बिटफ़ील्ड की वैल्यू 0x0A होती है (दोनों बिट 0 और 3 चालू हैं).
मैसेज का फ़ॉर्मैट
हर मैसेज में एक हेडर और एक पेलोड होता है.
तीसरी इमेज. मैसेज का फ़ॉर्मैट.
हेडर
साइज़: 2 बाइट
ब्यौरा: हेडर, सभी मैसेज में एक जैसा होता है. यह मैसेज का पहला हिस्सा होता है. हेडर में, मैसेज टाइप का वर्शन और आईडी होता है. वर्शन फ़ील्ड से, इस स्पेसिफ़िकेशन के उस वर्शन के बारे में पता चलता है जिसके मुताबिक मैसेज का कॉन्टेंट है. अलग-अलग वर्शन वाले डिवाइसों के बीच वर्शनिंग का इस्तेमाल कैसे किया जाता है, इस बारे में ज़्यादा जानने के लिए वर्शनिंग देखें. हेडर, अलग-अलग वर्शन के साथ काम करता है. इसका मतलब है कि इस्तेमाल का तरीका, वर्शन और मैसेज के आईडी का पता लगाने के लिए हमेशा इसे पार्स कर सकता है.
हेडर के बारे में यहां दी गई टेबल में बताया गया है:
| ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
|---|---|---|---|
| 0 | uint8 | वर्शन |
|
| 1 | uint8 | मैसेज की आईडी |
|
पेलोड
साइज़: अलग-अलग होता है (मैसेज के टाइप पर निर्भर करता है)
जानकारी: पेलोड, मैसेज का आखिरी हिस्सा होता है. यह हेडर के बाद आता है. पेलोड, मैसेज के टाइप पर निर्भर करता है. हर मैसेज टाइप के पेलोड का फ़ॉर्मैट, यहां दिए गए सेक्शन में बताया गया है.
रेंजिंग की सुविधा के लिए अनुरोध करने वाले मैसेज का पेलोड
साइज़ (हेडर का साइज़ शामिल नहीं है): 2 बाइट
ब्यौरा: मैसेज एक्सचेंज शुरू करने के लिए, इसे शुरू करने वाले डिवाइस से भेजा जाता है.
Ranging Capability Request मैसेज पेलोड के बारे में यहां दी गई टेबल में बताया गया है:
| ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
|---|---|---|---|
| 0 | uint8*2 | रेंजिंग टेक्नोलॉजी के लिए अनुरोध किया गया बिटफ़ील्ड |
|
रेंजिंग की सुविधा के बारे में जानकारी देने वाले मैसेज का पेलोड
साइज़ (इसमें हेडर का साइज़ शामिल नहीं है): अलग-अलग होता है (कॉमन पार्ट 2 बाइट के साथ-साथ, शामिल की गई हर रेंजिंग टेक्नोलॉजी के बाइट का साइज़)
ब्यौरा: यह Ranging Capability
Request मैसेज के जवाब के तौर पर, फ़ॉर्म का जवाब देने वाले व्यक्ति ने भेजा है. इस मैसेज पेलोड में, सामान्य हिस्सा और रेंजिंग टेक्नोलॉजी के हिसाब से अलग-अलग हिस्से (बीएलई सीएस, वाई-फ़ाई एनएएन आरटीटी, बीएलई आरएसएसआई) शामिल होते हैं. इन्हें यहां दी गई टेबल में दिखाया गया है. रेंजिंग टेक्नोलॉजी से जुड़ा हर हिस्सा सिर्फ़ तब जोड़ा जाना चाहिए, जब
रेस्पॉन्डर डिवाइस पर वह रेंजिंग टेक्नोलॉजी काम करती हो और Ranging Capability Request मैसेज में उसका अनुरोध किया गया हो.
Ranging Capability Response मैसेज के सामान्य पेलोड के बारे में यहां बताया गया है:
| ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
|---|---|---|---|
| 0 | uint8*2 | रेंजिंग की सुविधा के साथ काम करने वाली टेक्नोलॉजी का बिटफ़ील्ड. इससे रेंजिंग टेक्नोलॉजी की उन क्षमताओं के सेट के बारे में पता चलता है जो पेलोड के बाकी हिस्से में शामिल हैं. |
|
| 2 | बाइट अरे | टेक्नोलॉजी की क्षमता के बारे में जानकारी देने वाले बाइट. | हर टेक्नोलॉजी के हिसाब से तय किए गए स्ट्रक्चर के दोहराए गए ब्लॉक. |
| भिन्न | uint8 | इससे टेक्नोलॉजी ट्रांज़िशन के लिए सहायता मिलती है. |
|
| भिन्न | uint16 | इससे जवाब देने वाले व्यक्ति के डिवाइस के टाइप का पता चलता है. |
|
UWB Ranging Capability Response मैसेज पेलोड के बारे में यहां दी गई टेबल में बताया गया है:
| ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
|---|---|---|---|
| 0 | uint8 | रेंजिंग टेक्नोलॉजी आईडी | 0x0 - यूडब्ल्यूबी |
| 1 | uint8 | साइज़ | यूडब्ल्यूबी की क्षमताओं का साइज़, बाइट में. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड शामिल हैं. |
| 2 | uint8*2 | यूडब्ल्यूबी पता | यह डिवाइस का यूडब्ल्यूबी पता है. इसकी लंबाई 2 बाइट होती है. |
| 4 | uint8*4 | इस्तेमाल किए जा सकने वाले चैनलों का बिटफ़ील्ड | इस्तेमाल किए जा सकने वाले चैनलों का बिटफ़ील्ड. बिट को 0 पर सेट करने का मतलब है कि यह सुविधा मौजूद नहीं है. वहीं, 1 पर सेट करने का मतलब है कि यह सुविधा काम करती है. बिट 0, चैनल 0 से मेल खाती है.LSB == channel 0MSB == channel 31 |
| 8 | uint8*4 | प्रीऐंबल इंडेक्स बिटफ़ील्ड के साथ काम करता है | प्रीऐंबल के उन इंडेक्स का बिटफ़ील्ड जिन्हें इस्तेमाल किया जा सकता है. बिट को 0 पर सेट करने का मतलब है कि यह सुविधा मौजूद नहीं है. वहीं, 1 पर सेट करने का मतलब है कि यह सुविधा काम करती है. बिट 0, प्रीऐंबल इंडेक्स 1 से मेल खाता है.LSB == preamble index 1MSB == preamble index 32 |
| 12 | uint8*4 | कॉन्फ़िगरेशन आईडी का बिटफ़ील्ड, जो काम करता है | यह बिटफ़ील्ड, काम करने वाले यूडब्ल्यूबी कॉन्फ़िगरेशन आईडी के बारे में बताता है. बिट को 0 पर सेट करने का मतलब है कि यह सुविधा मौजूद नहीं है, वहीं, 1 पर सेट करने का मतलब है कि यह सुविधा काम करती है.LSB == config Id 0MSB == config Id 31 |
| 16 | uint8*2 | रेंजिंग के लिए कम से कम इंटरवल | इससे पता चलता है कि रेंजिंग के लिए सबसे कम समय कितना है. यह समय मिलीसेकंड में होता है. इस्तेमाल की जा सकने वाली वैल्यू (मिलीसेकंड में):
|
| 18 | uint8 | स्लॉट की कम से कम अवधि | इससे पता चलता है कि स्लॉट की कम से कम अवधि कितनी होनी चाहिए. यह अवधि मिलीसेकंड में होती है. उदाहरण के लिए, अगर डिवाइस 1 मि॰से॰ का समय दिखाता है, तो यह माना जाता है कि यह 2 मि॰से॰ या इससे ज़्यादा समय के स्लॉट के साथ भी काम करता है. इस्तेमाल की जा सकने वाली वैल्यू (मिलीसेकंड में):
|
| 19 | uint8 | यूडब्ल्यूबी डिवाइस की भूमिका के लिए बिटफ़ील्ड | यह UWB की उन भूमिकाओं का बिटफ़ील्ड है जिन्हें इस्तेमाल किया जा सकता है. उदाहरण के लिए, अगर दोनों में फ़ाइनल फ़ील्ड वैल्यू 0x3 है.
|
BLE CS Ranging Capability Response मैसेज के पेलोड की खास जानकारी, यहां दी गई टेबल में दी गई है:
| ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
|---|---|---|---|
| 0 | uint8 | रेंजिंग टेक्नोलॉजी आईडी | 0x1 - BLE CS |
| 1 | uint8 | साइज़ | बाइट में, बीएलई सीएस की क्षमताओं का साइज़. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड शामिल हैं. |
| 2 | uint8 | सुरक्षा के टाइप के लिए इस्तेमाल किया जा सकने वाला बिटफ़ील्ड | यह BLE CS के लिए, सुरक्षा के उन टाइप का बिटफ़ील्ड है जिनका इस्तेमाल किया जा सकता है.
|
| 3 | uint8*6 | डिवाइस का पता | BLE CS के लिए इस्तेमाल किए गए डिवाइस का पता; बिग-एंडियन क्रम में. |
Wi-Fi NAN RTT Ranging Capability Response मैसेज पेलोड की खास जानकारी यहां दी गई टेबल में दी गई है:
| ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
|---|---|---|---|
| 0 | uint8 | रेंजिंग टेक्नोलॉजी आईडी | 0x2 - वाई-फ़ाई एनएएन आरटीटी |
| 1 | uint8 | साइज़ | वाई-फ़ाई एनएएन आरटीटी की सुविधाओं का साइज़ बाइट में (इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड शामिल हैं). |
| 2 | uint8 | इस्तेमाल की जा सकने वाली सुविधाओं का बिटफ़ील्ड | इस्तेमाल की जा सकने वाली सुविधाओं का बिटफ़ील्ड.
|
| 3 | uint8 | समय-समय पर रेंजिंग की सुविधा उपलब्ध है |
|
| 4 | uint8 | बैंडविड्थ की सुविधा | DEPRECATED: This information helps derive the
achievable ranging accuracy using Wi-Fi NAN and can help apps determine
whether to use UWB, BLE CS, BLE RSSI, or Wi-Fi NAN for ranging.
|
| 5 | uint8 | मिलने वाली चेन की संख्या | अब इस्तेमाल नहीं किया जाता: इस जानकारी से, वाई-फ़ाई एनएएन का इस्तेमाल करके, रेंजिंग की सटीक जानकारी हासिल करने में मदद मिलती है. साथ ही, इससे ऐप्लिकेशन को यह तय करने में मदद मिलती है कि रेंजिंग के लिए, यूडब्ल्यूबी, बीएलई सीएस, बीएलई आरएसएसआई या वाई-फ़ाई एनएएन का इस्तेमाल करना है या नहीं.
|
बीएलई आरएसएसआई Ranging Capability Response मैसेज पेलोड के बारे में यहां दी गई टेबल में बताया गया है:
| ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
|---|---|---|---|
| 0 | uint8 | रेंजिंग टेक्नोलॉजी आईडी | 0x3 - बीएलई आरएसएसआई |
| 1 | uint8 | साइज़ | BLE RSSI की क्षमताओं के बाइट का साइज़. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड शामिल हैं |
| 2 | uint8*6 | डिवाइस का पता | BLE RSSI के लिए इस्तेमाल किए गए डिवाइस का पता; बिग-एंडियन ऑर्डर में |
वाई-फ़ाई पीडी Ranging Capability Response मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:
| ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
|---|---|---|---|
| 0 | uint8 | रेंजिंग टेक्नोलॉजी आईडी | 0x4 - वाई-फ़ाई पीडी |
| 1 | uint8 | साइज़ | बाइट में, वाई-फ़ाई पीडी की क्षमताओं का साइज़. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड शामिल हैं |
| 2 | uint8 | इस्तेमाल की जा सकने वाली सुविधाएं | बिटमैप
|
| 3 | uint8 | PASN मोड | बिटमैप
|
| 4 | uint8*6 | डिवाइस का पता | वाई-फ़ाई पीडी के लिए इस्तेमाल किए गए डिवाइस का पता; बिग-एंडियन क्रम में. |
| 10 | uint8*2 | 802.11mc के लिए रेंजिंग का कम से कम इंटरवल | 11mc के लिए, बिग-एंडियन फ़ॉर्मैट में रेंजिंग का कम से कम इंटरवल |
| 12 | uint8*2 | 802.11az के लिए रेंजिंग का कम से कम इंटरवल | 11az के लिए, बिग-एंडियन फ़ॉर्मैट में रेंजिंग का कम से कम इंटरवल |
| 14 | uint8 | ज़्यादा से ज़्यादा प्रीऐम्बल टाइप |
इससे यह माना जाता है कि सभी लोअर प्रीऐम्बल टाइप काम करते हैं. |
| 15 | uint8 | चैनल की ज़्यादा से ज़्यादा चौड़ाई |
इससे यह माना जाता है कि चैनल की कम चौड़ाई वाली सभी सेटिंग काम करती हैं. |
| 16 | uint8*2 | चैनल की फ़्रीक्वेंसी |
|
रेंजिंग कॉन्फ़िगरेशन मैसेज पेलोड
साइज़ (इसमें हेडर का साइज़ शामिल नहीं है): अलग-अलग होता है (कॉमन पार्ट 4 बाइट और इसमें शामिल हर रेंजिंग टेक्नोलॉजी के बाइट का साइज़).
जानकारी: यह मैसेज, रेंजिंग की प्रोसेस शुरू करने वाला व्यक्ति भेजता है. इसमें वे कॉन्फ़िगरेशन होते हैं जिनकी मदद से, रेंजिंग की प्रोसेस शुरू की जा सकती है. इस मैसेज को पाने के बाद, जवाब देने वाले डिवाइस को रेंजिंग की हर बताई गई टेक्नोलॉजी के साथ रेंजिंग शुरू करनी होगी. इस मैसेज पेलोड में, सामान्य हिस्सा और रेंजिंग टेक्नोलॉजी के हिसाब से अलग-अलग हिस्से (यूडब्ल्यूबी, बीएलई सीएस, वाई-फ़ाई एनएएन आरटीटी, बीएलई आरएसएसआई) शामिल होते हैं. इन्हें यहां दी गई टेबल में दिखाया गया है.
Ranging Configuration मैसेज के सामान्य पेलोड के बारे में यहां बताया गया है:
| ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
|---|---|---|---|
| 0 | uint8*2 | रेंजिंग टेक्नोलॉजी के कॉन्फ़िगरेशन सेट बिटफ़ील्ड | रेंजिंग टेक्नोलॉजी का बिटफ़ील्ड, जिसके लिए इस मैसेज में कॉन्फ़िगरेशन डेटा शामिल है और जिसके लिए कॉन्फ़िगरेशन पैरामीटर सेट किए जाने चाहिए.
|
| 2 | uint8*2 | बिटफ़ील्ड | RFU. इसे Ranging technologies configuration set bitfield फ़ील्ड की वैल्यू के बराबर सेट किया जाना चाहिए. |
| 4 | बाइट अरे | रेंजिंग टेक्नोलॉजी के कॉन्फ़िगरेशन बाइट | हर टेक्नोलॉजी के हिसाब से तय की गई स्ट्रक्चर की दोहराई गई इकाइयां |
| भिन्न | uint8 | मोशन सिकनेस होने पर मदद पाने की सुविधा | Motion Notification ने अनुरोध किया
|
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 | चुना गया रेंजिंग इंटरवल | चुने गए रेंजिंग इंटरवल की दर, मिलीसेकंड में. इस्तेमाल की जा सकने वाली वैल्यू (मिलीसेकंड में):
|
| 13 | uint8 | चुने गए स्लॉट की अवधि | चुने गए स्लॉट की अवधि, मिलीसेकंड में. इस्तेमाल की जा सकने वाली वैल्यू (मिलीसेकंड में):
|
| 14 | uint8 | सेशन के लिए कुंजी की लंबाई | सेशन कुकी की लंबाई, बाइट में |
| 15 | बाइट अरे | सेशन की कुकी | सेशन के लिए कुंजी. अगर S-STS का इस्तेमाल किया जाता है, तो पहले दो बाइट वेंडर आईडी होते हैं और अगले छह बाइट स्टैटिक STS IV होते हैं. अगर P-STS का इस्तेमाल किया जाता है, तो यह 16 बाइट या 32 बाइट की सेशन कुकी होती है. इस्तेमाल की गई सुरक्षा का टाइप, कॉन्फ़िगरेशन आईडी से तय होता है. |
| बदलता रहता है | uint8*2 | देश का कोड | ISO 3166-1 alpha-2 देश का कोड, जिसे दो ASCII वर्णों से दिखाया जाता है |
| बदलता रहता है | uint8 | चुनी गई डिवाइस की भूमिका |
|
| बदलता रहता है | uint8 | चुना गया डिवाइस मोड |
|
BLE CS Ranging Configuration मैसेज के पेलोड की खास जानकारी, यहां दी गई टेबल में दी गई है:
| ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
|---|---|---|---|
| 0 | uint8 | रेंजिंग टेक्नोलॉजी आईडी | 0x1 - BLE CS |
| 1 | uint8 | साइज़ | बाइट में, BLE CS कॉन्फ़िगरेशन का साइज़. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड शामिल हैं |
| 2 | uint8 | चुनी गई सुरक्षा का टाइप | चुनी गई सुरक्षा का टाइप. इस्तेमाल की जा सकने वाली वैल्यू:
|
| 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 | डिवाइस की भूमिका |
|
| बदलता रहता है | uint8 | समय-समय पर रेंजिंग का इस्तेमाल करना |
|
बीएलई आरएसएसआई Ranging Configuration मैसेज पेलोड के बारे में यहां दी गई टेबल में बताया गया है:
| ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
|---|---|---|---|
| 0 | uint8 | रेंजिंग टेक्नोलॉजी आईडी | 0x3 - बीएलई आरएसएसआई |
| 1 | uint8 | साइज़ | बाइट में, बीएलई आरएसएसआई कॉन्फ़िगरेशन का साइज़. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड शामिल हैं |
| 2 | uint8*6 | डिवाइस का पता | BLE RSSI के लिए इस्तेमाल किए गए डिवाइस का पता; बिग-एंडियन ऑर्डर में |
वाई-फ़ाई पीडी Ranging Configuration मैसेज के पेलोड के बारे में यहां दी गई टेबल में बताया गया है:
| ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
|---|---|---|---|
| 0 | uint8 | रेंजिंग टेक्नोलॉजी आईडी | 0x4 - वाई-फ़ाई पीडी |
| 1 | uint8 | साइज़ | बाइट में, वाई-फ़ाई पीडी कॉन्फ़िगरेशन का साइज़. इसमें टेक्नोलॉजी आईडी और साइज़ फ़ील्ड शामिल हैं |
| 2 | uint8 | सुविधा |
|
| 3 | uint8*6 | MAC पता | शुरू करने वाले का मैक पता |
| 9 | uint8*2 | रेंजिंग इंटरवल | रेंजिंग इंटरवल (मिलीसेकंड में) |
| 11 | uint8 | चुनी गई प्रस्तावना |
|
| 12 | uint8 | चुने गए चैनल की चौड़ाई |
|
| 13 | uint8 | चुना गया चैनल |
|
| 14 | uint8 | PASN मोड चुना गया |
|
| 15 | बाइट अरे | डिवाइस की पहचान करने वाली कुंजी | 16 बाइट का फ़िक्स्ड ऐरे ध्यान दें: यह फ़ील्ड सिर्फ़ पुष्टि किए गए PASN मोड के लिए मान्य है. इसे पुष्टि नहीं किए गए PASN मोड के लिए सेट नहीं किया जाना चाहिए |
| 31 | uint8 | पासवर्ड की लंबाई | पासवर्ड की लंबाई. ध्यान दें: यह फ़ील्ड सिर्फ़ पुष्टि किए गए PASN मोड के लिए मान्य है. इसे पुष्टि नहीं किए गए PASN मोड के लिए सेट नहीं किया जाना चाहिए. |
| बदलता रहता है | बाइट अरे | पासवर्ड | बाइट ऐरे के तौर पर पासवर्ड.
ध्यान दें: यह फ़ील्ड सिर्फ़ पुष्टि किए गए PASN मोड के लिए मान्य है. इसे पुष्टि नहीं किए गए PASN मोड के लिए सेट नहीं किया जाना चाहिए. |
रेंजिंग कॉन्फ़िगरेशन के जवाब वाले मैसेज का पेलोड
साइज़ (हेडर का साइज़ शामिल नहीं है): 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 मैसेज पेलोड
साइज़ (हेडर का साइज़ शामिल नहीं है): 2 बाइट
ब्यौरा: यह मैसेज, जवाब देने वाले व्यक्ति ने Stop Ranging मैसेज के जवाब के तौर पर भेजा है. यह मैसेज देना ज़रूरी नहीं है. इसकी ज़रूरत सिर्फ़ तब पड़ती है, जब इस्तेमाल किए गए कम्यूनिकेशन चैनल के लिए, हर अनुरोध का जवाब देना ज़रूरी हो.
Stop Ranging Response मैसेज पेलोड के बारे में यहां दी गई टेबल में बताया गया है:
| ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
|---|---|---|---|
| 0 | uint8*2 | रेंजिंग टेक्नोलॉजी को रोकने से जुड़ा बिटफ़ील्ड | रेंजिंग टेक्नोलॉजी का बिटफ़ील्ड, जिसने रेंजिंग को सफलतापूर्वक रोक दिया है. अगर टेक्नोलॉजी को बंद करने का अनुरोध किया गया था और वह बंद हो गई है, तो बिटफ़ील्ड, रेंजिंग टेक्नोलॉजी बिट को 1 पर सेट करता है. ऐसा न होने पर, बिटफ़ील्ड, रेंजिंग टेक्नोलॉजी बिट को 0 पर सेट करता है.
|
हलचल होने पर सूचना पाने की सुविधा के मैसेज का पेलोड
साइज़ (इसमें हेडर का साइज़ शामिल नहीं है): 1 बाइट
ब्यौरा: जवाब देने वाला डिवाइस, इस मैसेज को भेजता है. इससे, अनुरोध करने वाले डिवाइस को यह सूचना मिलती है कि जवाब देने वाले डिवाइस की गति की स्थिति में कोई बदलाव हुआ है.
| ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
|---|---|---|---|
| 0 | uint8 | मोशन |
|
वर्शन
स्पेसिफ़िकेशन का वर्शन, हर मैसेज के हेडर में शामिल होता है.
इस सेक्शन में यह बताया गया है कि जब दोनों डिवाइसों में से कोई एक डिवाइस, दूसरे डिवाइस के मुकाबले पुराने वर्शन पर काम कर रहा हो, तो कम्यूनिकेशन कैसे किया जाता है. Ranging Capability Request, बातचीत शुरू करने वाले डिवाइस से भेजा गया पहला मैसेज है.
इनीशिएटर, नए वर्शन के साथ काम करता है और रिस्पॉन्डर, स्पेसिफ़िकेशन के पुराने वर्शन के साथ काम करता है
शुरू करने वाला डिवाइस, नए वर्शन के साथ Ranging Capability Request मैसेज भेजता है. जवाब देने वाले डिवाइस पर सिर्फ़ पुराना वर्शन काम करता है. इसलिए, वह उसी वर्शन में जवाब देता है. इसके बाद, मैसेज के बाकी लेन-देन के लिए, जवाब देने वाले डिवाइस के पुराने वर्शन का इस्तेमाल किया जाता है. इसका मतलब है कि Ranging Capability Request मैसेज, पुराने सिस्टम के साथ काम करने वाला होना चाहिए.
इनीशिएटर, पुराने वर्शन के साथ काम करता है और रिस्पॉन्डर, स्पेसिफ़िकेशन के नए वर्शन के साथ काम करता है
जवाब देने वाले डिवाइस को पता चलता है कि शुरू करने वाला डिवाइस, नए वर्शन का इस्तेमाल नहीं कर सकता. इसलिए, वह सिर्फ़ पुराने वर्शन का इस्तेमाल करके मैसेज भेजता है. यह वही वर्शन होता है जिसके लिए शुरू करने वाले डिवाइस ने शुरुआत में अनुरोध किया था.
यह पक्का करने के लिए कि मैसेज पुराने सिस्टम के साथ काम करते हैं, इस स्पेसिफ़िकेशन के अगले वर्शन में जोड़े गए किसी भी नए फ़ील्ड को पेलोड के आखिर में जोड़ना होगा. साथ ही, मौजूदा फ़ील्ड में से किसी को भी बदला नहीं जा सकता. कॉन्फ़िगरेशन पार्स करते समय, अगर बताया गया साइज़ उम्मीद से ज़्यादा है, तो अतिरिक्त फ़ील्ड को ऐसे डिवाइसों को अनदेखा करना होगा जो सिर्फ़ स्पेसिफ़िकेशन के पुराने वर्शन को समझ सकते हैं.
फ़्रैगमेंटेशन
यह स्पेसिफ़िकेशन, कम्यूनिकेशन चैनल के हिसाब से नहीं बनाया गया है. इसलिए, यह नहीं बताता कि मैसेज पेलोड को कैसे फ़्रैगमेंट किया जाए. ऐसा तब होता है, जब कोई मैसेज इतना बड़ा हो कि इस्तेमाल किए गए कम्यूनिकेशन चैनल के ट्रांसफ़र पैकेट में फ़िट न हो पाए. रेंजिंग मॉड्यूल को हर मैसेज, पूरे फ़ॉर्म में मिलता है. ओओबी कम्यूनिकेशन चैनल को लागू करने वाले व्यक्ति की यह ज़िम्मेदारी है कि वह फ़्रैगमेंटेशन करे.
Ranging-technology-specifics
इस सेक्शन में, रेंजिंग टेक्नोलॉजी के बारे में खास जानकारी दी गई है.
अल्ट्रा-वाइडबैंड (यूडब्ल्यूबी) की खास बातें
इस सेक्शन में, अल्ट्रा-वाइडबैंड से जुड़ी खास जानकारी दी गई है.
कॉन्फ़िगरेशन आईडी
UWB के लिए, OOB कॉन्फ़िगरेशन के बदले में शेयर किए गए डेटा में, कॉन्फ़िगर किए जा सकने वाले सभी पैरामीटर शामिल नहीं हैं. UWB को UWB रेंजिंग सेशन शुरू करने के लिए, इन पैरामीटर की ज़रूरत होती है. ऐसा इसलिए है, क्योंकि चुने गए कॉन्फ़िगरेशन आईडी के हिसाब से कुछ पैरामीटर अपने-आप चुने जाते हैं.
हर कॉन्फ़िगरेशन आईडी, पहले से तय किए गए यूडब्ल्यूबी कॉन्फ़िगरेशन पैरामीटर का एक सेट होता है. इसके बारे में UwbRangingParams में बताया गया है. जवाब देने वाला डिवाइस, उन सभी कॉन्फ़िगरेशन आईडी की सूची भेजता है जिन्हें वह इस्तेमाल कर सकता है. यह सूची, क्षमता की जानकारी देने वाले मैसेज का हिस्सा होती है. इसके बाद, शुरू करने वाला डिवाइस, इस्तेमाल किए जा सकने वाले कॉन्फ़िगरेशन आईडी में से किसी एक को चुनता है. इससे ओओबी के दौरान, कॉन्फ़िगरेशन पैरामीटर का छोटा सेट एक्सचेंज किया जा सकता है. यह यूडब्ल्यूबी के साथ रेंजिंग के लिए इस्तेमाल किए जा सकने वाले पैरामीटर के संभावित कॉम्बिनेशन की संख्या को भी सीमित करता है. इससे, पैरामीटर के सिर्फ़ उन कॉम्बिनेशन की जांच की जा सकती है जिनकी अनुमति है.
हर यूडब्ल्यूबी सेशन के बाद, सुविधाओं के लिए अनुरोध करना
मौजूदा यूडब्ल्यूबी सेशन को रोकने और नया यूडब्ल्यूबी सेशन शुरू करने से पहले, सेशन शुरू करने वाले डिवाइस को सेशन में शामिल होने वाले डिवाइस की क्षमताओं का अनुरोध करना होगा. साथ ही, कॉन्फ़िगरेशन पैरामीटर को फिर से सेट करना होगा. ऐसा इसलिए, क्योंकि मौजूदा रेंजिंग सेशन के खत्म होते ही, यूडब्ल्यूबी पते में बदलाव हो सकता है.
BLE चैनल साउंडिंग (सीएस) के बारे में खास जानकारी
इस सेक्शन में, चैनल साउंडिंग के बारे में खास जानकारी दी गई है.
डिवाइसों के बीच लिंक को एन्क्रिप्ट (सुरक्षित) करना ज़रूरी है
चैनल साउंडिंग का इस्तेमाल करके रेंजिंग की सुविधा काम करने के लिए, यह ज़रूरी है कि अनुरोध करने वाले और जवाब देने वाले डिवाइस के बीच पहले से कोई बॉन्ड बना हो. इस स्पेसिफ़िकेशन में, डिवाइसों के बीच बॉन्ड बनाने का कोई तरीका नहीं बताया गया है. Ranging API का इस्तेमाल करते समय, आपको डिवाइसों के बीच यह बॉन्ड बनाना होगा.
सीएस के लिए, जवाब देने वाले पक्ष को कार्रवाई करनी होगी
UWB में, दोनों डिवाइसों को UWB स्टार्ट रेंजिंग और स्टॉप रेंजिंग एपीआई को साफ़ तौर पर कॉल करना ज़रूरी है. इसके उलट, सीएस के लिए, सिर्फ़ शुरू करने वाले डिवाइस को बीटी स्टैक को कॉल करके सीएस रेंजिंग शुरू करनी होती है. जवाब देने वाले डिवाइस पर, बाकी की शुरुआत BT के ज़रिए होती है. इसका मतलब है कि CS के लिए Ranging Configuration या Stop Ranging मैसेज मिलने पर, अगर BT चालू है, तो जवाब देने वाले डिवाइस को कुछ भी करने की ज़रूरत नहीं है. जवाब देने वाला डिवाइस, उन मैसेज का इस्तेमाल यूज़र इंटरफ़ेस (यूआई) को अपडेट करने के लिए ट्रिगर के तौर पर कर सकता है. उदाहरण के लिए, डिवाइस के एलईडी को ब्लिंक करने के लिए.