Android 16-এ রেঞ্জিং মডিউল চালু করা হয়েছে। এই প্রোটোকল ও পেলোড স্পেসিফিকেশন, রেঞ্জিং কনফিগারেশন এক্সচেঞ্জ করতে এবং রেঞ্জিং শুরু ও বন্ধ করতে, ইনিশিয়েটর ও রেসপন্ডার ডিভাইসের মধ্যে ব্যবহৃত আউট-অফ-ব্যান্ড (OOB) কমিউনিকেশনের মেসেজ সিকোয়েন্স ও পেলোডকে সংজ্ঞায়িত করে। Android 16 QPR3 এই স্পেসিফিকেশনের ভার্সন 2 পরিচয় করায়।
এই পৃষ্ঠার মূল লক্ষ্য হল, Android নয় এমন ডিভাইস প্রদানকারীদের এই স্পেসিফিকেশন ইমপ্লিমেন্ট করতে দেওয়া, যাতে তাদের ডিভাইসগুলি Android ডিভাইসের সাথে রেঞ্জিংয়ের জন্য উপযুক্ত হতে পারে।
Google-এর প্যাকেট বিবরণ ভাষা (PDL)-এ এই স্পেসিফিকেশনের প্রয়োগ GitHub-এ উপলভ্য। এই ইমপ্লিমেন্টেশন থেকে, PDL কম্পাইলার এই স্পেসিফিকেশনে সংজ্ঞায়িত মেসেজের জন্য সিরিয়ালাইজেশন ও ডিসিরিয়ালাইজেশন কোড জেনারেট করতে পারে। এটি C++, Rust এবং Java সহ বিভিন্ন টার্গেট ভাষায় কাজ করে।
ভার্সন ২-এ নতুন কী আছে
OOB স্পেসিফিকেশনের ২ নম্বর ভার্সনে নিম্নলিখিত পরিবর্তনগুলি করা হয়েছে:
- প্রযুক্তি ট্রানজিশন: ডেটা স্ট্রিম ব্যাহত না করেই, অ্যাক্টিভ সেশন চলাকালীন রেঞ্জিং প্রযুক্তির মধ্যে ডায়নামিক সুইচিং করতে দেয়।
- রেঞ্জিং ক্যাপাবিলিটি সংক্রান্ত উত্তর
- মেক-বিফোর-ব্রেক টেকনোলজি ট্রানজিশনের জন্য সহায়তা নির্দেশ করতে একটি নতুন
Supported technology transitioningফিল্ড অন্তর্ভুক্ত করে। - এতে একটি নতুন
Device typeফিল্ড অন্তর্ভুক্ত আছে যা ইনিশিয়েটর ডিভাইসগুলির মধ্যে পাওয়ার খরচ অপ্টিমাইজ করতে ব্যবহার করতে পারে।
- মেক-বিফোর-ব্রেক টেকনোলজি ট্রানজিশনের জন্য সহায়তা নির্দেশ করতে একটি নতুন
এন্ডিয়ানেস
অন্যভাবে নির্দিষ্ট করা না থাকলে, মেসেজের সমস্ত মাল্টি-বাইট নিউমেরিক ফিল্ড লিটল-এন্ডিয়ান অর্ডারে থাকে।
মেসেজ ও মেসেজের ক্রম
এই বিভাগে মেসেজ ও মেসেজ আদানপ্রদানের ক্রম বর্ণনা করা হয়েছে।
নিম্নলিখিত সারণীতে 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
মেসেজ বা ইনিশিয়েটর ডিভাইস থেকে আসা যেকোনও এলোমেলো মেসেজের উত্তর দিতে পারে।
প্রযুক্তিগত ট্রানজিশন
OOB ভার্সন ২ স্পেসিফিকেশন টেকনোলজি ট্রানজিশনের জন্য স্পষ্ট সাপোর্ট প্রদান করে। এর ফলে, সেশন চলাকালীন ডিভাইসগুলি বিভিন্ন রেঞ্জিং টেকনোলজির মধ্যে ডায়নামিক ট্রানজিশন করতে পারে। এটি সহজ করতে, ইনিশিয়েটর এগুলি করতে পারেন:
- নতুন প্রযুক্তি শুরু করতে একাধিক
Ranging Configurationমেসেজ পাঠান। - অ্যাক্টিভ টেকনোলজি বন্ধ করতে একাধিক
Stop Rangingমেসেজ পাঠান।
এইসব মেসেজের ক্রম, উত্তরদাতার দ্বারা সমর্থিত ট্রানজিশনিং স্কিমের উপর নির্ভর করে আলাদা আলাদা হয়:
- ব্রেক-বিফোর-মেক: ইনিশিয়েটর শুধুমাত্র নতুন প্রযুক্তিতে ট্রানজিশন করতে পারবেন
Stop Rangingমেসেজ দিয়ে প্রথমটি বন্ধ করেRanging Configurationমেসেজ দিয়ে দ্বিতীয়টি শুরু করার আগে। - মেক-বিফোর-ব্রেক: ইনিশিয়েটর
Ranging Configurationমেসেজ ব্যবহার করে নতুন টেকনোলজি চালু করতে পারেন এবং তারপরেStop Rangingমেসেজ ব্যবহার করে আগে থেকে থাকা টেকনোলজি বন্ধ করতে পারেন।
রেসপন্ডারকে অবশ্যই Capability Response-এ
supported technology transitioning ফিল্ডের
ভ্যালু অনুযায়ী এই ট্রানজিশন স্কিমের মধ্যে কোনও একটির জন্য সহায়তা প্রয়োগ করতে হবে।
রেঞ্জিং টেকনোলজি আইডি
রেঞ্জিং টেকনোলজির আইডি নিম্নলিখিত টেবিলে তালিকাভুক্ত করা আছে:
| রেঞ্জিং টেকনোলজি | আইডি |
|---|---|
| UWB | 0x0 |
| CS | 0x1 |
| ওয়াই-ফাই NAN RTT | 0x2 |
| RSSI | 0x3 |
| RFU | 0x4 - 0xFF |
নিচের টেবিলে এই আইডি ব্যবহার করা হয় যেখানে রেঞ্জিং টেকনোলজি আইডি প্রয়োজন। রেঞ্জিং টেকনোলজি বিটফিল্ড সহ ফিল্ডের জন্য, টেকনোলজির আইডির ইন্ডেক্সের সাথে সম্পর্কিত একটি বিট সেট করা হয় যখন সেই টেকনোলজি বিটফিল্ডে অন্তর্ভুক্ত করা হয়।
যেমন, RSSI-এর ID ভ্যালু ৩, কিন্তু রেঞ্জিং টেকনোলজি বিটফিল্ডে RSSI অন্তর্ভুক্ত থাকলে, ID (৩)-এর পজিশনের বিটটি অবশ্যই চালু করতে হবে (প্রথম বিটটি পজিশন ০-এ থাকে), এর ফলে বিটফিল্ডের ফলাফল 0x8 হয়। UWB ও RSSI, দুটিই অন্তর্ভুক্ত থাকলে, বিটফিল্ডের ভ্যালু হবে 0x0A (0 ও 3, দুটি বিটই চালু করা আছে)।
মেসেজ ফর্ম্যাট
প্রতিটি মেসেজে একটি হেডার ও একটি পেলোড থাকে।
ছবি ৩. মেসেজের ফর্ম্যাট।
হেডার
সাইজ: ২ বাইট
বিবরণ: সব মেসেজ জুড়ে সাধারণ, হেডার হল প্রথম অংশ যা
মেসেজে যায়। হেডারে মেসেজের ধরন সংক্রান্ত ভার্সন ও আইডি
থাকে। মেসেজের কন্টেন্ট এই স্পেসিফিকেশনের যে ভার্সন মেনে চলে, ভার্সন ফিল্ডে সেটি উল্লেখ করা হয়।
এই স্পেসিফিকেশনের বর্তমান ভার্সন হল
2। বিভিন্ন ভার্সনের ডিভাইসের মধ্যে কীভাবে ভার্সনিং ব্যবহার করা হয় সেই সম্পর্কে আরও জানতে, ভার্সনিং দেখুন। হেডারটি
বিভিন্ন ভার্সন জুড়ে ব্যাকওয়ার্ড কম্প্যাটিবল থাকে, যার অর্থ হল ব্যবহারের ক্ষেত্রে
এটি সবসময় পার্স করে ভার্সন এবং মেসেজের আইডি নির্ধারণ করা যায়।
নিম্নলিখিত সারণীতে হেডার সংক্ষিপ্তভাবে তুলে ধরা হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8 | ভার্সন |
|
| 1 | unit8 | মেসেজ আইডি |
|
পেলোড
সাইজ: আলাদা আলাদা হয় (মেসেজের ধরনের উপর নির্ভর করে)
বিবরণ: পে-লোড হল মেসেজের শেষ অংশ, হেডার পরে। পে-লোড মেসেজের ধরনের উপর নির্ভর করে। প্রতিটি আলাদা মেসেজ ধরনের পেলোডের ফর্ম্যাট নিম্নলিখিত বিভাগে বর্ণনা করা হয়েছে।
রেঞ্জিং ক্যাপাবিলিটি সংক্রান্ত অনুরোধের মেসেজ পেলোড
সাইজ (হেডারের সাইজ অন্তর্ভুক্ত নয়): ২ বাইট
বিবরণ: মেসেজ আদানপ্রদান শুরু করার জন্য ইনিশিয়েটর ডিভাইস থেকে পাঠানো হয়।
বিজ্ঞাপনের উপর ভিত্তি করে কমিউনিকেশন চ্যানেল তৈরি হলে এই মেসেজটি ঐচ্ছিক,
যেক্ষেত্রে রেসপন্ডার ডিভাইসকে প্রথম ধাপ হিসেবে Ranging
Capability মেসেজ বিজ্ঞাপন করতে হবে। ইনিশিয়েটর ডিভাইস (প্রাথমিক স্ক্যানার)
বিজ্ঞাপনটি পড়ে এবং সরাসরি Ranging Capability
মেসেজের মাধ্যমে উত্তর দেয়, যার ফলে এই মেসেজের প্রয়োজন হয় না।
Ranging Capability Request মেসেজ পেলোডের সারসংক্ষেপ নিম্নলিখিত
টেবিলে দেওয়া হল:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8*2 | অনুরোধ করা রেঞ্জিং টেকনোলজি বিটফিল্ড |
|
রেঞ্জিং ক্যাপাবিলিটি রেসপন্স মেসেজ পেলোড
সাইজ (হেডার সাইজ অন্তর্ভুক্ত নয়): পরিবর্তিত হয় (সাধারণ অংশ ২ বাইট এবং অন্তর্ভুক্ত প্রতিটি রেঞ্জিং টেকনোলজি বাইটের সাইজ )
বিবরণ: Ranging Capability
Request মেসেজের উত্তরে উত্তরদাতা পাঠিয়েছেন। এই মেসেজ পেলোডে সাধারণ অংশ এবং রেঞ্জিং
টেকনোলজি-নির্দিষ্ট অংশ (BLE CS, Wi-Fi NAN RTT, BLE RSSI) থাকে, যা
নিম্নলিখিত সারণীতে দেখানো হয়েছে। রেঞ্জিং প্রযুক্তি-নির্দিষ্ট প্রতিটি পার্ট তখনই যোগ করতে হবে, যদি
রেসপন্ডার ডিভাইসে সেই রেঞ্জিং প্রযুক্তি কাজ করে এবং Ranging Capability Request মেসেজে
সেটির অনুরোধ করা হয়। বিজ্ঞাপন
যোগাযোগ চ্যানেলের ক্ষেত্রে, কাজ করে এমন সব রেঞ্জিং প্রযুক্তি অন্তর্ভুক্ত করতে হবে।
সাধারণ Ranging Capability Response মেসেজ পেলোডকে নিম্নলিখিত
টেবিলে সংক্ষিপ্তসার করা হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint৮*২ | রেঞ্জিং টেকনোলজি বিটফিল্ড কাজ করে। পে-লোডের বাকি অংশে রেঞ্জিং টেকনোলজির যেসব ক্ষমতা অনুসরণ করা হয়, তার সেট নির্দেশ করে। |
|
| 2 | বাইট অ্যারে | রেঞ্জিং টেকনোলজি কেপেবিলিটি বাইট। | প্রতিটি প্রযুক্তির জন্য সংজ্ঞায়িত স্ট্রাক্টের পুনরাবৃত্ত ব্লক। |
| পার্থক্য হয় | uint8 | প্রযুক্তিগত ট্রানজিশন সংক্রান্ত সহায়তা নির্দেশ করে। |
|
| পার্থক্য হয় | uint16 | উত্তরদাতা ডিভাইসের ধরন বোঝায়। |
|
UWB Ranging Capability Response মেসেজ পেলোডকে নিম্নলিখিত
টেবিলে সংক্ষিপ্তসার করা হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8 | রেঞ্জিং টেকনোলজি আইডি | 0x0 - UWB |
| 1 | uint8 | আকার | UWB ক্যাপাবিলিটি বাইটের সাইজ (এর মধ্যে টেকনোলজি আইডি ও সাইজ ফিল্ড অন্তর্ভুক্ত) বাইটে। |
| 2 | uint8*2 | 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 | uint৮*২ | কাজ করে এমন ন্যূনতম রেঞ্জিং ইন্টারভ্যাল | মিলিসেকেন্ডে সবচেয়ে দ্রুত কাজ করে এমন রেঞ্জিং ইন্টারভ্যাল নির্দেশ করে। অনুমোদিত মান (মিলি সেকেন্ডে):
|
| 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 - Wi-Fi 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 | uint৮*২ | রেঞ্জিং টেকনোলজি কনফিগারেশন সেট বিটফিল্ড | রেঞ্জিং প্রযুক্তির বিটফিল্ড যার জন্য এই মেসেজে কনফিগারেশন ডেটা থাকে এবং যার জন্য কনফিগারেশন প্যারামিটার সেট করতে হবে।
|
| 2 | uint8*2 | বিটফিল্ড | RFU. রেঞ্জিং টেকনোলজি কনফিগারেশন সেট বিটফিল্ড ফিল্ডের মতো একই ভ্যালুতে সেট করতে হবে। |
| 4 | বাইট অ্যারে | রেঞ্জিং টেকনোলজি কনফিগারেশন বাইট | প্রতিটি প্রযুক্তির জন্য সংজ্ঞায়িত স্ট্রাক্টের পুনরাবৃত্তি ব্লক |
UWB Ranging Configuration মেসেজ পেলোডকে নিম্নলিখিত
টেবিলে সংক্ষিপ্তসার করা হয়েছে:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8 | রেঞ্জিং টেকনোলজি আইডি | 0x0 - UWB |
| 1 | uint8 | আকার | বাইট হিসেবে UWB কনফিগারেশনের সাইজ (টেকনোলজি আইডি ও সাইজ ফিল্ড সহ) |
| 2 | uint8*2 | UWB অ্যাড্রেস | ২ বাইট ডিভাইস UWB অ্যাড্রেস |
| 4 | uint8*4 | সেশন আইডি | জেনারেট করা সেশন আইডি। ফোন ও পেরিফেরালের মধ্যে রেঞ্জিং সেশনের জন্য সেশন আইডি হল অনন্য শনাক্তকারী। |
| 8 | uint8 | বেছে নেওয়া কনফিগারেশন আইডি | ইন্টিজারে config ID নম্বর বেছে নেওয়া হয়েছে। কনফিগারেশন আইডি, UWB রেঞ্জিং সেশনের জন্য ব্যবহার করতে হবে এমন টাইমিং প্যারামিটার ও নিরাপত্তার ধরন নির্দিষ্ট করে। |
| 9 | uint8 | বেছে নেওয়া চ্যানেল | UWB রেঞ্জিং সেশনের জন্য বেছে নেওয়া চ্যানেল |
| 10 | uint8 | বেছে নেওয়া প্রস্তাবনার ইন্ডেক্স | UWB রেঞ্জিং সেশনের জন্য বেছে নেওয়া প্রিঅ্যাম্বেল ইন্ডেক্স |
| 11 | uint8*2 | বেছে নেওয়া রেঞ্জিং ইন্টারভ্যাল | মিলিসেকেন্ডে বেছে নেওয়া রেঞ্জিং ইন্টারভ্যাল রেট। অনুমোদিত মান (মিলি সেকেন্ডে):
|
| 13 | uint8 | বেছে নেওয়া স্লটের সময়সীমা | বেছে নেওয়া স্লটের সময়সীমা মিলিসেকেন্ডে। অনুমোদিত মান (মিলি সেকেন্ডে):
|
| 14 | uint8 | সেশন কী-এর দৈর্ঘ্য | বাইটে সেশন কী-এর দৈর্ঘ্য |
| 15 | বাইট অ্যারে | সেশন কী | সেশন কী। S-STS ব্যবহার করা হলে, প্রথম দুটি বাইট হল VENDOR ID এবং পরের ছয়টি বাইট হল STATIC 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 - Wi-Fi NAN RTT |
| 1 | uint8 | আকার | ওয়াই-ফাই NAN RTT কনফিগারেশনের সাইজ (টেকনোলজি আইডি এবং সাইজ ফিল্ড সহ) বাইটে |
| 2 | uint8 | পরিষেবার নামের দৈর্ঘ্য | বাইটে পরিষেবার নামের ফিল্ডের দৈর্ঘ্য। Wi-Fi Aware স্পেসিফিকেশন v4.0 বিভাগ ১.৩.৩ টেবিল ১ দেখুন। সংজ্ঞা। |
| 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 | uint৮*২ | রেঞ্জিং টেকনোলজি কনফিগারেশন সফলভাবে সেট করা হয়েছে বিটফিল্ড | সফলভাবে সেট করা রেঞ্জিং টেকনোলজির বিটফিল্ড। প্রযুক্তি অনুরোধ করা হলে এবং সেটি সফলভাবে সেট করা হলে, বিটফিল্ড রেঞ্জিং টেকনোলজি বিটকে ১ হিসেবে সেট করে এবং অন্যথায় ০ হিসেবে সেট করে।
|
রেঞ্জিং মেসেজ পেলোড বন্ধ করা
সাইজ (হেডার সাইজ অন্তর্ভুক্ত নয়): ২ বাইট
বিবরণ: নির্দিষ্ট রেঞ্জিং টেকনোলজি ব্যবহার করে রেঞ্জিং বন্ধ করার সময় হলে, ইনিশিয়েটর ডিভাইস এই মেসেজ পাঠায়।
Stop Ranging মেসেজ পেলোড নিম্নলিখিত টেবিলে সংক্ষিপ্ত আকারে দেওয়া হল:
| অক্টেট | ডেটার ধরন | বর্ণনা | মান |
|---|---|---|---|
| 0 | uint8*2 | বিটফিল্ড বন্ধ করার জন্য রেঞ্জিং প্রযুক্তি | রেঞ্জিং টেকনোলজির বিটফিল্ড যা রেঞ্জিং বন্ধ করবে। বিট ১-এ সেট করা থাকলে তা নির্দেশ করে যে রেঞ্জিং প্রযুক্তিকে অবশ্যই রেঞ্জিং বন্ধ করতে হবে এবং ০ নির্দেশ করে যে রেঞ্জিং প্রযুক্তি প্রথম স্থানে রেঞ্জিং করছিল না বা এটি আগে থেকেই রেঞ্জিং করলে অবশ্যই রেঞ্জিং চালিয়ে যেতে হবে। কিছু রেঞ্জিং টেকনোলজির (যেমন CS) ক্ষেত্রে এটি কোনও অপারেশন নয় কারণ রেঞ্জিং শুধুমাত্র ইনিশিয়েটরের দিকেই শুরু ও বন্ধ করা হয়।
|
Stop Ranging Response মেসেজ পেলোড
সাইজ (হেডারের সাইজ অন্তর্ভুক্ত নয়): ২ বাইট
বিবরণ: এই মেসেজটি উত্তরদাতা
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 কমিউনিকেশন চ্যানেল ইমপ্লিমেন্টকারীকে ফ্র্যাগমেন্টেশন সংক্রান্ত দায়িত্ব পালন করতে হবে।
Ranging-technology-specifics
এই বিভাগে রেঞ্জিং টেকনোলজি সম্পর্কিত নির্দিষ্ট বিবরণ রয়েছে।
আলট্রা-ওয়াইডব্যান্ড (UWB) সংক্রান্ত নির্দিষ্ট তথ্য
এই বিভাগে আল্ট্রা-ওয়াইডব্যান্ড সংক্রান্ত নির্দিষ্ট বিবরণ দেওয়া আছে।
কনফিগারেশন আইডি
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 আলো ব্লিঙ্ক করতে পারে।