অ্যান্ড্রয়েড ৯-এর ওয়াই-ফাই রাউন্ড ট্রিপ টাইম (RTT) ফিচারটি সাপোর্টিং ডিভাইসগুলোকে অন্যান্য সাপোর্টিং ডিভাইসের দূরত্ব পরিমাপ করতে সক্ষম করে: সেগুলো অ্যাক্সেস পয়েন্ট (AP) হোক বা ওয়াই-ফাই অ্যাওয়্যার পিয়ার (যদি ডিভাইসটিতে ওয়াই-ফাই অ্যাওয়্যার সাপোর্ট করা থাকে)। IEEE 802.11mc এবং IEEE 802.11az প্রোটোকলের (যা অ্যান্ড্রয়েড ১৫ থেকে উপলব্ধ) উপর ভিত্তি করে নির্মিত এই ফিচারটি অ্যাপগুলোকে উন্নততর লোকেশন নির্ভুলতা এবং সচেতনতা ব্যবহার করতে সক্ষম করে।
উদাহরণ এবং উৎস
এই ফিচারটি ব্যবহার করতে, ভেন্ডর এইচএএল (Vendor HAL) ইন্টারফেসটি ইমপ্লিমেন্ট করুন। অ্যান্ড্রয়েড ১৪ এবং তার পরবর্তী সংস্করণগুলোতে, ভেন্ডর এইচএএল ইন্টারফেসটি এআইডিএল (AIDL) ব্যবহার করে সংজ্ঞায়িত করা হয়। অ্যান্ড্রয়েড ১৩ এবং তার পূর্ববর্তী সংস্করণগুলোতে, ভেন্ডর এইচএএল ইন্টারফেসটি এইচআইডিএল (HIDL) ব্যবহার করে সংজ্ঞায়িত করা হয়। অ্যান্ড্রয়েড ৮.০-তে, এইচআইডিএল পূর্ববর্তী হার্ডওয়্যার অ্যাবস্ট্রাকশন লেয়ার (HAL) কাঠামোকে প্রতিস্থাপন করেছে, যা ইন্টারফেস এবং প্যাকেজের মধ্যে সংগৃহীত টাইপ ও মেথড কলগুলো নির্দিষ্ট করার মাধ্যমে ইমপ্লিমেন্টেশনকে সুবিন্যস্ত করতে ব্যবহৃত হতো।
Wi-Fi RTT ফিচারটি ব্যবহার করতে Wi-Fi ইন্টারফেসটি অনুসরণ করুন। কোন ইন্টারফেসটি ব্যবহার করা হয়েছে তার উপর নির্ভর করে, এটি হলো:
- AIDL:
hardware/interfaces/wifi/aidl - HIDL:
hardware/interfaces/wifi/1.0বা তার পরবর্তী সংস্করণ।
AIDL এবং HIDL ইন্টারফেসগুলোর সাথে এর সম্পর্ক কীভাবে কাজ করে, তা দেখতে আপনি লিগ্যাসি Wi-Fi HAL-টি দেখতে পারেন: hardware/libhardware_legacy/+/android17-release/include/hardware_legacy/rtt.h ।
বাস্তবায়ন
Wi-Fi RTT বাস্তবায়ন করতে হলে, আপনাকে ফ্রেমওয়ার্ক এবং HAL/ফার্মওয়্যার উভয় সমর্থনই প্রদান করতে হবে:
কাঠামো:
- AOSP কোড
- Wi-Fi RTT সক্রিয় করুন: একটি ফিচার ফ্ল্যাগ প্রয়োজন।
Wi-Fi RTT (IEEE 802.11mc অথবা IEEE 802.11az) HAL সাপোর্ট (যার জন্য ফার্মওয়্যার সাপোর্ট প্রয়োজন)
এই বৈশিষ্ট্যটি বাস্তবায়ন করতে, Wi-Fi AIDL বা HIDL ইন্টারফেসটি প্রয়োগ করুন এবং ফিচার ফ্ল্যাগটি সক্রিয় করুন:
device/<oem>/<device>ফোল্ডারে অবস্থিতdevice.mkফাইলে, Wi-Fi RTT ফিচারটির সাপোর্ট অন্তর্ভুক্ত করার জন্যPRODUCT_COPY_FILESএনভায়রনমেন্ট ভেরিয়েবলটি পরিবর্তন করুন:PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
অন্যথায়, এই বৈশিষ্ট্যের জন্য প্রয়োজনীয় সবকিছু AOSP-তে অন্তর্ভুক্ত রয়েছে।
MAC র্যান্ডমাইজেশন
গোপনীয়তা বাড়ানোর জন্য, Wi-Fi RTT লেনদেনের সময় ব্যবহৃত MAC অ্যাড্রেসটি অবশ্যই র্যান্ডমাইজড হতে হবে, অর্থাৎ, এটি Wi-Fi ইন্টারফেসের বিল্ট-ইন MAC অ্যাড্রেসের সাথে মিলবে না। তবে, ব্যতিক্রম হিসেবে, যখন কোনো ডিভাইস একটি AP-এর সাথে সংযুক্ত থাকে, তখন সেটি সেই AP-এর সাথে বা অন্য AP-গুলোর সাথে যেকোনো RTT লেনদেনের জন্য তার সংযুক্ত MAC অ্যাড্রেসটি ব্যবহার করতে পারে।
বৈধতা
এই ফিচারটির জন্য অ্যান্ড্রয়েড কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) টেস্ট বিদ্যমান। ফিচারটি কখন সক্রিয় করা হয় তা CTS শনাক্ত করে এবং স্বয়ংক্রিয়ভাবে এর সাথে সম্পর্কিত টেস্টগুলো অন্তর্ভুক্ত করে। এই ফিচারটি ভেন্ডর টেস্ট স্যুট (VTS) ব্যবহার করেও পরীক্ষা করা যেতে পারে।
ইউনিট পরীক্ষা
Wi-Fi RTT প্যাকেজের পরীক্ষাগুলো নিম্নলিখিতভাবে চালানো হয়:
পরিষেবা পরীক্ষা:
atest com.android.server.wifi.rttব্যবস্থাপক পরীক্ষা:
atest android.net.wifi.rttসিটিএস
এই ফিচারের জন্য অ্যান্ড্রয়েড কম্প্যাটিবিলিটি টেস্ট স্যুট (CTS) টেস্ট বিদ্যমান। ফিচারটি কখন সক্রিয় করা হয় তা CTS শনাক্ত করে এবং স্বয়ংক্রিয়ভাবে এর সাথে সম্পর্কিত টেস্টগুলো অন্তর্ভুক্ত করে। পরীক্ষাধীন ডিভাইসটির সীমার মধ্যে অবশ্যই একটি অ্যাক্সেস পয়েন্ট থাকতে হবে যা Wi-Fi RTT (IEEE 802.11mc) সমর্থন করে।
নিম্নলিখিত উপায়ে CTS টেস্টগুলো চালু করা যেতে পারে:
atest WifiRttTestক্রমাঙ্কন
Wi-Fi RTT-এর ভালো পারফরম্যান্সের জন্য, 802.11mc বা 802.11az প্রোটোকলে প্রাপ্ত রেঞ্জগুলো এই বিভাগে বর্ণিত মূল পারফরম্যান্স সূচকগুলোর (KPIs) মধ্যে নির্ভুল হওয়া উচিত।
11mc প্রোটোকলের জন্য, তালিকাভুক্ত ব্যান্ডউইথগুলোতে (80 MHz, 40 MHz, 20 MHz) এবং 8-এর একটি বার্স্ট সাইজে, রেঞ্জ অনুমানের জন্য KPI-টি ত্রুটির 90তম পার্সেন্টাইলে নিম্নলিখিত নির্ভুলতা অর্জন করবে বলে আশা করা হচ্ছে।
- ৮০ মেগাহার্টজ: ২ মিটার
- ৪০ মেগাহার্টজ: ৪ মিটার
- ২০ মেগাহার্টজ: ৮ মিটার
11az প্রোটোকলের ক্ষেত্রে, অ্যান্টেনা MIMO কনফিগারেশন এবং লং ট্রেনিং ফিল্ড (LTF) রিপিটেশন নির্ভুলতাকে প্রভাবিত করে। একটি সাধারণ মোবাইল ফোন (২টি অ্যান্টেনা ব্যবহার করে) এবং অ্যাক্সেস পয়েন্ট (৪টি অ্যান্টেনা) সহ, সিস্টেমটিতে একটি 2x4 MIMO কনফিগারেশন থাকে। এই ধরনের কনফিগারেশনের জন্য, LTF রিপিটেশন ফ্যাক্টর দুই এবং তালিকাভুক্ত ব্যান্ডউইথগুলিতে (160 MHz, 80 MHz, 40 MHz, 20 MHz) ব্যবহার করলে, রেঞ্জ অনুমানের জন্য KPI-টি ত্রুটির ৯০তম পার্সেন্টাইলে নিম্নলিখিত নির্ভুলতা অর্জন করবে বলে আশা করা যায়।
- ১৬০ মেগাহার্টজ: ০.৫ মিটার
- ৮০ মেগাহার্টজ: ১ মিটার
- ৪০ মেগাহার্টজ: ২ মিটার
- ২০ মেগাহার্টজ: ৪ মিটার
ফিচারটির বাস্তবায়ন সঠিকভাবে কাজ করছে কিনা তা যাচাই করার জন্য ক্যালিব্রেশন টেস্টিং প্রয়োজন।
ক্রমবর্ধমান দূরত্বে RTT দ্বারা আনুমানিক রেঞ্জের সাথে গ্রাউন্ড ট্রুথ রেঞ্জের তুলনা করে এটি অর্জন করা যেতে পারে। প্রাথমিক সামঞ্জস্যের জন্য, আমরা সুপারিশ করি যে আপনি RTT দ্বারা ক্যালিব্রেটেড বলে পরিচিত একটি ডিভাইসের সাথে আপনার সমাধানটি যাচাই করুন। আমরা নিম্নলিখিত শর্তগুলির অধীনে রেঞ্জ ক্যালিব্রেশন পরীক্ষা করার সুপারিশ করি:
- একটি বড় খোলা গবেষণাগার, অথবা এমন একটি করিডোর যেখানে প্রচুর ধাতব বস্তু নেই, যা মাল্টি-পাথের অস্বাভাবিকভাবে উচ্চ ঘটনার কারণ হতে পারে।
- কমপক্ষে ২৫ মিটার দীর্ঘ একটি দৃষ্টিসীমার (LOS) পথ বা ট্র্যাক।
- ট্র্যাকের এক প্রান্ত থেকে অন্য প্রান্ত পর্যন্ত ০.৫ মিটার ব্যবধানে চিহ্নিতকারী।
ট্র্যাকের এক প্রান্তে মেঝে থেকে ২০ সেমি উপরে একটি আরটিটি (RTT) সক্ষম অ্যাক্সেস পয়েন্ট সুরক্ষিত করার একটি জায়গা, এবং মেঝে থেকে ২০ সেমি উপরে একটি অ্যান্ড্রয়েড ফোন (বা পরীক্ষাধীন অন্য কোনো অ্যান্ড্রয়েড মোবাইল ডিভাইস)-এর জন্য একটি চলনযোগ্য মাউন্ট, যা ট্র্যাক বরাবর সরানো যায় এবং ০.৫ মিটার চিহ্নিত স্থানের সাথে সারিবদ্ধ করা যায়।
আমরা সুপারিশ করছি যে আপনি প্রতিটি মার্কারে প্রবেশ বিন্দু থেকে দূরত্বের সাথে ৫০টি রেঞ্জিং ফলাফল রেকর্ড করুন। প্রতিটি মার্কার অবস্থানের জন্য রেঞ্জ গড় এবং ভেদাঙ্কের মতো পরিসংখ্যান গণনা করা উচিত।
ধাপ ৫-এর ফলাফল থেকে, গ্রাউন্ড ট্রুথ (x-অক্ষ) বনাম আনুমানিক রেঞ্জ (y-অক্ষ)-এর জন্য একটি চার্ট আঁকা যেতে পারে এবং একটি বেস্ট ফিট রিগ্রেশন লাইন অনুমান করা যেতে পারে। আদর্শ ডিভাইস ক্যালিব্রেশনের ফলে y-অক্ষে ০.০ মিটার অফসেট সহ ১.০ গ্রেডিয়েন্টের একটি লাইন পাওয়া যাবে। এই মানগুলো থেকে বিচ্যুতি গ্রহণযোগ্য, যদি তা সংশ্লিষ্ট ব্যান্ডউইথের জন্য নির্ধারিত KPI-এর মধ্যে থাকে। যদি ফলাফল KPI-এর বাইরে চলে যায়, তবে আমরা আপনাকে ডিভাইস ফিচারটি পুনরায় ক্যালিব্রেট করার পরামর্শ দিই, যাতে ফলাফলগুলো KPI স্পেসিফিকেশনের মধ্যে আনা যায়।