অ্যান্ড্রয়েড ১৬ রেঞ্জিং মডিউল চালু করেছে। এই প্রোটোকল এবং পেলোড স্পেসিফিকেশনটি আউট-অফ-ব্যান্ড (OOB) যোগাযোগের মেসেজ সিকোয়েন্স ও পেলোডকে সংজ্ঞায়িত করে, যা রেঞ্জিং-এ অংশগ্রহণকারী ইনিশিয়েটর এবং রেসপন্ডার ডিভাইসের মধ্যে রেঞ্জিং কনফিগারেশন বিনিময় করতে এবং রেঞ্জিং শুরু ও বন্ধ করতে ব্যবহৃত হয়। অ্যান্ড্রয়েড ১৬ QPR3 এই স্পেসিফিকেশনের সংস্করণ ২ চালু করেছে।
এই পৃষ্ঠাটির মূল লক্ষ্য হলো নন-অ্যান্ড্রয়েড ডিভাইস সরবরাহকারীদের এই স্পেসিফিকেশনটি বাস্তবায়ন করতে সক্ষম করা, যাতে তাদের ডিভাইসগুলো অ্যান্ড্রয়েড ডিভাইসের সাথে সামঞ্জস্যপূর্ণ হতে পারে।
গুগলের প্যাকেট ডেসক্রিপশন ল্যাঙ্গুয়েজ (পিডিএল) -এ এই স্পেসিফিকেশনটির একটি বাস্তবায়ন গিটহাবে পাওয়া যায়। এই বাস্তবায়ন থেকে, পিডিএল কম্পাইলার এই স্পেসিফিকেশনে সংজ্ঞায়িত মেসেজগুলোর জন্য সিরিয়ালাইজেশন এবং ডিসিরিয়ালাইজেশন কোড তৈরি করতে পারে। এটি সি++, রাস্ট এবং জাভাসহ বিভিন্ন টার্গেট ল্যাঙ্গুয়েজ সমর্থন করে।
ভার্সন ২-এ নতুন কী আছে
OOB স্পেসিফিকেশনের সংস্করণ ২-এ নিম্নলিখিত পরিবর্তনগুলো আনা হয়েছে:
- প্রযুক্তি পরিবর্তন : একটি সক্রিয় সেশন চলাকালীন ডেটা প্রবাহে বাধা না দিয়ে রেঞ্জিং প্রযুক্তিগুলির মধ্যে গতিশীলভাবে পরিবর্তন করার সুযোগ দেয়।
- রেঞ্জিং সক্ষমতা প্রতিক্রিয়া
- মেক-বিফোর-ব্রেক প্রযুক্তি রূপান্তরের জন্য সমর্থন নির্দেশ করতে একটি নতুন
Supported technology transitioningক্ষেত্র’ অন্তর্ভুক্ত করা হয়েছে। - এতে একটি নতুন
Device typeফিল্ড অন্তর্ভুক্ত করা হয়েছে, যা ইনিশিয়েটর ডিভাইসগুলোর মধ্যে বিদ্যুৎ খরচ অপ্টিমাইজ করার জন্য ব্যবহার করতে পারেন।
- মেক-বিফোর-ব্রেক প্রযুক্তি রূপান্তরের জন্য সমর্থন নির্দেশ করতে একটি নতুন
এন্ডিয়াননেস
অন্যথায় নির্দিষ্ট করা না থাকলে, বার্তাগুলির সমস্ত মাল্টি-বাইট সাংখ্যিক ক্ষেত্র লিটল-এন্ডিয়ান ক্রমে থাকে।
বার্তা এবং বার্তা ক্রম
এই অংশে বার্তাগুলো এবং বার্তা বিনিময়ের ক্রম বর্ণনা করা হয়েছে।
নিম্নলিখিত সারণিতে OOB বিনিময়ে উপস্থিত সমস্ত বার্তা দেখানো হয়েছে:
| বার্তা | বার্তা আইডি |
|---|---|
Ranging Capability Request | ০x০ |
Ranging Capability Response | ০x১ |
Ranging Configuration | ০x২ |
Ranging Configuration Response (ঐচ্ছিক) | ০x৩ |
Stop Ranging | ০x৬ |
Stop Ranging Response (ঐচ্ছিক) | ০x৭ |
চিত্র ১ এবং ২-এ যেমন দেখানো হয়েছে, বার্তা আদান-প্রদান কীভাবে শুরু হয় তা যোগাযোগ মাধ্যমের ওপর নির্ভর করে।
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বার্তা পাঠান।
রেসপন্ডার কর্তৃক সমর্থিত ট্রানজিশনিং স্কিমের উপর নির্ভর করে এই বার্তাগুলির ক্রম পরিবর্তিত হয়:
- ব্রেক-বিফোর-মেক: ইনিশিয়েটর শুধুমাত্র তখনই একটি নতুন প্রযুক্তিতে ট্রানজিশন করতে পারে, যখন সে একটি
Ranging Configurationমেসেজের মাধ্যমে দ্বিতীয় প্রযুক্তিটি শুরু করার আগে একটিStop Rangingমেসেজের মাধ্যমে প্রথমটি বন্ধ করে। - চালুর আগে বন্ধ করা: প্রবর্তক একটি
Stop Rangingবার্তা দিয়ে বিদ্যমান প্রযুক্তিগুলো বন্ধ করার আগে একটিRanging Configurationবার্তা ব্যবহার করে একটি নতুন প্রযুক্তি শুরু করতে পারেন।
সাড়াদানকারীকে তার Capability Response তে supported technology transitioning ক্ষেত্রের মান অনুযায়ী এই রূপান্তর পরিকল্পনাগুলোর মধ্যে একটির জন্য সমর্থন বাস্তবায়ন করতে হবে।
প্রযুক্তি আইডিগুলির পরিসর
রেঞ্জিং প্রযুক্তিগুলোর আইডি নিম্নলিখিত সারণিতে তালিকাভুক্ত করা হলো:
| রেঞ্জিং প্রযুক্তি | আইডি |
|---|---|
| ইউডব্লিউবি | ০x০ |
| সিএস | ০x১ |
| ওয়াই-ফাই ন্যান আরটিটি | ০x২ |
| আরএসএসআই | ০x৩ |
| আরএফইউ | 0x4 - 0xFF |
এই আইডিগুলো নিম্নলিখিত সারণিগুলোতে ব্যবহৃত হয়, যেখানে রেঞ্জিং টেকনোলজি আইডির প্রয়োজন হয়। যে সকল ফিল্ডে রেঞ্জিং টেকনোলজি বিটফিল্ড থাকে, সেই বিটফিল্ডে কোনো টেকনোলজি অন্তর্ভুক্ত করা হলে টেকনোলজিটির আইডির সূচকের সাথে সঙ্গতিপূর্ণ একটি বিট সেট করা হয়।
উদাহরণস্বরূপ, RSSI-এর ID মান 3, কিন্তু যদি RSSI রেঞ্জিং টেকনোলজি বিটফিল্ডে অন্তর্ভুক্ত করা হয়, তাহলে ID (3)-এর পজিশনের বিটটি অবশ্যই চালু করতে হবে (প্রথম বিটটি 0 পজিশনে থাকবে), যার ফলে বিটফিল্ডের মান 0x8 হয়। যদি UWB এবং RSSI উভয়ই অন্তর্ভুক্ত করা হয়, তাহলে বিটফিল্ডের মান 0x0A হয় (বিট 0 এবং 3 উভয়ই চালু থাকে)।
বার্তার বিন্যাস
প্রতিটি বার্তায় একটি হেডার এবং একটি পেলোড থাকে।

চিত্র ৩। বার্তার ফরম্যাট।
হেডার
আকার: ২ বাইট
বিবরণ: সকল মেসেজের জন্য সাধারণ, হেডার হলো মেসেজের প্রথম অংশ। হেডারে মেসেজ টাইপের একটি ভার্সন এবং আইডি থাকে। ভার্সন ফিল্ডটি এই স্পেসিফিকেশনের সেই ভার্সনটি নির্দিষ্ট করে, যা মেসেজের বিষয়বস্তু মেনে চলে। এই স্পেসিফিকেশনের বর্তমান ভার্সন হলো 2 বিভিন্ন ভার্সনের ডিভাইসের মধ্যে ভার্সনিং কীভাবে ব্যবহৃত হয় সে সম্পর্কে আরও তথ্যের জন্য, ভার্সনিং দেখুন। হেডারটি বিভিন্ন ভার্সন জুড়ে ব্যাকওয়ার্ড কম্প্যাটিবল থাকে, যার অর্থ হলো, ব্যবহারের ক্ষেত্রটি মেসেজের ভার্সন এবং আইডি নির্ধারণ করতে সর্বদা এটি পার্স করতে পারে।
শিরোনামটি নিম্নলিখিত সারণীতে সংক্ষেপে তুলে ধরা হলো:
| অক্টেট | ডেটা টাইপ | বর্ণনা | মূল্য |
|---|---|---|---|
| ০ | uint8 | সংস্করণ |
|
| ১ | ইউনিট ৮ | বার্তা আইডি |
|
পেলোড
আকার: পরিবর্তনশীল (বার্তার ধরনের উপর নির্ভরশীল)
বিবরণ: পেলোড হলো হেডারের পরের বার্তার শেষ অংশ। পেলোড বার্তার ধরনের উপর নির্ভর করে। প্রতিটি স্বতন্ত্র বার্তার ধরনের পেলোডের ফরম্যাট নিম্নলিখিত বিভাগগুলিতে সংজ্ঞায়িত করা হয়েছে।
রেঞ্জিং ক্যাপাবিলিটি রিকোয়েস্ট মেসেজ পেলোড
আকার (হেডারের আকার অন্তর্ভুক্ত নয়): ২ বাইট
বিবরণ: বার্তা আদান-প্রদান শুরু করার জন্য ইনিশিয়েটর ডিভাইস দ্বারা পাঠানো হয়। যখন যোগাযোগ চ্যানেলটি অ্যাডভার্টাইজিং-ভিত্তিক হয়, তখন এই বার্তাটি ঐচ্ছিক; সেক্ষেত্রে প্রথম ধাপ হিসেবে রেসপন্ডার ডিভাইসকে একটি Ranging Capability বার্তা অ্যাডভার্টাইজ করতে হয়। ইনিশিয়েটর ডিভাইস (প্রাথমিক স্ক্যানার) অ্যাডভার্টাইজমেন্টটি পড়ে এবং সরাসরি একটি Ranging Capability বার্তা দিয়ে সাড়া দেয়, ফলে এই বার্তার প্রয়োজন হয় না।
Ranging Capability Request মেসেজের পেলোড নিম্নলিখিত সারণীতে সংক্ষেপে তুলে ধরা হলো:
| অক্টেট | ডেটা টাইপ | বর্ণনা | মূল্য |
|---|---|---|---|
| ০ | uint8*2 | অনুরোধকৃত রেঞ্জিং প্রযুক্তি বিটফিল্ড |
|
রেঞ্জিং ক্যাপাবিলিটি রেসপন্স মেসেজ পেলোড
আকার (হেডারের আকার অন্তর্ভুক্ত নয়): পরিবর্তনশীল (সাধারণ অংশের ২ বাইট এবং এর সাথে অন্তর্ভুক্ত প্রতিটি রেঞ্জিং টেকনোলজি বাইটের আকার)
বিবরণ: একটি Ranging Capability Request বার্তার প্রতিক্রিয়া হিসাবে রেসপন্ডার দ্বারা পাঠানো হয়। এই বার্তার পেলোডটি সাধারণ অংশ এবং রেঞ্জিং প্রযুক্তি-নির্দিষ্ট অংশ (BLE CS, Wi-Fi NAN RTT, BLE RSSI) নিয়ে গঠিত, যা নিম্নলিখিত সারণিতে দেখানো হয়েছে। প্রতিটি রেঞ্জিং প্রযুক্তি-নির্দিষ্ট অংশ কেবল তখনই যোগ করতে হবে, যদি সেই রেঞ্জিং প্রযুক্তিটি রেসপন্ডার ডিভাইস দ্বারা সমর্থিত হয় এবং Ranging Capability Request বার্তায় অনুরোধ করা হয়। একটি অ্যাডভার্টাইজমেন্ট কমিউনিকেশন চ্যানেলের ক্ষেত্রে, সমস্ত সমর্থিত রেঞ্জিং প্রযুক্তি অবশ্যই অন্তর্ভুক্ত করতে হবে।
সাধারণ Ranging Capability Response মেসেজ পেলোডটি নিম্নলিখিত সারণিতে সংক্ষেপে তুলে ধরা হলো:
| অক্টেট | ডেটা টাইপ | বর্ণনা | মূল্য |
|---|---|---|---|
| ০ | uint8*2 | সমর্থিত রেঞ্জিং প্রযুক্তি বিটফিল্ড। এটি পেলোডের বাকি অংশে থাকা রেঞ্জিং প্রযুক্তিগুলোর সক্ষমতার সেট নির্দেশ করে। |
|
| ২ | বাইট অ্যারে | রেঞ্জিং প্রযুক্তিগত সক্ষমতা বাইট। | প্রযুক্তি অনুসারে সংজ্ঞায়িত স্ট্রাক্ট-এর পুনরাবৃত্ত ব্লক। |
| বিভিন্ন | uint8 | প্রযুক্তিগত রূপান্তরের প্রতি সমর্থন নির্দেশ করে। |
|
| বিভিন্ন | uint16 | রেসপন্ডার ডিভাইসটির ধরন নির্দেশ করে। |
|
UWB Ranging Capability Response মেসেজ পেলোডটি নিম্নলিখিত সারণীতে সংক্ষেপে তুলে ধরা হলো:
| অক্টেট | ডেটা টাইপ | বর্ণনা | মূল্য |
|---|---|---|---|
| ০ | uint8 | রেঞ্জিং প্রযুক্তি আইডি | 0x0 - UWB |
| ১ | uint8 | আকার | UWB সক্ষমতার আকার ( টেকনোলজি আইডি এবং সাইজ ফিল্ড সহ) বাইটে। |
| ২ | uint8*2 | UWB ঠিকানা | ২ বাইটের ডিভাইস UWB অ্যাড্রেস। |
| ৪ | uint8*4 | সমর্থিত চ্যানেল বিটফিল্ড | সমর্থিত চ্যানেলগুলোর বিটফিল্ড। বিট ০ হলে তা অসমর্থিত এবং ১ হলে সমর্থিত বোঝায়। বিট ০ চ্যানেল ০-এর সাথে সঙ্গতিপূর্ণ।LSB == channel 0MSB == channel 31 |
| ৮ | uint8*4 | সমর্থিত প্রস্তাবনা সূচক বিটফিল্ড | সমর্থিত প্রিম্বল সূচকগুলির বিটফিল্ড। বিট ০ সেট করা থাকলে তা অসমর্থিত এবং ১ সেট করা থাকলে সমর্থিত বোঝায়। বিট ০ প্রিম্বল সূচক ১-এর অনুরূপ।LSB == preamble index 1MSB == preamble index 32 |
| ১২ | uint8*4 | সমর্থিত কনফিগারেশন আইডি বিটফিল্ড | সমর্থিত UWB কনফিগারেশন আইডিগুলির বিটফিল্ড। বিট ০ সেট করা থাকলে তা অসমর্থিত, ১ সেট করা থাকলে তা সমর্থিত।LSB == config Id 0MSB == config Id 31 |
| ১৬ | uint8*2 | সমর্থিত সর্বনিম্ন পরিসীমা ব্যবধান | মিলিসেকেন্ডে দ্রুততম সমর্থিত রেঞ্জিং ব্যবধান নির্দেশ করে। অনুমোদিত মান (মিলিসেকেন্ডে):
|
| ১৮ | uint8 | সমর্থিত সর্বনিম্ন স্লট সময়কাল | মিলিসেকেন্ডে সর্বনিম্ন সমর্থিত স্লট সময়কাল নির্দেশ করে। উদাহরণস্বরূপ, যদি ডিভাইসটি ১ মিলিসেকেন্ড ফেরত দেয়, তবে ধরে নেওয়া হয় যে এটি ২ মিলিসেকেন্ড বা তার বেশি সময়কালের স্লটও সমর্থন করে। অনুমোদিত মান (মিলিসেকেন্ডে):
|
| ১৯ | সমর্থিত UWB ডিভাইস রোল বিটফিল্ড | সমর্থিত UWB রোলগুলোর বিটফিল্ড। উদাহরণস্বরূপ, যদি উভয়ই সমর্থিত হয়, তাহলে চূড়ান্ত ফিল্ডের মান হবে 0x3।
|
BLE CS Ranging Capability Response মেসেজ পেলোডটি নিম্নলিখিত সারণীতে সংক্ষেপে তুলে ধরা হলো:
| অক্টেট | ডেটা টাইপ | বর্ণনা | মূল্য |
|---|---|---|---|
| ০ | uint8 | রেঞ্জিং প্রযুক্তি আইডি | 0x1 - বিএলই সিএস |
| ১ | uint8 | আকার | BLE CS সক্ষমতার আকার ( টেকনোলজি আইডি এবং সাইজ ফিল্ড সহ) বাইটে। |
| ২ | uint8 | সমর্থিত নিরাপত্তা প্রকার বিটফিল্ড | BLE CS-এর জন্য সমর্থিত নিরাপত্তা প্রকারের বিটফিল্ড।
|
| ৩ | uint8*6 | ডিভাইসের ঠিকানা | BLE CS-এর জন্য ব্যবহৃত ডিভাইসের অ্যাড্রেস; বিগ-এন্ডিয়ান অর্ডারে। |
Wi-Fi NAN RTT Ranging Capability Response মেসেজ পেলোডটি নিম্নলিখিত সারণীতে সংক্ষেপে তুলে ধরা হলো:
| অক্টেট | ডেটা টাইপ | বর্ণনা | মূল্য |
|---|---|---|---|
| ০ | uint8 | রেঞ্জিং প্রযুক্তি আইডি | 0x2 - ওয়াই-ফাই ন্যান আরটিটি |
| ১ | uint8 | আকার | BLE RSSI সক্ষমতার আকার ( টেকনোলজি আইডি এবং সাইজ ফিল্ড সহ) বাইটে। |
| ২ | uint8 | সমর্থিত বৈশিষ্ট্য বিটফিল্ড | সমর্থিত বৈশিষ্ট্যসমূহের বিটফিল্ড।
|
| ৩ | uint8 | পর্যায়ক্রমিক পরিসর সমর্থন করে |
|
| ৪ | uint8 | সমর্থিত ব্যান্ডউইথ | এই তথ্য Wi-Fi NAN ব্যবহার করে অর্জনযোগ্য রেঞ্জিং নির্ভুলতা নির্ণয় করতে সাহায্য করে এবং অ্যাপগুলিকে রেঞ্জিংয়ের জন্য UWB, BLE CS, BLE RSSI, নাকি Wi-Fi NAN ব্যবহার করতে হবে, তা নির্ধারণ করতে সহায়তা করে।
|
| ৫ | uint8 | সমর্থিত রিসিভ চেইনের সংখ্যা | এই তথ্য Wi-Fi NAN ব্যবহার করে অর্জনযোগ্য রেঞ্জিং নির্ভুলতা নির্ণয় করতে সাহায্য করে এবং অ্যাপগুলিকে রেঞ্জিংয়ের জন্য UWB, BLE CS, BLE RSSI, নাকি Wi-Fi NAN ব্যবহার করতে হবে, তা নির্ধারণ করতে সহায়তা করে।
|
BLE RSSI Ranging Capability Response মেসেজ পেলোডটি নিম্নলিখিত সারণীতে সংক্ষেপে তুলে ধরা হলো:
| অক্টেট | ডেটা টাইপ | বর্ণনা | মূল্য |
|---|---|---|---|
| ০ | uint8 | রেঞ্জিং প্রযুক্তি আইডি | 0x3 - BLE RSSI |
| ১ | uint8 | আকার | BLE RSSI সক্ষমতার বাইটের আকার ( টেকনোলজি আইডি এবং সাইজ ফিল্ড সহ) বাইটে |
| ২ | uint8*6 | ডিভাইসের ঠিকানা | BLE RSSI-এর জন্য ব্যবহৃত ডিভাইসের অ্যাড্রেস; বিগ-এন্ডিয়ান অর্ডারে। |
রেঞ্জিং কনফিগারেশন বার্তা পেলোড
আকার (হেডারের আকার অন্তর্ভুক্ত নয়): পরিবর্তনশীল (সাধারণ অংশের ৪ বাইট এবং এর সাথে অন্তর্ভুক্ত প্রতিটি রেঞ্জিং টেকনোলজি বাইটের আকার)।
বিবরণ: এই বার্তাটি প্রেরক দ্বারা পাঠানো হয় এবং এতে সেই কনফিগারেশনগুলো থাকে যা দিয়ে প্রতিটি রেঞ্জিং প্রযুক্তি রেঞ্জিং শুরু করতে পারে। এই বার্তাটি পাওয়ার পর, উত্তরদাতা ডিভাইসটিকে অবশ্যই প্রতিটি নির্দেশিত রেঞ্জিং প্রযুক্তি দিয়ে রেঞ্জিং শুরু করার চেষ্টা করতে হবে। এই বার্তার পেলোডটি সাধারণ অংশ এবং রেঞ্জিং প্রযুক্তি-নির্দিষ্ট অংশ (UWB, BLE CS, Wi-Fi NAN RTT, BLE RSSI) নিয়ে গঠিত, যা নিম্নলিখিত সারণিগুলোতে দেখানো হয়েছে।
সাধারণ Ranging Configuration মেসেজ পেলোডটি নিম্নলিখিত সারণিতে সংক্ষেপে তুলে ধরা হলো:
| অক্টেট | ডেটা টাইপ | বর্ণনা | মূল্য |
|---|---|---|---|
| ০ | uint8*2 | রেঞ্জিং প্রযুক্তি কনফিগারেশন সেট বিটফিল্ড | রেঞ্জিং প্রযুক্তিগুলোর বিটফিল্ড, যেগুলোর জন্য এই মেসেজটিতে কনফিগারেশন ডেটা রয়েছে এবং যেগুলোর কনফিগারেশন প্যারামিটার অবশ্যই সেট করতে হবে।
|
| ২ | uint8*2 | বিটফিল্ড | আরএফইউ (RFU)-কে অবশ্যই রেঞ্জিং টেকনোলজিস কনফিগারেশন সেট বিটফিল্ড ফিল্ডের সমান মানে সেট করতে হবে। |
| ৪ | বাইট অ্যারে | রেঞ্জিং প্রযুক্তি কনফিগারেশন বাইট | প্রযুক্তি অনুসারে সংজ্ঞায়িত স্ট্রাকচারের পুনরাবৃত্ত ব্লক |
UWB Ranging Configuration মেসেজ পেলোডটি নিম্নলিখিত সারণীতে সংক্ষেপে তুলে ধরা হলো:
| অক্টেট | ডেটা টাইপ | বর্ণনা | মূল্য |
|---|---|---|---|
| ০ | uint8 | রেঞ্জিং প্রযুক্তি আইডি | 0x0 - UWB |
| ১ | uint8 | আকার | UWB কনফিগারেশনের আকার ( টেকনোলজি আইডি এবং সাইজ ফিল্ড সহ) বাইটে |
| ২ | uint8*2 | UWB ঠিকানা | ২ বাইট ডিভাইস UWB ঠিকানা |
| ৪ | uint8*4 | সেশন আইডি | সেশন আইডি তৈরি হয়েছে। সেশন আইডি হলো ফোন এবং পেরিফেরালের মধ্যেকার রেঞ্জিং সেশনের একটি অনন্য শনাক্তকারী। |
| ৮ | uint8 | নির্বাচিত কনফিগারেশন আইডি | নির্বাচিত কনফিগারেশন আইডি নম্বরটি পূর্ণসংখ্যায় প্রকাশ করা হয়। এই কনফিগারেশন আইডিটি UWB রেঞ্জিং সেশনের জন্য প্রয়োজনীয় টাইমিং প্যারামিটার এবং নিরাপত্তার ধরন নির্দিষ্ট করে। |
| ৯ | uint8 | নির্বাচিত চ্যানেল | UWB রেঞ্জিং সেশনের জন্য নির্বাচিত চ্যানেল |
| ১০ | uint8 | নির্বাচিত প্রস্তাবনা সূচক | UWB রেঞ্জিং সেশনের জন্য নির্বাচিত প্রস্তাবনা সূচক |
| ১১ | uint8*2 | নির্বাচিত পরিসীমা ব্যবধান | নির্বাচিত রেঞ্জিং ব্যবধানের হার মিলিসেকেন্ডে। অনুমোদিত মান (মিলিসেকেন্ডে):
|
| ১৩ | uint8 | নির্বাচিত স্লটের সময়কাল | নির্বাচিত স্লটের সময়কাল মিলিসেকেন্ডে। অনুমোদিত মান (মিলিসেকেন্ডে):
|
| ১৪ | uint8 | সেশন কী দৈর্ঘ্য | সেশন কী-এর দৈর্ঘ্য (বাইটে) |
| ১৫ | বাইট অ্যারে | সেশন চাবি | সেশন কী। যদি S-STS ব্যবহার করা হয়, তবে প্রথম দুটি বাইট হলো ভেন্ডর আইডি এবং পরবর্তী ছয়টি বাইট হলো স্ট্যাটিক এসটিএস IV। যদি P-STS ব্যবহার করা হয়, তবে এটি একটি ১৬ বাইট বা ৩২ বাইটের সেশন কী। ব্যবহৃত নিরাপত্তার ধরন কনফিগ আইডি দ্বারা নির্ধারিত হয়। |
| বিভিন্ন | uint8*2 | দেশের কোড | ISO 3166-1 আলফা-2 দেশের কোড, যা দুটি ASCII অক্ষর দ্বারা উপস্থাপিত হয়। |
| বিভিন্ন | uint8 | নির্বাচিত ডিভাইসের ভূমিকা |
|
| বিভিন্ন | uint8 | নির্বাচিত ডিভাইস মোড |
|
BLE CS Ranging Configuration মেসেজ পেলোডটি নিম্নলিখিত সারণীতে সংক্ষেপে তুলে ধরা হলো:
| অক্টেট | ডেটা টাইপ | বর্ণনা | মূল্য |
|---|---|---|---|
| ০ | uint8 | রেঞ্জিং প্রযুক্তি আইডি | 0x1 - বিএলই সিএস |
| ১ | uint8 | আকার | বাইটে BLE CS কনফিগারেশনের আকার ( টেকনোলজি আইডি এবং সাইজ ফিল্ড সহ) |
| ২ | uint8 | নির্বাচিত নিরাপত্তা প্রকার | নির্বাচিত নিরাপত্তা ধরণ। অনুমোদিত মানসমূহ:
|
| ৩ | uint8*6 | ডিভাইসের ঠিকানা | BLE CS-এর জন্য ব্যবহৃত ডিভাইসের ঠিকানা; বিগ-এন্ডিয়ান ক্রমে |
Wi-Fi NAN RTT Ranging Configuration মেসেজ পেলোডটি নিম্নলিখিত সারণীতে সংক্ষেপে তুলে ধরা হলো:
| অক্টেট | ডেটা টাইপ | বর্ণনা | মূল্য |
|---|---|---|---|
| ০ | uint8 | রেঞ্জিং প্রযুক্তি আইডি | 0x2 - ওয়াই-ফাই ন্যান আরটিটি |
| ১ | uint8 | আকার | ওয়াই-ফাই ন্যান আরটিটি কনফিগারেশনের আকার ( টেকনোলজি আইডি এবং সাইজ ফিল্ড সহ) বাইটে |
| ২ | uint8 | পরিষেবার নামের দৈর্ঘ্য | সার্ভিস নেম ফিল্ডের দৈর্ঘ্য বাইটে। Wi-Fi Aware Specification v4.0 সেকশন 1.3.3 টেবিল 1. সংজ্ঞাসমূহ দেখুন। |
| ৩ | বাইট অ্যারে | পরিষেবার নাম | পরিষেবার নাম। Wi-Fi Aware Specification v4.0-এর ১.৩.৩ অনুচ্ছেদের সারণি ১. সংজ্ঞাসমূহ দেখুন। |
| বিভিন্ন | uint8 | ডিভাইসের ভূমিকা |
|
| বিভিন্ন | uint8 | পর্যায়ক্রমিক পরিসর ব্যবহার করুন |
|
BLE RSSI Ranging Configuration মেসেজ পেলোডটি নিম্নলিখিত সারণীতে সংক্ষেপে তুলে ধরা হলো:
| অক্টেট | ডেটা টাইপ | বর্ণনা | মূল্য |
|---|---|---|---|
| ০ | uint8 | রেঞ্জিং প্রযুক্তি আইডি | 0x3 - BLE RSSI |
| ১ | uint8 | আকার | বাইটে BLE RSSI কনফিগারেশনের আকার ( টেকনোলজি আইডি এবং সাইজ ফিল্ড সহ) |
| ২ | uint8*6 | ডিভাইসের ঠিকানা | BLE RSSI-এর জন্য ব্যবহৃত ডিভাইসের অ্যাড্রেস; বিগ-এন্ডিয়ান অর্ডারে। |
রেঞ্জিং কনফিগারেশন প্রতিক্রিয়া বার্তা পেলোড
আকার (হেডারের আকার অন্তর্ভুক্ত নয়): ২ বাইট
বিবরণ: এই বার্তাটি রেসপন্ডার দ্বারা Ranging Configuration বার্তার প্রতিক্রিয়া হিসাবে পাঠানো হয়। এই বার্তাটি ঐচ্ছিক; এটি কেবল তখনই প্রয়োজন হয় যখন ব্যবহৃত যোগাযোগ চ্যানেলের প্রতিটি অনুরোধের জন্য একটি সুস্পষ্ট প্রতিক্রিয়ার প্রয়োজন হয়।
Ranging Configuration Response মেসেজ পেলোডটি নিম্নলিখিত সারণিতে সংক্ষেপে তুলে ধরা হলো:
| অক্টেট | ডেটা টাইপ | বর্ণনা | মূল্য |
|---|---|---|---|
| ০ | uint8*2 | রেঞ্জিং টেকনোলজিস কনফিগারেশন সফলভাবে বিটফিল্ডে সেট করা হয়েছে। | সফলভাবে সেট করা রেঞ্জিং টেকনোলজিগুলোর বিটফিল্ড। যদি টেকনোলজিটির জন্য অনুরোধ করা হয় এবং তা সফলভাবে সেট করা হয়, তাহলে এই বিটফিল্ডটি রেঞ্জিং টেকনোলজি বিটটিকে ১-এ সেট করে, অন্যথায় ০-তে সেট করে।
|
রেঞ্জিং বন্ধ করুন বার্তা পেলোড
আকার (হেডারের আকার অন্তর্ভুক্ত নয়): ২ বাইট
বিবরণ: নির্দিষ্ট রেঞ্জিং প্রযুক্তি ব্যবহার করে রেঞ্জিং বন্ধ করার সময় হলে ইনিশিয়েটর ডিভাইসটি এই বার্তাটি পাঠায়।
Stop Ranging মেসেজের পেলোড নিম্নলিখিত সারণীতে সংক্ষেপে তুলে ধরা হলো:
| অক্টেট | ডেটা টাইপ | বর্ণনা | মূল্য |
|---|---|---|---|
| ০ | uint8*2 | বিটফিল্ড বন্ধ করার জন্য বিভিন্ন প্রযুক্তি | যেসব রেঞ্জিং টেকনোলজিকে অবশ্যই রেঞ্জিং বন্ধ করতে হবে, তাদের বিটফিল্ড। বিটের মান ১ হলে তা নির্দেশ করে যে রেঞ্জিং টেকনোলজিটিকে অবশ্যই রেঞ্জিং বন্ধ করতে হবে, এবং ০ হলে তা নির্দেশ করে যে রেঞ্জিং টেকনোলজিটি হয় প্রথম থেকেই রেঞ্জিং করছিল না, অথবা যদি এটি আগে থেকেই রেঞ্জিং করে থাকে তবে এটিকে অবশ্যই রেঞ্জিং চালিয়ে যেতে হবে। কিছু রেঞ্জিং টেকনোলজির (যেমন CS) ক্ষেত্রে এটি একটি নো-অপ, কারণ রেঞ্জিং শুধুমাত্র ইনিশিয়েটরের দিক থেকেই শুরু এবং বন্ধ করা হয়।
|
রেঞ্জিং প্রতিক্রিয়া বার্তার পেলোড বন্ধ করুন
আকার (হেডারের আকার অন্তর্ভুক্ত নয়): ২ বাইট
বিবরণ: এই বার্তাটি Stop Ranging বার্তার জবাবে রেসপন্ডার দ্বারা পাঠানো হয়। এই বার্তাটি ঐচ্ছিক; শুধুমাত্র তখনই এর প্রয়োজন হয় যখন ব্যবহৃত যোগাযোগ চ্যানেলের জন্য প্রতিটি অনুরোধের একটি সুস্পষ্ট প্রতিক্রিয়ার প্রয়োজন হয়।
Stop Ranging Response মেসেজের পেলোডটি নিম্নলিখিত সারণিতে সংক্ষেপে তুলে ধরা হলো:
| অক্টেট | ডেটা টাইপ | বর্ণনা | মূল্য |
|---|---|---|---|
| ০ | uint8*2 | রেঞ্জিং প্রযুক্তি সফলভাবে বিটফিল্ড বন্ধ করে দিয়েছে। | যেসব রেঞ্জিং টেকনোলজি সফলভাবে বন্ধ হয়েছে, সেগুলোর বিটফিল্ড। যদি টেকনোলজিটি বন্ধ করার জন্য অনুরোধ করা হয় এবং তা সফলভাবে বন্ধ হয়, তবে এই বিটফিল্ডটি রেঞ্জিং টেকনোলজি বিটটির মান ১ নির্ধারণ করে, অন্যথায় এর মান ০ হয়।
|
সংস্করণ
স্পেসিফিকেশনের সংস্করণটি প্রতিটি বার্তার হেডারে অন্তর্ভুক্ত থাকে। যখন ডিভাইসগুলোর (প্রবর্তক বা উত্তরদাতা) মধ্যে একটি অন্য ডিভাইসের চেয়ে পুরোনো সংস্করণে থাকে, তখন যোগাযোগ কীভাবে পরিচালিত হবে তা এই বিভাগে সংজ্ঞায়িত করা হয়েছে।
ক্ষেত্র ১: সংযোগ-ভিত্তিক যোগাযোগ চ্যানেল
এই বিভাগে এমন ক্ষেত্রগুলি বর্ণনা করা হয়েছে যেখানে সংযোগ-ভিত্তিক যোগাযোগ চ্যানেল ব্যবহৃত হয় এবং সূচনাকারী ডিভাইস দ্বারা প্রেরিত প্রথম বার্তাটি হলো Ranging Capability Request ।
ক্ষেত্র ১.ক: প্রবর্তক স্পেসিফিকেশনের নতুন সংস্করণ সমর্থন করে, উত্তরদাতা পুরোনো সংস্করণ সমর্থন করে।
ইনিশিয়েটর ডিভাইসটি নতুন সংস্করণসহ Ranging Capability Request মেসেজটি পাঠায়। রেসপন্ডার ডিভাইসটি শুধুমাত্র পুরোনো সংস্করণটি সমর্থন করে, তাই এটি সেটি দিয়েই সাড়া দেয় এবং এরপর মেসেজ আদান-প্রদানের বাকি অংশের জন্য রেসপন্ডারের পুরোনো সংস্করণটিই ব্যবহৃত হয়। এর মানে হলো, Ranging Capability Request মেসেজটিকে অবশ্যই ব্যাকওয়ার্ড কম্প্যাটিবল হতে হবে।
ক্ষেত্র ১.খ: প্রবর্তক স্পেসিফিকেশনের পুরোনো সংস্করণ সমর্থন করে, উত্তরদাতা নতুন সংস্করণ সমর্থন করে।
রেসপন্ডার ডিভাইসটি দেখতে পায় যে ইনিশিয়েটর ডিভাইসটি নতুন সংস্করণটি ব্যবহার করতে সক্ষম নয়, তাই এটি শুধুমাত্র সেই পুরোনো সংস্করণটি ব্যবহার করে বার্তা পাঠায় যা প্রাথমিকভাবে ইনিশিয়েটর ডিভাইসটি অনুরোধ করেছিল।
কেস ২: বিজ্ঞাপন-ভিত্তিক যোগাযোগ চ্যানেল
এই বিভাগে এমন সব ক্ষেত্র বর্ণনা করা হয়েছে যেখানে বিজ্ঞাপন-ভিত্তিক যোগাযোগ চ্যানেল ব্যবহার করা হয় এবং রেসপন্ডার ডিভাইসটি কোনো প্রাথমিক অনুরোধ ছাড়াই সরাসরি Ranging Capability Request বিজ্ঞাপন দেয়।
ক্ষেত্র ২.ক: প্রবর্তক স্পেসিফিকেশনের নতুন সংস্করণ সমর্থন করে, উত্তরদাতা পুরোনো সংস্করণ সমর্থন করে।
Ranging Capability Response বিজ্ঞাপনে নির্ধারিত পুরোনো সংস্করণটি বাকি যোগাযোগের জন্য ব্যবহৃত হয়।
ক্ষেত্র ২.খ: প্রবর্তক স্পেসিফিকেশনের পুরোনো সংস্করণ সমর্থন করে, উত্তরদাতা নতুন সংস্করণ সমর্থন করে।
Ranging Capability Response অ্যাডভার্টাইজমেন্টের নতুন সংস্করণটি অবশ্যই ব্যাকওয়ার্ড কম্প্যাটিবল হতে হবে, যাতে ইনিশিয়েটর ডিভাইসটি নতুন সংস্করণ ব্যবহার করা সত্ত্বেও বার্তাটি পড়তে পারে। এরপর ইনিশিয়েটর ডিভাইসটি তার সমর্থিত পুরোনো সংস্করণটি ব্যবহার করে Ranging Configuration বার্তাটি পাঠায়। যোগাযোগের বাকি অংশের জন্য এই সংস্করণটিই ব্যবহৃত হয়।
Ranging Capability Response পূর্ববর্তী সংস্করণের সাথে সামঞ্জস্যপূর্ণ (backward compatible) রাখার জন্য, এই স্পেসিফিকেশনের পরবর্তী সংস্করণে Ranging Capability Response মেসেজ পেলোডে যোগ করা যেকোনো নতুন ফিল্ড অবশ্যই পেলোডের শেষে যুক্ত করতে হবে এবং বিদ্যমান কোনো ফিল্ড পরিবর্তন করা যাবে না। কনফিগারেশন পার্স করার সময়, যদি নির্দেশিত আকার প্রত্যাশার চেয়ে বড় হয়, তবে যে ডিভাইসগুলো শুধুমাত্র স্পেসিফিকেশনের পুরোনো সংস্করণটি বুঝতে পারে, তাদের দ্বারা অতিরিক্ত ফিল্ডগুলো অবশ্যই উপেক্ষা করতে হবে।
খণ্ডিতকরণ
এই স্পেসিফিকেশনটি কমিউনিকেশন চ্যানেল নিরপেক্ষ, তাই ব্যবহৃত কমিউনিকেশন চ্যানেলের ট্রান্সফার প্যাকেটে একটিমাত্র মেসেজ আঁটার জন্য খুব বড় হলে, মেসেজ পেলোডকে কীভাবে খণ্ডিত করতে হবে তা এটি সংজ্ঞায়িত করে না। রেঞ্জিং মডিউল প্রতিটি মেসেজকে তার পূর্ণাঙ্গ রূপে গ্রহণ করার প্রত্যাশা করে। এই খণ্ডীকরণের দায়িত্ব OOB কমিউনিকেশন চ্যানেলের বাস্তবায়নকারীর উপর বর্তায়।
রেঞ্জিং-প্রযুক্তি-নির্দিষ্ট
এই অংশে রেঞ্জিং প্রযুক্তি সম্পর্কিত নির্দিষ্ট বিবরণ রয়েছে।
আল্ট্রা-ওয়াইডব্যান্ড (UWB) এর নির্দিষ্ট বিবরণ
এই বিভাগে আল্ট্রা-ওয়াইডব্যান্ড সম্পর্কিত নির্দিষ্ট বিবরণ বর্ণনা করা হয়েছে।
কনফিগারেশন আইডি
UWB-এর জন্য আদান-প্রদান করা OOB কনফিগারেশন ডেটাতে, একটি UWB রেঞ্জিং সেশন শুরু করার জন্য প্রয়োজনীয় কনফিগারযোগ্য প্যারামিটারগুলোর সম্পূর্ণ সেট থাকে না। এর কারণ হলো, কিছু প্যারামিটার নির্বাচিত কনফিগ আইডি দ্বারা পরোক্ষভাবে নির্বাচিত হয়ে যায়।
প্রতিটি কনফিগ আইডি হলো পূর্বনির্ধারিত কিছু UWB কনফিগারেশন প্যারামিটারের একটি সেট, যা UwbRangingParams এ নথিভুক্ত করা থাকে। রেসপন্ডার ডিভাইসটি ক্যাপাবিলিটি রেসপন্স মেসেজের অংশ হিসেবে তার সমর্থিত সমস্ত কনফিগ আইডির একটি তালিকা পাঠায়, এবং ইনিশিয়েটর সেই সমর্থিত কনফিগ আইডিগুলোর মধ্যে থেকে একটি বেছে নেয় যা ব্যবহৃত হয়। এর ফলে OOB চলাকালীন তুলনামূলকভাবে কম সংখ্যক কনফিগ প্যারামিটার বিনিময় করা সম্ভব হয়। এটি UWB-এর মাধ্যমে রেঞ্জিং করার জন্য ব্যবহৃত হতে পারে এমন প্যারামিটারগুলোর সম্ভাব্য সংমিশ্রণের সংখ্যাও সীমিত করে, যার ফলে শুধুমাত্র অনুমোদিত সংমিশ্রণগুলো পরীক্ষা করা সম্ভব হয়।
প্রতিটি UWB সেশনের পরে সক্ষমতা অনুরোধ করা হচ্ছে
একটি চলমান UWB সেশন বন্ধ করার পর এবং একটি নতুন UWB সেশন শুরু করার আগে, ইনিশিয়েটর ডিভাইসটিকে অবশ্যই রেসপন্ডার ডিভাইসের ক্যাপাবিলিটিগুলোর জন্য অনুরোধ করতে হবে এবং কনফিগারেশন প্যারামিটারগুলো পুনরায় সেট করতে হবে, কারণ বর্তমান রেঞ্জিং সেশনটি শেষ হওয়ার সাথে সাথেই UWB অ্যাড্রেস পরিবর্তিত হতে পারে।
BLE চ্যানেল সাউন্ডিং (CS) এর নির্দিষ্ট বিবরণ
এই বিভাগে চ্যানেল সাউন্ডিং-এর নির্দিষ্ট বিবরণ বর্ণনা করা হয়েছে।
ডিভাইসগুলোর মধ্যে প্রয়োজনীয় সংযোগ
চ্যানেল সাউন্ডিং ব্যবহার করে রেঞ্জিং কাজ করার জন্য ইনিশিয়েটর এবং রেসপন্ডার ডিভাইসের মধ্যে একটি বিদ্যমান বন্ড থাকা আবশ্যক। এই স্পেসিফিকেশনে ডিভাইসগুলোর মধ্যে বন্ড তৈরি করার কোনো উপায় দেওয়া নেই। রেঞ্জিং এপিআই-এর ব্যবহারকারীকেই ডিভাইসগুলোর মধ্যে এই বন্ডটি স্থাপন করতে হবে।
CS এর জন্য প্রতিক্রিয়াকারীর পক্ষ থেকে প্রয়োজনীয় পদক্ষেপ
UWB-তে, উভয় ডিভাইসকেই স্পষ্টভাবে UWB স্টার্ট রেঞ্জিং এবং স্টপ রেঞ্জিং API কল করতে হয়। এর বিপরীতে, CS-এর ক্ষেত্রে, শুধুমাত্র ইনিশিয়েটর ডিভাইসটিকেই ব্লুটুথ (BT) স্ট্যাক কল করে CS রেঞ্জিং শুরু করতে হয়। রেসপন্ডার সাইডের বাকি ইনিশিয়ালাইজেশন BT-এর মাধ্যমে ইন-ব্যান্ডেই সম্পন্ন হয়। এর মানে হলো, CS-এর জন্য Ranging Configuration মেসেজ বা Stop Ranging মেসেজ পাওয়ার পর, যদি BT চালু থাকে, তাহলে রেসপন্ডার সাইডকে কিছুই করতে হয় না। রেসপন্ডার ডিভাইসটি এই মেসেজগুলোকে UI আপডেট করার জন্য বা, উদাহরণস্বরূপ, ডিভাইসের LED-গুলো ব্লিঙ্ক করানোর জন্য একটি ট্রিগার হিসেবে ব্যবহার করতে পারে।