Android 16-এ রেঞ্জিং মডিউল চালু করা হয়েছে। এই স্পেসিফিকেশন আউট-অফ-ব্যান্ড (OOB) যোগাযোগের মেসেজ সিকোয়েন্স ও পেলোডকে সংজ্ঞায়িত করে। এই কমিউনিকেশন রেঞ্জিং কনফিগারেশন এক্সচেঞ্জ করে এবং রেঞ্জিংয়ে এনগেজ করা ইনিশিয়েটর ও রেসপন্ডার ডিভাইসের মধ্যে রেঞ্জিং শুরু ও বন্ধ করে।
এই পৃষ্ঠার মূল লক্ষ্য হল, Android নয় এমন ডিভাইস প্রদানকারীদের এই স্পেসিফিকেশন ইমপ্লিমেন্ট করতে দেওয়া, যাতে তাদের ডিভাইসগুলি Android ডিভাইসের সাথে রেঞ্জিংয়ের জন্য উপযুক্ত হতে পারে।
Google-এর প্যাকেট ডেসক্রিপশন ল্যাঙ্গুয়েজ (PDL)-এ এই স্পেসিফিকেশনের প্রয়োগ GitHub-এ উপলভ্য। এই ইমপ্লিমেন্টেশন থেকে, PDL কম্পাইলার এই স্পেসিফিকেশনে সংজ্ঞায়িত মেসেজের জন্য সিরিয়ালাইজেশন এবং ডিসিরিয়ালাইজেশন কোড তৈরি করতে পারে। এটি C++, Rust এবং Java সহ বিভিন্ন টার্গেট ভাষায় কাজ করে।
মেসেজ ও মেসেজের ক্রম
এই বিভাগে মেসেজ ও মেসেজ আদানপ্রদানের ক্রম সম্পর্কে বর্ণনা করা হয়েছে।
নিচের সারণীতে 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 পাঠিয়ে উত্তর দেয়, যেমন
ছবি ১-এ দেখানো হয়েছে:
ছবি ১. কানেকশন-ভিত্তিক কমিউনিকেশন চ্যানেল ব্যবহার করে OOB মেসেজ আদান-প্রদান।
বিজ্ঞাপন-ভিত্তিক যোগাযোগ চ্যানেলের জন্য, উত্তরদাতা ডিভাইস Ranging Capability বিজ্ঞাপন দিয়ে
শুরু করে। এই ক্ষেত্রে, যে ডিভাইস থেকে শুরু করা হয়েছে সেটি Ranging Capability Request
পাঠায় না। পরিবর্তে, বিজ্ঞাপন শনাক্ত করার পরে, ইনিশিয়েটিং (প্রাথমিক স্ক্যানার) ডিভাইস
Ranging Configuration-কে প্রথম মেসেজ হিসেবে বিজ্ঞাপন দিয়ে
উত্তর দেয়, যেমনটি ২ নম্বর ছবিতে দেখানো হয়েছে:
ছবি ২. বিজ্ঞাপন-ভিত্তিক যোগাযোগের মাধ্যমে OOB মেসেজ আদানপ্রদান।
দুটি ক্ষেত্রেই মেসেজ আদানপ্রদানের বাকি প্রসেস একই থাকে। Ranging Configuration মেসেজ পাওয়ার সাথে সাথেই উত্তরদাতার
ডিভাইস রেঞ্জিং শুরু করে দেয়। Stop Ranging
মেসেজ পেলে বা শনাক্ত করলে এটি রেঞ্জিং বন্ধ করে দেয়।
কানেকশন-ভিত্তিক ফ্লোতে, রেসপন্ডার ডিভাইস শুধুমাত্র Ranging Capability Request
মেসেজে অনুরোধ করা রেঞ্জিং টেকনোলজির
জন্যই ক্ষমতা পপুলেট করে। বিজ্ঞাপন ফ্লোতে, রেসপন্ডার ডিভাইসকে অবশ্যই তার সব
ক্ষমতার তালিকা দিতে হবে, কারণ এর আগে কোনও ক্ষমতার অনুরোধ মেসেজ নেই।
যে ডিভাইস থেকে অনুরোধ করা হয়েছে সেটি ধরে নেয় যে তার পাঠানো যেকোনও অনুরোধ
মেসেজের জন্য একটিই উত্তর পাবে। উত্তরদাতা ডিভাইসকে এই ধরনের কোনও অনুমান করা চলবে না, যাতে
সে যেকোনও অনুরোধের উত্তর যেকোনও ক্রমে দিতে পারে। এটি যাচাই করতে সাহায্য করে যে
উত্তরদাতা ডিভাইস একাধিক পরপর Ranging Capability
Request মেসেজ বা শুরু করা ডিভাইস থেকে আসা অন্য কোনও ভুল ক্রমে পাঠানো মেসেজের উত্তর দিতে পারে।
রেঞ্জিং টেকনোলজি আইডি
এই বিভাগে রেঞ্জিং প্রযুক্তির আইডি তালিকাভুক্ত করা হয়েছে: আল্ট্রা ওয়াইডব্যান্ড (UWB), ব্লুটুথ লো এনার্জি (BLE) চ্যানেল সাউন্ডিং (CS), ওয়াই-ফাই নেইবার অ্যাওয়ারনেস নেটওয়ার্কিং (NAN) রাউন্ড-ট্রিপ টাইম (RTT) এবং রিসিভ করা সিগন্যাল স্ট্রেন্থ ইন্ডিকেটর (RSSI)।
নিচের টেবিলে আইডি ব্যবহার করা হয় যেখানে রেঞ্জিং টেকনোলজি আইডি প্রয়োজনীয়। রেঞ্জিং টেকনোলজি বিটফিল্ড সহ ফিল্ডের জন্য, টেকনোলজির আইডির ইন্ডেক্সের সাথে সম্পর্কিত একটি বিট সেট করা হয় যখন সেই টেকনোলজি বিটফিল্ডে অন্তর্ভুক্ত করা হয়।
যেমন, RSSI-এর আইডি ভ্যালু হল ৩। রেঞ্জিং টেকনোলজি বিটফিল্ডে RSSI অন্তর্ভুক্ত থাকলে, ID (৩)-এর পজিশন সহ বিটটি অবশ্যই চালু করতে হবে (প্রথম বিটটি পজিশন ০-এ থাকে), এর ফলে বিটফিল্ডের ভ্যালু 0x8 হয়ে যায়। UWB ও RSSI, দুটিই অন্তর্ভুক্ত থাকলে, বিটফিল্ডের ভ্যালু 0x0A হবে (বিট 0 ও ৩, দুটিই চালু আছে)।
রেঞ্জিং টেকনোলজির আইডি নিম্নলিখিত টেবিলে তালিকাভুক্ত করা আছে:
| রেঞ্জিং টেকনোলজি | আইডি |
|---|---|
| UWB | 0x0 |
| CS | 0x1 |
| ওয়াই-ফাই NAN RTT | 0x2 |
| RSSI | 0x3 |
| RFU | 0x4 - 0xFF |
মেসেজ ফর্ম্যাট
প্রতিটি মেসেজে একটি হেডার ও একটি পেলোড থাকে।
ছবি ৩. মেসেজ ফর্ম্যাট।
হেডার
সাইজ: ২ বাইট
বিবরণ: সব মেসেজের ক্ষেত্রে সাধারণ, হেডার হল প্রথম অংশ যা
মেসেজে যায়। হেডারে মেসেজ
টাইপের ভার্সন ও আইডি থাকে। মেসেজের কন্টেন্ট এই স্পেসিফিকেশনের যে ভার্সন মেনে চলে, ভার্সন ফিল্ডে সেটি উল্লেখ করা হয়।
এই স্পেসিফিকেশনের বর্তমান ভার্সন হল
1। বিভিন্ন ভার্সনের ডিভাইসে ভার্সনিং কীভাবে ব্যবহার করা হয় সেই সম্পর্কে আরও জানতে, ভার্সনিং দেখুন। হেডার
বিভিন্ন ভার্সন জুড়ে ব্যাকওয়ার্ড-কম্প্যাটিবল থাকে, যার অর্থ হল, মেসেজের ভার্সন ও আইডি নির্ধারণ করতে
ইউজ কেস সবসময় এটি পার্স করতে পারে।
নিম্নলিখিত সারণীতে হেডার সংক্ষিপ্তভাবে তুলে ধরা হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8 | ভার্সন | 0x1 - বর্তমান ভার্সন |
| 1 | unit8 | মেসেজ আইডি |
|
পেলোড
সাইজ: আলাদা আলাদা হয় (মেসেজের ধরনের উপর নির্ভর করে)
বিবরণ: পে-লোড হল মেসেজের শেষ অংশ, হেডার পরে। মেসেজের ধরনের উপর পে-লোড নির্ভর করে। প্রতিটি আলাদা মেসেজ ধরনের পেলোডের ফর্ম্যাট নিম্নলিখিত বিভাগে বর্ণনা করা হয়েছে।
রেঞ্জিংয়ের ক্ষমতা সংক্রান্ত অনুরোধের মেসেজ পেলোড
সাইজ (হেডারের সাইজ অন্তর্ভুক্ত নয়): ২ বাইট
বিবরণ: মেসেজ আদানপ্রদান শুরু করার জন্য ইনিশিয়েটর ডিভাইস থেকে পাঠানো হয়।
যোগাযোগের চ্যানেলটি বিজ্ঞাপনের উপর ভিত্তি করে তৈরি হলে এই মেসেজটি ঐচ্ছিক,
যে ক্ষেত্রে উত্তরদাতা ডিভাইসকে প্রথম ধাপ হিসেবে একটি Ranging
Capability মেসেজ বিজ্ঞাপন দিতে হবে। ইনিশিয়েটর ডিভাইস (প্রাথমিক স্ক্যানার)
বিজ্ঞাপনটি পড়ে এবং সরাসরি Ranging Capability
মেসেজ দিয়ে উত্তর দেয়, ফলে এই মেসেজের প্রয়োজন হয় না।
Ranging Capability Request মেসেজ পেলোডের সারসংক্ষেপ নিম্নলিখিত
টেবিলে দেওয়া হল:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8*২ | রেঞ্জিং টেকনোলজির বিটফিল্ড সংক্রান্ত অনুরোধ |
|
রেঞ্জিংয়ের ক্ষমতা সংক্রান্ত উত্তর মেসেজ পেলোড
সাইজ (হেডার সাইজ অন্তর্ভুক্ত নয়): পরিবর্তিত হয় (সাধারণ অংশ ২ বাইট এবং অন্তর্ভুক্ত প্রতিটি রেঞ্জিং টেকনোলজি বাইটের সাইজ )
বিবরণ: Ranging Capability
Request মেসেজের উত্তরে উত্তরদাতা পাঠিয়েছেন। এই মেসেজ পেলোডে সাধারণ অংশ এবং রেঞ্জিং
টেকনোলজি-নির্দিষ্ট অংশ (BLE CS, Wi-Fi NAN RTT, BLE RSSI) থাকে, যা
নিম্নলিখিত সারণীতে দেখানো হয়েছে। রেঞ্জিং প্রযুক্তি-নির্দিষ্ট প্রতিটি পার্ট তখনই যোগ করতে হবে, যদি
রেসপন্ডার ডিভাইসে সেই রেঞ্জিং প্রযুক্তি কাজ করে এবং Ranging Capability Request মেসেজে
সেটির অনুরোধ করা হয়। বিজ্ঞাপন
যোগাযোগ চ্যানেলের ক্ষেত্রে, কাজ করে এমন সব রেঞ্জিং প্রযুক্তি অন্তর্ভুক্ত করতে হবে।
সাধারণ Ranging Capability Response মেসেজ পেলোডকে নিম্নলিখিত
টেবিলে সংক্ষিপ্তসার করা হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8*2 | রেঞ্জিং টেকনোলজি বিটফিল্ড কাজ করে। রেঞ্জিং প্রযুক্তির ক্ষমতার সেট নির্দেশ করে যা পেলোডের বাকি অংশে অনুসরণ করা হয়। |
|
| 2 | বাইট অ্যারে | রেঞ্জিং টেকনোলজি ক্যাপাবিলিটি বাইট। | টেকনোলজি অনুযায়ী সংজ্ঞায়িত স্ট্রাকচারের রিপিট করা ব্লক। |
UWB Ranging Capability Response মেসেজ পেলোডকে নিম্নলিখিত
টেবিলে সংক্ষিপ্তসার করা হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8 | রেঞ্জিং টেকনোলজি আইডি | 0x0 - UWB |
| 1 | uint8 | আকার | UWB ক্যাপাবিলিটি বাইটের সাইজ (এর মধ্যে টেকনোলজি আইডি ও সাইজ ফিল্ড অন্তর্ভুক্ত) বাইটে। |
| 2 | uint৮*২ | UWB অ্যাড্রেস | ২ বাইট ডিভাইস UWB অ্যাড্রেস। |
| 4 | uint8*4 | মানানসই চ্যানেলের বিটফিল্ড | সাপোর্ট করা চ্যানেলের বিটফিল্ড। বিট ০ হিসেবে সেট করা থাকলে বুঝতে হবে যে এটি কাজ করে না এবং ১ হিসেবে সেট করা থাকলে বুঝতে হবে যে এটি কাজ করে। বিট ০ চ্যানেল ০-এর সাথে সম্পর্কিত।LSB == channel 0MSB == channel 31 |
| 8 | uint8*4 | কাজ করে এমন প্রারম্ভিক নির্দেশাবলী ইন্ডেক্স বিটফিল্ড | কাজ করে এমন প্রারম্ভিক নির্দেশাবলীর ইন্ডেক্সের বিটফিল্ড। বিট ০ হিসেবে সেট করা থাকলে বুঝতে হবে যে এটি কাজ করে না এবং ১ হিসেবে সেট করা থাকলে বুঝতে হবে যে এটি কাজ করে। বিট ০, প্রিম্বেল ইন্ডেক্স ১-এর সাথে সম্পর্কিত।LSB == preamble index 1MSB == preamble index 32 |
| 12 | uint8*4 | কাজ করে এমন কনফিগারেশন আইডি বিটফিল্ড | কাজ করে এমন UWB কনফিগারেশন আইডির বিটফিল্ড। বিট ০ হিসেবে সেট করা থাকলে বুঝতে হবে যে এটি কাজ করে না, ১ হিসেবে সেট করা থাকলে বুঝতে হবে যে এটি কাজ করে।LSB == config Id 0> MSB == config Id 31 |
| 16 | uint8*২ | কাজ করে এমন ন্যূনতম রেঞ্জিং ইন্টারভ্যাল | মিলিসেকেন্ডে সবচেয়ে দ্রুত কাজ করে এমন রেঞ্জিং ইন্টারভ্যাল নির্দেশ করে। অনুমোদিত মান (মিলিসেকেন্ডে):
|
| 18 | uint8 | সাপোর্ট করে এমন ন্যূনতম স্লটের সময়সীমা | মিলিসেকেন্ডে সবচেয়ে ছোট স্লটের সময়সীমা নির্দেশ করে। যেমন, ডিভাইস ১ মিলি সেকেন্ড রিটার্ন করলে, ধরে নেওয়া হয় যে এটি ২ মিলি সেকেন্ড বা তার বেশি স্লটের সময়সীমাও সাপোর্ট করে। অনুমোদিত মান (মিলি সেকেন্ডে):
|
| 19 | কাজ করে এমন UWB ডিভাইসের ভূমিকা সংক্রান্ত বিটফিল্ড | কাজ করে এমন UWB রোলের বিটফিল্ড। যেমন, দু'টিই কাজ করলে, ফাইনাল ফিল্ড ভ্যালু হল 0x3.
|
BLE CS Ranging Capability Response মেসেজ পেলোডকে নিম্নলিখিত
টেবিলে সংক্ষিপ্ত আকারে দেখানো হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8 | রেঞ্জিং টেকনোলজি আইডি | 0x1 - BLE CS |
| 1 | uint8 | আকার | বাইট হিসেবে BLE CS ক্যাপাবিলিটি বাইটের সাইজ (টেকনোলজি আইডি ও সাইজ ফিল্ড সহ)। |
| 2 | uint8 | কাজ করে এমন নিরাপত্তা ধরনের বিটফিল্ড | BLE CS-এর জন্য কাজ করে এমন নিরাপত্তা সংক্রান্ত ধরনের বিটফিল্ড।
|
| 3 | uint8*6 | ডিভাইসের ঠিকানা | BLE CS-এর জন্য ব্যবহৃত ডিভাইসের অ্যাড্রেস; বিগ-এন্ডিয়ান অর্ডারে। |
Wi-Fi NAN RTT Ranging Capability Response মেসেজ পেলোড নিম্নলিখিত সারণীতে
সংক্ষিপ্ত করা হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8 | রেঞ্জিং টেকনোলজি আইডি | 0x2 - ওয়াই-ফাই NAN RTT |
| 1 | uint8 | আকার | BLE RSSI ক্যাপাবিলিটি বাইটের সাইজ (টেকনোলজি আইডি ও সাইজ ফিল্ড সহ) বাইটে। |
| 2 | uint8 | কাজ করে এমন ফিচারের বিটফিল্ড | কাজ করে এমন ফিচারের বিটফিল্ড।
|
| 3 | uint8 | পিরিয়ডিক রেঞ্জিং কাজ করে |
|
| 4 | uint8 | কাজ করে এমন ব্যান্ডউইথ | এই তথ্য ওয়াই-ফাই NAN ব্যবহার করে রেঞ্জিংয়ের ক্ষেত্রে কতটা নির্ভুলতা অর্জন করা সম্ভব তা নির্ধারণ করতে সাহায্য করে এবং রেঞ্জিংয়ের জন্য UWB, BLE CS, BLE RSSI নাকি ওয়াই-ফাই NAN ব্যবহার করা হবে তা নির্ধারণ করতে অ্যাপকে সাহায্য করতে পারে।
|
| 5 | uint8 | রিসিভ চেনের অনুমোদিত সংখ্যা | এই তথ্য ওয়াই-ফাই NAN ব্যবহার করে অর্জনযোগ্য রেঞ্জিংয়ের নির্ভুলতা পেতে সাহায্য করে এবং রেঞ্জিংয়ের জন্য UWB, BLE CS, BLE RSSI বা ওয়াই-ফাই NAN ব্যবহার করা উচিত কিনা তা নির্ধারণ করতে অ্যাপকে সাহায্য করতে পারে।
|
BLE RSSI Ranging Capability Response মেসেজ পেলোড নিম্নলিখিত টেবিলে
সংক্ষিপ্ত করা হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8 | রেঞ্জিং টেকনোলজি আইডি | 0x3 - BLE RSSI |
| 1 | uint8 | আকার | BLE RSSI ক্ষমতার বাইটের সাইজ (টেকনোলজি আইডি এবং সাইজ ফিল্ড সহ) বাইটে |
| 2 | uint8*6 | ডিভাইসের ঠিকানা | BLE RSSI-এর জন্য ব্যবহৃত ডিভাইসের অ্যাড্রেস; বিগ-এন্ডিয়ান অর্ডারে |
রেঞ্জিং কনফিগারেশন মেসেজ পেলোড
সাইজ (হেডার সাইজ অন্তর্ভুক্ত নয়): পরিবর্তিত হয় (সাধারণ অংশ ৪ বাইট এবং অন্তর্ভুক্ত প্রতিটি রেঞ্জিং টেকনোলজি বাইটের সাইজ)।
বিবরণ: এই মেসেজটি ইনিশিয়েটর পাঠায় এবং এতে সেইসব কনফিগারেশন থাকে যেগুলি দিয়ে রেঞ্জিং টেকনোলজি রেঞ্জিং শুরু করতে পারে। এই মেসেজ পাওয়ার পরে, রেসপন্ডার ডিভাইসকে অবশ্যই প্রতিটি নির্দেশিত রেঞ্জিং টেকনোলজির সাথে রেঞ্জিং শুরু করার চেষ্টা করতে হবে। এই মেসেজ পেলোডের মধ্যে সাধারণ অংশ এবং রেঞ্জিং টেকনোলজি-নির্দিষ্ট অংশ (UWB, BLE CS, Wi-Fi NAN RTT, BLE RSSI) থাকে, যা নিম্নলিখিত সারণীতে দেখানো হয়েছে।
সাধারণ Ranging Configuration মেসেজ পেলোডকে নিম্নলিখিত
টেবিলে সংক্ষিপ্তসার করা হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8*২ | রেঞ্জিং টেকনোলজি কনফিগারেশন সেট বিটফিল্ড | এই মেসেজে যে রেঞ্জিং টেকনোলজির কনফিগারেশন ডেটা আছে এবং যে কনফিগারেশন প্যারামিটার সেট করতে হবে তার বিটফিল্ড।
|
| 2 | uint৮*২ | Bitfield | RFU. রেঞ্জিং টেকনোলজি কনফিগারেশন সেট বিটফিল্ড ফিল্ডের মতো একই ভ্যালুতে সেট করতে হবে। |
| 4 | বাইট অ্যারে | রেঞ্জিং টেকনোলজি কনফিগারেশন বাইট | প্রতিটি প্রযুক্তির জন্য সংজ্ঞায়িত স্ট্রাকচারের পুনরাবৃত্তিমূলক ব্লক |
UWB Ranging Configuration মেসেজ পেলোড নিম্নলিখিত সারণীতে
সংক্ষিপ্ত করা হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8 | রেঞ্জিং টেকনোলজি আইডি | 0x0 - UWB |
| 1 | uint8 | আকার | বাইট হিসেবে UWB কনফিগারেশনের সাইজ (টেকনোলজি আইডি ও সাইজ ফিল্ড সহ) |
| 2 | uint৮*২ | UWB অ্যাড্রেস | ২ বাইট ডিভাইস UWB অ্যাড্রেস |
| 4 | uint8*4 | সেশন আইডি | জেনারেট করা সেশন আইডি। সেশন আইডি হল ফোন ও পেরিফেরালের মধ্যে রেঞ্জিং সেশনের জন্য একটি অনন্য শনাক্তকারী। |
| 8 | uint8 | বেছে নেওয়া কনফিগারেশন আইডি | ইন্টিজারে config ID নম্বর বেছে নেওয়া হয়েছে। কনফিগ আইডি টাইমিং প্যারামিটার এবং UWB রেঞ্জিং সেশনের জন্য অবশ্যই ব্যবহার করতে হবে এমন নিরাপত্তার ধরন নির্দিষ্ট করে। |
| 9 | uint8 | বেছে নেওয়া চ্যানেল | UWB রেঞ্জিং সেশনের জন্য বেছে নেওয়া চ্যানেল |
| 10 | uint8 | বেছে নেওয়া প্রস্তাবনার ইন্ডেক্স | UWB রেঞ্জিং সেশনের জন্য বেছে নেওয়া প্রিঅ্যাম্বেল ইন্ডেক্স |
| 11 | uint৮*২ | বেছে নেওয়া রেঞ্জিং ইন্টারভ্যাল | মিলিসেকেন্ডে বেছে নেওয়া রেঞ্জিং ইন্টারভ্যাল রেট। অনুমোদিত মান (মিলি সেকেন্ডে):
|
| 13 | uint8 | বেছে নেওয়া স্লটের সময়সীমা | বেছে নেওয়া স্লটের সময়সীমা মিলিসেকেন্ডে। অনুমোদিত মান (মিলিসেকেন্ডে):
|
| 14 | uint8 | সেশন কী-এর দৈর্ঘ্য | বাইটে সেশন কী-এর দৈর্ঘ্য |
| 15 | বাইট অ্যারে | সেশন কী | সেশন কী। S-STS ব্যবহার করা হলে, প্রথম দুটি বাইট হল ভেন্ডর আইডি এবং পরের ছয়টি বাইট হল স্ট্যাটিক STS IV। P-STS ব্যবহার করা হলে, এটি ১৬ বাইট বা ৩২ বাইটের সেশন কী হয়। কনফিগারেশন আইডি থেকে কোন ধরনের নিরাপত্তা ব্যবহার করা হয়েছে তা নির্ধারণ করা হয়। |
| আলাদা আলাদা হয় | 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-এর জন্য ব্যবহৃত ডিভাইসের অ্যাড্রেস; বিগ-এন্ডিয়ান অর্ডারে |
Wi-Fi NAN RTT Ranging Configuration মেসেজ পেলোডকে নিম্নলিখিত
টেবিলে সংক্ষিপ্তসার করা হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8 | রেঞ্জিং টেকনোলজি আইডি | 0x2 - ওয়াই-ফাই NAN RTT |
| 1 | uint8 | আকার | ওয়াই-ফাই NAN RTT কনফিগারেশনের সাইজ (টেকনোলজি আইডি এবং সাইজ ফিল্ড সহ) বাইটে |
| 2 | uint8 | পরিষেবার নামের দৈর্ঘ্য | পরিষেবার নাম ফিল্ডের দৈর্ঘ্য বাইটে। Wi-Fi Aware স্পেসিফিকেশন v4.0 বিভাগ 1.3.3 টেবিল 1 দেখুন। সংজ্ঞা। |
| 3 | বাইট অ্যারে | পরিষেবার নাম | পরিষেবার নাম। Wi-Fi Aware স্পেসিফিকেশন v4.0 বিভাগ ১.৩.৩ টেবিল ১ দেখুন। সংজ্ঞা। |
| আলাদা আলাদা হয় | uint8 | ডিভাইসের ভূমিকা |
|
| আলাদা আলাদা | uint8 | পিরিয়ডিক রেঞ্জিং ব্যবহার করা |
|
BLE RSSI Ranging Configuration মেসেজ পেলোডকে নিম্নলিখিত
টেবিলে সংক্ষিপ্তসার করা হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8 | রেঞ্জিং টেকনোলজি আইডি | 0x3 - BLE RSSI |
| 1 | uint8 | আকার | BLE RSSI কনফিগারেশনের সাইজ (টেকনোলজি আইডি এবং সাইজ ফিল্ড সহ) বাইটে |
| 2 | uint8*6 | ডিভাইসের ঠিকানা | BLE RSSI-এর জন্য ব্যবহৃত ডিভাইসের অ্যাড্রেস; বিগ-এন্ডিয়ান অর্ডারে |
রেঞ্জিং কনফিগারেশন সংক্রান্ত উত্তরের মেসেজ পেলোড
সাইজ (হেডার সাইজ অন্তর্ভুক্ত নয়): ২ বাইট
বিবরণ: এই মেসেজটি উত্তরদাতা
Ranging Configuration মেসেজের উত্তর হিসেবে পাঠিয়েছেন। এই মেসেজটি ঐচ্ছিক, এটি শুধুমাত্র তখনই প্রয়োজন
যখন ব্যবহৃত কমিউনিকেশন চ্যানেলের প্রতিটি অনুরোধের জন্য একটি স্পষ্ট প্রতিক্রিয়া প্রয়োজন।
Ranging Configuration Response মেসেজ পেলোডকে নিম্নলিখিত টেবিলে
সংক্ষেপে দেখানো হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8*2 | রেঞ্জিং টেকনোলজি কনফিগারেশন সেট সফলভাবে বিটফিল্ড | সফলভাবে সেট করা রেঞ্জিং টেকনোলজির বিটফিল্ড। প্রযুক্তি অনুরোধ করা হলে এবং সেটি সফলভাবে সেট করা হলে, বিটফিল্ড রেঞ্জিং টেকনোলজি বিটকে ১ হিসেবে সেট করে এবং অন্যথায় ০ হিসেবে সেট করে।
|
মেসেজ পে-লোড রেঞ্জ করা বন্ধ করুন
সাইজ (হেডার সাইজ অন্তর্ভুক্ত নয়): ২ বাইট
বিবরণ: নির্দিষ্ট রেঞ্জিং টেকনোলজি ব্যবহার করে রেঞ্জিং বন্ধ করার সময় হলে, ইনিশিয়েটর ডিভাইস এই মেসেজ পাঠায়।
Stop Ranging মেসেজ পেলোড নিম্নলিখিত টেবিলে সংক্ষিপ্ত আকারে দেওয়া হল:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint৮*২ | বিটফিল্ড বন্ধ করার জন্য রেঞ্জিং প্রযুক্তি | রেঞ্জিং টেকনোলজির বিটফিল্ড যা অবশ্যই রেঞ্জিং বন্ধ করবে। বিট ১ হিসেবে সেট করা থাকলে বুঝতে হবে যে রেঞ্জিং টেকনোলজিকে রেঞ্জিং বন্ধ করতে হবে এবং ০ হিসেবে সেট করা থাকলে বুঝতে হবে যে রেঞ্জিং টেকনোলজি হয় প্রথম থেকেই রেঞ্জিং করছিল না অথবা আগে থেকেই রেঞ্জিং করে থাকলে তা চালিয়ে যেতে হবে। কিছু রেঞ্জিং টেকনোলজির (যেমন CS) ক্ষেত্রে এটি কোনও অপারেশন নয় কারণ রেঞ্জিং শুধুমাত্র ইনিশিয়েটরের দিকেই শুরু ও বন্ধ করা হয়।
|
রেঞ্জ করা উত্তর মেসেজ পেলোড বন্ধ করা
সাইজ (হেডারের সাইজ অন্তর্ভুক্ত নয়): ২ বাইট
বিবরণ: এই মেসেজটি উত্তরদাতা
Stop Ranging মেসেজের উত্তর হিসেবে পাঠিয়েছেন। এই মেসেজটি ঐচ্ছিক, এটি শুধুমাত্র তখনই প্রয়োজন হয় যখন
ব্যবহৃত যোগাযোগ চ্যানেলের প্রতিটি অনুরোধের জন্য একটি স্পষ্ট উত্তর প্রয়োজন হয়।
Stop Ranging Response মেসেজ পেলোডটি নিম্নলিখিত
টেবিলে সংক্ষিপ্তসার করা হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8*2 | Ranging প্রযুক্তি সফলভাবে বন্ধ করা হয়েছে বিটফিল্ড | রেঞ্জিং টেকনোলজির বিটফিল্ড যা সফলভাবে রেঞ্জিং বন্ধ করেছে। বিটফিল্ড রেঞ্জিং টেকনোলজি বিটকে ১-এ সেট করে
যদি টেকনোলজি বন্ধ করার অনুরোধ করা হয় এবং যদি
এটি সফলভাবে বন্ধ হয়ে যায়, অন্যথায় ০-এ সেট করে।
|
ভার্সনিং
প্রতিটি মেসেজের হেডারে স্পেসিফিকেশনের ভার্সন থাকে। এই বিভাগে উল্লেখ করা হয়েছে যে, একটি ডিভাইস (যে ডিভাইস থেকে কানেক্ট করার চেষ্টা করা হচ্ছে বা যে ডিভাইস কানেক্ট করার চেষ্টা করছে) অন্য ডিভাইসের চেয়ে পুরনো ভার্সনের হলে, কীভাবে কমিউনিকেশন করা হয়।
কেস ১: কানেকশন-ভিত্তিক কমিউনিকেশন চ্যানেল
এই বিভাগে এমন কিছু কেস বর্ণনা করা হয়েছে যেখানে কানেকশন-ভিত্তিক যোগাযোগ চ্যানেল ব্যবহার করা হয়,
যেখানে Ranging Capability Request হল ইনিশিয়েটর
ডিভাইসের পাঠানো প্রথম মেসেজ।
কেস ১.ক: ইনিশিয়েটর নতুন ভার্সন এবং রেসপন্ডার স্পেসিফিকেশনের পুরনো ভার্সন সাপোর্ট করে।
ইনিশিয়েটর ডিভাইস Ranging Capability Request মেসেজটি
নতুন ভার্সনের সাথে পাঠায়। প্রতিক্রিয়া প্রদানকারী ডিভাইসে শুধুমাত্র পুরনো ভার্সন কাজ করে, তাই সেটি
সেটি দিয়েই উত্তর দেয় এবং তারপরে মেসেজ আদানপ্রদানের বাকি অংশের জন্য প্রতিক্রিয়া
প্রদানকারী ডিভাইসের পুরনো ভার্সন ব্যবহার করা হয়। এর অর্থ হল, Ranging Capability Request
মেসেজকে ব্যাকওয়ার্ড কম্প্যাটিবল হতে হবে।
কেস ১.খ: ইনিশিয়েটর পুরনো ভার্সনে কাজ করে, রেসপন্ডার স্পেসিফিকেশনের নতুন ভার্সনে কাজ করে।
রেসপন্ডার ডিভাইস দেখে যে ইনিশিয়েটর ডিভাইসটি নতুন ভার্সন ব্যবহার করতে পারছে না, তাই এটি শুধুমাত্র ইনিশিয়েটর ডিভাইসের মাধ্যমে প্রাথমিকভাবে অনুরোধ করা পুরনো ভার্সন ব্যবহার করে মেসেজ পাঠায়।
কেস ২: বিজ্ঞাপন-ভিত্তিক কমিউনিকেশন চ্যানেল
এই বিভাগে এমন কেস বর্ণনা করা হয়েছে যেখানে বিজ্ঞাপন-ভিত্তিক কমিউনিকেশন চ্যানেল ব্যবহার করা হয়, যেখানে উত্তরদাতা ডিভাইস সরাসরি বিজ্ঞাপন দেয় Ranging Capability Request, কোনও প্রাথমিক অনুরোধ ছাড়াই।
কেস ২.ক: ইনিশিয়েটর নতুন ভার্সন এবং উত্তরদাতা স্পেসিফিকেশনের পুরনো ভার্সন সাপোর্ট করে।
বাকি যোগাযোগের জন্য Ranging Capability Response বিজ্ঞাপনে সেট করা পুরনো ভার্সন ব্যবহার করা হয়
।
কেস ২.খ: ইনিশিয়েটর পুরনো ভার্সনে কাজ করে, রেসপন্ডার স্পেসিফিকেশনের নতুন ভার্সনে কাজ করে।
Ranging Capability Response বিজ্ঞাপনের নতুন ভার্সনটি অবশ্যই
ব্যাকওয়ার্ড-কম্প্যাটিবল হতে হবে যাতে ইনিশিয়েটর ডিভাইসটি মেসেজটি পড়তে পারে, এমনকি
সেটি নতুন ভার্সন ব্যবহার করলেও। তারপরে, যে ডিভাইস থেকে শুরু করা হয়েছে সেটি Ranging
Configuration মেসেজ পাঠায়, এটি যে পুরনো ভার্সনে কাজ করে সেটি ব্যবহার করে। যোগাযোগের বাকি অংশের জন্য
এই ভার্সন ব্যবহার করা হয়।
Ranging Capability Response যাতে ব্যাকওয়ার্ড-কম্প্যাটিবল হয় তা নিশ্চিত করতে, Ranging
Capability Response মেসেজ পেলোডের পরবর্তী ভার্সনে যোগ করা যেকোনও নতুন
ফিল্ড পেলোডের শেষে যোগ করতে হবে
এবং আগে থেকে থাকা কোনও ফিল্ড পরিবর্তন করা যাবে না। কনফিগারেশন পার্স করার সময়,
উল্লেখ করা সাইজ প্রত্যাশিত সাইজের থেকে বড় হলে, স্পেসিফিকেশনের পুরনো ভার্সন বুঝতে পারে এমন যেকোনও ডিভাইসকে অতিরিক্ত ফিল্ড উপেক্ষা করতে হবে।
ফ্র্যাগমেন্টেশন
এই স্পেসিফিকেশনটি কমিউনিকেশন চ্যানেল-নির্ভর নয়, তাই এটি কোনও মেসেজ যদি ব্যবহৃত কমিউনিকেশন চ্যানেলের ট্রান্সফার প্যাকেটে ফিট করার জন্য খুব বড় হয়, তাহলে মেসেজ পেলোডকে কীভাবে ফ্র্যাগমেন্ট করতে হবে তা নির্ধারণ করে না। রেঞ্জিং মডিউল প্রতিটি মেসেজ সম্পূর্ণ ফর্মে পাওয়ার প্রত্যাশা করে। ফ্র্যাগমেন্টেশনের দায়িত্ব OOB কমিউনিকেশন চ্যানেলের ইমপ্লিমেন্টারের উপর বর্তায়।
রেঞ্জিং টেকনোলজি সংক্রান্ত নির্দিষ্ট তথ্য
এই বিভাগে রেঞ্জিং টেকনোলজি সম্পর্কিত বিবরণ রয়েছে।
আলট্রা-ওয়াইডব্যান্ড (UWB) সংক্রান্ত তথ্য
এই বিভাগে আল্ট্রা-ওয়াইডব্যান্ড সংক্রান্ত নির্দিষ্ট বিবরণ দেওয়া আছে।
Config আইডি
UWB-এর জন্য এক্সচেঞ্জ করা OOB কনফিগারেশন ডেটাতে উপলভ্য কনফিগার করা যায় এমন প্যারামিটারের সম্পূর্ণ সেট নেই যা UWB রেঞ্জিং সেশন শুরু করার জন্য UWB-এর প্রয়োজন হয়। এর কারণ হল, বেছে নেওয়া কনফিগারেশন আইডির মাধ্যমে কিছু প্যারামিটার অব্যক্তভাবে বেছে নেওয়া হয়।
প্রতিটি কনফিগারেশন আইডি হল আগে থেকে নির্ধারিত UWB কনফিগারেশন প্যারামিটারের একটি সেট যা
UwbRangingParams-এ
ডকুমেন্ট করা আছে। রেসপন্ডার ডিভাইস
তার কাজ করার ক্ষমতা সংক্রান্ত রেসপন্স মেসেজের অংশ হিসেবে, তার কাজ করার ক্ষমতা আছে এমন সব কনফিগারেশন আইডির তালিকা পাঠায়
এবং ইনিশিয়েটর, কাজ করার ক্ষমতা আছে এমন কনফিগারেশন আইডির মধ্যে থেকে
একটি বেছে নেয় যা ব্যবহার করা হয়। এর ফলে OOB-এর সময় কনফিগারেশন প্যারামিটারের ছোট সেট
এক্সচেঞ্জ করা যায়। এছাড়াও, এটি UWB-এর সাথে রেঞ্জিংয়ের জন্য ব্যবহার করা যেতে পারে এমন প্যারামিটারের সম্ভাব্য কম্বিনেশনের সংখ্যা সীমিত করে, যা শুধুমাত্র অনুমোদিত প্যারামিটারের কম্বিনেশন পরীক্ষা করা সম্ভব করে তোলে।
প্রতিটি UWB সেশনের পরে ক্ষমতা সংক্রান্ত অনুরোধ করা
আগে থেকে চালু থাকা UWB সেশন বন্ধ করার পরে এবং নতুন UWB সেশন শুরু করার আগে, ইনিশিয়েটর ডিভাইসকে অবশ্যই রেসপন্ডার ডিভাইসের ক্ষমতা সম্পর্কে অনুরোধ করতে হবে এবং কনফিগারেশন প্যারামিটার আবার সেট করতে হবে, কারণ বর্তমান রেঞ্জিং সেশন শেষ হওয়ার সাথে সাথেই UWB অ্যাড্রেস রোটেট হতে পারে।
BLE চ্যানেল সাউন্ডিং (CS) সংক্রান্ত নির্দিষ্ট তথ্য
এই বিভাগে চ্যানেল সাউন্ডিং সংক্রান্ত নির্দিষ্ট বিবরণ দেওয়া আছে।
ডিভাইসগুলির মধ্যে প্রয়োজনীয় বন্ড
চ্যানেল সাউন্ডিং ব্যবহার করে রেঞ্জিং কাজ করার জন্য ইনিশিয়েটর ও রেসপন্ডার ডিভাইসের মধ্যে আগে থেকে বন্ড থাকতে হবে। এই স্পেসিফিকেশন ডিভাইসের মধ্যে বন্ড তৈরি করার কোনও উপায় প্রদান করে না। রেঞ্জিং API-এর ব্যবহারকারীকে অবশ্যই ডিভাইসগুলির মধ্যে এই বন্ড তৈরি করতে হবে।
CS-এর জন্য রেসপন্ডার ডিভাইসের মাধ্যমে অ্যাকশন নিতে হবে
UWB-তে, UWB রেঞ্জিং শুরু ও বন্ধ করার API স্পষ্টভাবে কল করার জন্য দুটি ডিভাইসেরই প্রয়োজন। অন্যদিকে, CS-এর ক্ষেত্রে, ব্লুটুথ (BT) স্ট্যাক কল করে CS রেঞ্জিং শুরু করার জন্য
শুধুমাত্র ইনিশিয়েটর ডিভাইস প্রয়োজন। বাকি
ইনিশিয়ালাইজেশন রেসপন্ডারের দিকে ব্যান্ডে BT-এর মাধ্যমে হয়। এর অর্থ হল
CS-এর জন্য Ranging Configuration মেসেজ বা Stop Ranging মেসেজ
পাওয়ার পরে, BT চালু থাকলে রেসপন্ডারের দিকে আর কিছু করতে হয় না। উত্তরদাতা ডিভাইস UI আপডেট করার জন্য সেইসব মেসেজকে ট্রিগার হিসেবে ব্যবহার করতে পারে অথবা, যেমন
ডিভাইসের LED আলো ব্লিঙ্ক করতে পারে।