ডেস্কটপ হেড ইউনিট (DHU) আপনার ডেভেলপমেন্ট মেশিনকে একটি অ্যান্ড্রয়েড অটো হেড ইউনিটের অনুকরণ করতে দেয়, যার ফলে আপনি অ্যান্ড্রয়েড অটো অ্যাপ চালাতে ও পরীক্ষা করতে পারেন। DHU উইন্ডোজ, ম্যাকওএস এবং লিনাক্স সিস্টেমে চলে।
DHU ইনস্টল করার পরে, আপনি 'Run the DHU'- তে বর্ণিত সমর্থিত সংযোগ পদ্ধতিগুলোর মধ্যে একটি ব্যবহার করে আপনার মোবাইল ডিভাইসটিকে এর সাথে সংযুক্ত করে আপনার Android Auto অ্যাপগুলো পরীক্ষা করতে পারেন।
DHU সম্পর্কিত বাগ রিপোর্ট করতে বা ফিচারের অনুরোধ জানাতে ইস্যু ট্র্যাকার ব্যবহার করুন।
ডিএইচইউ ইনস্টল করুন
আপনার ডেভেলপমেন্ট মেশিনে DHU ইনস্টল করতে:
- "ডিভাইসের ডেভেলপার অপশন কনফিগার করুন" অংশে বর্ণিত পদ্ধতি অনুযায়ী অ্যান্ড্রয়েড ৯ (এপিআই লেভেল ২৮) বা তার চেয়ে উচ্চতর সংস্করণে চালিত মোবাইল ডিভাইসে ডেভেলপার মোড চালু করুন।
- ডিভাইসটিতে আপনার অ্যাপটি কম্পাইল ও ইনস্টল করুন।
- ডিভাইসটিতে অ্যান্ড্রয়েড অটো ইনস্টল করুন। যদি অ্যান্ড্রয়েড অটো আগে থেকেই ইনস্টল করা থাকে, তবে নিশ্চিত করুন যে আপনি সর্বশেষ সংস্করণটি ব্যবহার করছেন।
অ্যান্ড্রয়েড স্টুডিওতে, এসডিকে ম্যানেজার খুলুন এবং এসডিকে টুলস ট্যাবে গিয়ে অ্যান্ড্রয়েড অটো ডেস্কটপ হেড ইউনিট এমুলেটর প্যাকেজটি ডাউনলোড করুন।

এসডিকে ম্যানেজার ডিএইচইউ ২.০ দেখাচ্ছে। DHU-টি
SDK_LOCATION /extras/google/auto/ডিরেক্টরিতে ইনস্টল করা হয়।Linux বা macOS সিস্টেমে, DHU বাইনারিটিকে এক্সিকিউটেবল করার জন্য ওই ডিরেক্টরিতে নিম্নলিখিত কমান্ডটি চালান:
chmod +x ./desktop-head-unitলিনাক্সের জন্য অতিরিক্ত পদক্ষেপ
আপনি যদি একটি লিনাক্স সিস্টেমে DHU সংস্করণ 2.x চালান, তাহলে আপনাকে কিছু অতিরিক্ত লাইব্রেরি ইনস্টল করতে হবে। DHU বাইনারিটি GLIBC সংস্করণ 2.32 বা তার পরবর্তী সংস্করণের উপর নির্ভরশীল। আপনি এই কমান্ডটি চালিয়ে আপনার সিস্টেমের GLIBC সংস্করণ পরীক্ষা করতে পারেন:
ldd --version যদি ভার্সনটি ২.৩২-এর চেয়ে কম হয়, তাহলে GLIBC কে ২.৩২ বা তার পরবর্তী সংস্করণে আপডেট করুন, যার জন্য আপনাকে OS-কে এমন একটি সংস্করণে আপগ্রেড করতে হতে পারে যা GLIBC ২.৩২ বা তার পরবর্তী সংস্করণের সাথে সামঞ্জস্যপূর্ণ।
আপনাকে অবশ্যই libc++1 এবং libc++abi1 লাইব্রেরিগুলোও ইনস্টল করতে হবে। ইনস্টলেশন পদ্ধতি আপনার লিনাক্স ডিস্ট্রিবিউশনের উপর নির্ভর করে ভিন্ন হয়। উদাহরণস্বরূপ, ডেবিয়ান-ভিত্তিক লিনাক্স ডিস্ট্রিবিউশনগুলোতে, আপনি এই কমান্ডটি দিয়ে লাইব্রেরিগুলো ইনস্টল করতে পারেন:
sudo apt-get install libc++1 libc++abi1DHU-এর প্রি-রিলিজ সংস্করণগুলি ইনস্টল করুন
DHU-এর প্রি-রিলিজ সংস্করণগুলিতে অ্যাক্সেস পেতে, আপনি হয় Android Studio-এর একটি প্রিভিউ সংস্করণ ব্যবহার করতে পারেন অথবা আপনার বিদ্যমান Android Studio ইনস্টলেশনের আপডেট চ্যানেলটি বিটা চ্যানেলে পরিবর্তন করতে পারেন ।
ডিএইচইউ চালান
DHU ইনস্টল করার পর, আপনি USB-এর মাধ্যমে আপনার মোবাইল ডিভাইস এবং ওয়ার্কস্টেশন সংযোগ করে আপনার Android Auto অ্যাপগুলো পরীক্ষা করতে পারেন। অ্যাক্সেসরি মোড (DHU 2.x-এর জন্য প্রস্তাবিত) অথবা ADB টানেলিং ব্যবহার করে আপনার মোবাইল ডিভাইসটিকে একটি ডেভেলপমেন্ট মেশিনের সাথে সংযোগ করে DHU চালান।
অ্যাকসেসরি মোড ব্যবহার করে সংযোগ করুন
নিম্নলিখিত কমান্ডটি ব্যবহার করে অ্যান্ড্রয়েড অটো , অ্যান্ড্রয়েড ওপেন অ্যাকসেসরি (AOA) প্রোটোকলের মাধ্যমে DHU সংস্করণ 2.x-এর সাথে সংযোগ স্থাপন সমর্থন করে:
./desktop-head-unit --usb ডিফল্টরূপে, DHU উপলব্ধ USB ডিভাইসগুলির তালিকা স্ক্যান করে এবং প্রথম সামঞ্জস্যপূর্ণ ডিভাইসটির সাথে সংযোগ করার চেষ্টা করে। একটি নির্দিষ্ট ডিভাইসকে লক্ষ্য করতে, --usb কমান্ডের অংশ হিসাবে ডিভাইস আইডিটি অন্তর্ভুক্ত করুন, যেমনটি নিচে দেখানো হয়েছে:
./desktop-head-unit --usb=[DEVICE_ID]এডিবি টানেলিং ব্যবহার করে সংযোগ করুন
এই পদ্ধতিতে অ্যান্ড্রয়েড ডিবাগ ব্রিজ ( adb ) ব্যবহার করে অ্যান্ড্রয়েড অটো হেড ইউনিট সার্ভারের সাথে একটি সংযোগ স্থাপন করতে হয়। টানেলিং সেট আপ করতে এবং DHU চালু করতে এই ধাপগুলো অনুসরণ করুন:
- অ্যান্ড্রয়েড অটো ডেভেলপার মোড চালু করুন, যদি আগে থেকে চালু না থাকে।
যদি হেড ইউনিট সার্ভারটি আগে থেকে চালু না থাকে, তাহলে ওভারফ্লো মেনুটি খুলুন এবং চিত্র ১-এ দেখানো অনুযায়ী ‘স্টার্ট হেড ইউনিট সার্ভার’ নির্বাচন করুন।
ডিভাইসের নোটিফিকেশন এরিয়াতে একটি ফোরগ্রাউন্ড সার্ভিস দেখা যায়, যা সার্ভারটি চালু থাকার ইঙ্গিত দেয়, যেমনটি চিত্র ২-এ দেখানো হয়েছে।

চিত্র ১. ডেভেলপার অপশনসহ কনটেক্সট মেনু।

চিত্র ২. হেড ইউনিট সার্ভার চালু থাকার বিজ্ঞপ্তি।
Android Auto অ্যাপে, সেটিংস- এর উপরের দিকে থাকা ‘Previously connected cars’-এ ট্যাপ করুন এবং ‘Add new cars to Android Auto’ চালু আছে কিনা তা যাচাই করুন।
ইউএসবি ব্যবহার করে মোবাইল ডিভাইসটিকে ডেভেলপমেন্ট মেশিনের সাথে সংযুক্ত করুন।
মোবাইল ডিভাইসটির স্ক্রিন আনলক করা আছে কিনা তা নিশ্চিত করুন, যাতে এটি ডিএইচইউ চালু করতে পারে।
ডেভেলপমেন্ট মেশিনের পোর্ট ৫২৭৭ থেকে মোবাইল ডিভাইসের একই পোর্ট নম্বরে সকেট সংযোগ ফরওয়ার্ড করতে, ডেভেলপমেন্ট মেশিনে নিম্নলিখিত
adbকমান্ডটি চালান। এই কনফিগারেশনটি DHU-কে একটি TCP সকেটের মাধ্যমে মোবাইল ডিভাইসে চলমান হেড ইউনিট সার্ভারের সাথে সংযোগ স্থাপন করতে দেয়।adb forward tcp:5277 tcp:5277SDK_LOCATION /extras/google/auto/ডিরেক্টরি থেকে Windows-এdesktop-head-unit.exe, অথবা macOS বা Linux-এ./desktop-head-unitকমান্ডটি চালিয়ে DHU চালু করুন:cd SDK_LOCATION/extras/google/autodesktop-head-unit.exe # Windows./desktop-head-unit # macOS or Linux

- আপনি যদি প্রথমবারের মতো মোবাইল ডিভাইসটিকে ডিএইচইউ-এর সাথে সংযুক্ত করেন, তাহলে পরিষেবার শর্তাবলী গ্রহণ করতে এবং প্রয়োজন অনুযায়ী অনুমতি সেটিংস ঠিক করতে মোবাইল ডিভাইসের স্ক্রিনটি দেখুন।
DHU চালু হয়ে গেলে, আপনি DHU কনসোল কমান্ড ব্যবহার করে আপনার অ্যাপটি চালাতে ও পরীক্ষা করতে পারবেন।
কমান্ড-লাইন বিকল্পগুলি
ডিফল্টরূপে, হেড ইউনিট সার্ভার ৫২৭৭ পোর্টের মাধ্যমে সংযুক্ত হয়। হোস্ট বা পোর্ট পরিবর্তন করতে, --adb=<[localhost:]port> ফ্ল্যাগটি ব্যবহার করুন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
./desktop-head-unit --adb=5999 ডিফল্টরূপে, ডিএইচইউ (DHU) একটি টাচস্ক্রিন ইউজার ইন্টারফেস সহ অ্যান্ড্রয়েড অটো-কম্প্যাটিবল হেড ইউনিটকে অনুকরণ করে। মাউস দিয়ে ডিএইচইউ-তে ক্লিক করে ব্যবহারকারীর স্পর্শ অনুকরণ করুন। ইনপুটের জন্য রোটারি কন্ট্রোলার ব্যবহারকারী হেড ইউনিটগুলিকে অনুকরণ করতে, আপনি -i rotary ফ্ল্যাগটি ব্যবহার করতে পারেন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
./desktop-head-unit -i controllerযখন DHU রোটারি-কন্ট্রোলার মোডে থাকে, তখন আপনি কন্ট্রোলার অপারেশন অনুকরণ করতে কিবোর্ড শর্টকাট ব্যবহার করতে পারেন। আরও বিস্তারিত জানতে রোটারি কন্ট্রোলার বিভাগটি দেখুন। রোটারি কন্ট্রোলার মোডে, DHU মাউস ক্লিক উপেক্ষা করে। আপনাকে অবশ্যই অনুকৃত রোটারি-কন্ট্রোলার অপারেশনের মাধ্যমে অ্যান্ড্রয়েড অটো চালাতে হবে।
DHU-এর জন্য অন্যান্য কমান্ড-লাইন অপশনগুলো নিম্নলিখিত সারণিতে তালিকাভুক্ত করা হলো:
| বিকল্প | বর্ণনা |
|---|---|
-c , --config= FILE | নির্দিষ্ট কনফিগারেশন .ini ফাইলটি ব্যবহার করুন। আরও বিস্তারিত তথ্যের জন্য “ডিএইচইউ কনফিগার করুন” অংশটি দেখুন। |
-i , --input= INPUT | নির্দিষ্ট ইনপুট মোড ব্যবহার করুন, যেটি হলো: touch , rotary বা hybrid । |
-a , --adb= HOSTPORT | এডিবি ট্রান্সপোর্ট ব্যবহার করুন। ঐচ্ছিক host : port বা port । ডিফল্ট পোর্ট হলো ৫২৭৭। |
-a , --usb= DEVICE_ID | USB AOA ট্রান্সপোর্ট ব্যবহার করুন। ঐচ্ছিক DEVICE_ID । |
-v , --version | সংস্করণের তথ্য দেখান। |
-l , --licenses | ওপেন সোর্স লাইসেন্সগুলো দেখান। |
-h , --headless | কোনো UI ছাড়া হেডলেস মোডে চালান। |
-t , --always_show_window_on_top | অন্যান্য উইন্ডোর উপরে ডিএইচইউ উইন্ডোগুলি দেখান (ডিফল্টরূপে বন্ধ) |
-? , --help | সাহায্য তালিকা দেখান। |
ডিএইচইউ ব্যবহারকারী নির্দেশিকা
এই অংশে ডিএইচইউ দ্বারা সমর্থিত বৈশিষ্ট্যসমূহ এবং সেগুলি ব্যবহারের পদ্ধতি বর্ণনা করা হয়েছে।
যে টার্মিনাল উইন্ডো থেকে আপনি DHU শুরু করেছেন, সেখানেই কমান্ডগুলো প্রবেশ করানো হয়। সেমিকোলন ; দিয়ে একাধিক কমান্ড আলাদা করে একই লাইনে চালানো যায়।
সিস্টেম
| আদেশ | চাবি | বর্ণনা |
|---|---|---|
help [ command ] | সম্পূর্ণ কমান্ড সেট দেখান। যদি কোনো কমান্ডের নাম নির্দিষ্ট করা থাকে, তাহলে সেই কমান্ডের জন্য সাহায্য দেখান। | |
quitexit | Alt+Q | হেড ইউনিটটি বন্ধ করুন। |
sleep [ seconds ] | এক সেকেন্ডের জন্য অপেক্ষা করুন। যদি কোনো বিলম্ব নির্দিষ্ট করা থাকে, তবে তত seconds জন্য অপেক্ষা করুন। উদাহরণস্বরূপ, একটি CI পরিবেশে ./desktop-head-unit < script.txt ব্যবহার করে হেড ইউনিট স্ক্রিপ্ট করার জন্য এটি ব্যবহার করা যেতে পারে। | |
screenshot filename.png | স্ক্রিনশটটি filename.png . | |
licenses | ডিএইচইউ-তে ব্যবহৃত লাইব্রেরিগুলোর লাইসেন্সগুলো প্রদর্শন করুন। | |
keycode keycode | কীকোড বিভাগে তালিকাভুক্ত নামগুলির মধ্যে একটি keycode পাঠান। |
টাচ এবং টাচপ্যাড
যখন টাচ বা টাচপ্যাড সক্রিয় থাকে, তখন টাচের জন্য ডিসপ্লে উইন্ডোতে অথবা টাচপ্যাডের জন্য টাচপ্যাড উইন্ডোতে ক্লিক করলে তা একটি টাচ ইভেন্ট হিসেবে গণ্য হয়।
টাচ ব্যবহারের জন্য, প্রথম আঙুলের অবস্থানে রাইট-ক্লিক করে এবং তারপর দ্বিতীয় আঙুলের জন্য ডান বোতামটি ক্লিক করে ধরে রেখে মাল্টি-টাচ অনুকরণ করুন। দুটি আঙুলের কেন্দ্রবিন্দু স্থির থাকে; মাউস নাড়ালে আপনি সেগুলোকে কেন্দ্রের চারপাশে ঘোরাতে, পিঞ্চ ইন ও আউট করতে, অথবা উভয়ই করতে পারবেন।
টাচপ্যাডের ক্ষেত্রে, স্ক্রিনের বিভিন্ন UI এলিমেন্টের মধ্যে স্ক্রল করার জন্য বাম বাটনটি ক্লিক করে ধরে রাখুন। ডান বাটনটি ক্লিক করলে ফোকাস থাকা এলিমেন্টটি নির্বাচিত হয়।
| আদেশ | চাবি | বর্ণনা |
|---|---|---|
tap xy | নির্দিষ্ট স্থানাঙ্কে একটি স্পর্শ ঘটনা অনুকরণ করুন। |
রোটারি কন্ট্রোলার
ডিএইচইউ-টিতে রোটারি কন্ট্রোলার সাপোর্ট রয়েছে। এটি সক্রিয় করা হলে, নিম্নলিখিত কাজগুলো করা যায়:
- ডি-প্যাডের উপরে, নিচে, বামে এবং ডানে ক্লিক করা
- ঘড়ির কাঁটার দিকে এবং ঘড়ির কাঁটার বিপরীত দিকে ঘোরানো
- ঘূর্ণন ফ্লিক সম্পাদন করা (একসাথে পাঁচটি পদক্ষেপ)
- কন্ট্রোলারে নিচে এবং পিছনে ক্লিক করা
কমান্ড এবং কী বাইন্ডিংগুলো নিম্নলিখিত সারণিতে তালিকাভুক্ত করা হলো।
মাউসের স্ক্রল হুইল dpad rotate কমান্ড পাঠায় এবং মাউসের মাঝের বোতামে (সাধারণত স্ক্রল হুইল) ক্লিক করলে dpad click কমান্ড পাঠানো হয়।
মনে রাখবেন যে বেশিরভাগ গাড়িতে টাচ স্ক্রিন থাকে। কিছু গাড়িতে শুধু রোটারি কন্ট্রোলার থাকে, এবং কিছুতে টাচ ও কন্ট্রোলারের হাইব্রিড ব্যবস্থা থাকে। গাড়িতে টাচপ্যাডও থাকতে পারে, যা ম্যাপ প্যানিং এবং টেক্সট এন্ট্রির জন্য ব্যবহার করা যায়। বিভিন্ন গাড়ির হেড ইউনিট সিমুলেট করার সময় এই ভিন্ন কনফিগারেশনগুলোর ব্যাপারে সতর্ক থাকবেন।
| আদেশ | চাবি | বর্ণনা |
|---|---|---|
dpad {up|down|left|right} | তীর চিহ্ন | রোটারি কন্ট্রোলারটি নাড়ান। |
dpad {ur|dl|ul|dr} | রোটারি কন্ট্রোলারটি নাড়ান। | |
dpad soft {left|right} | Shift+Arrow কী | কিছু রোটারি কন্ট্রোলারে থাকা পাশের বাটনগুলো চাপুন। |
dpad click | ফেরত | রোটারি কন্ট্রোলারটি চাপুন। |
dpad back | ব্যাকস্পেস | কিছু রোটারি কন্ট্রোলারে ব্যাক বাটন থাকে। |
dpad rotate left | ১ | রোটারি কন্ট্রোলারটি ঘড়ির কাঁটার বিপরীত দিকে (বামে) ঘোরান। |
dpad rotate right | ২ | রোটারি কন্ট্রোলারটি ঘড়ির কাঁটার দিকে (ডানদিকে) ঘোরান। |
dpad flick left | শিফট+১ | রোটারি কন্ট্রোলারটি দ্রুত ঘড়ির কাঁটার বিপরীত দিকে ঘোরান। |
dpad flick right | শিফট+২ | রোটারি কন্ট্রোলারটি দ্রুত ঘড়ির কাঁটার দিকে ঘোরান। |
dpad 0-9*#+ | নাম প্যাড |
মাইক্রোফোন
DHU-তে ভয়েস ইনপুট দেওয়ার জন্য অথবা আগে থেকে রেকর্ড করা ভয়েস ট্র্যাক চালানোর জন্য মাইক্রোফোন ব্যবহার করা যায়। সুবিধার জন্য, সাধারণ ভয়েস কমান্ডের জন্য নিম্নলিখিত সাউন্ড ফাইলগুলো DHU-এর সাথে অন্তর্ভুক্ত করা হয়েছে। এই সাউন্ড ফাইলগুলো SDK_LOCATION /extras/google/auto/voice/ ডিরেক্টরিতে অবস্থিত।
| ফাইলের নাম | পাঠ্য |
|---|---|
navhome.wav | হোম পেজে যান। |
navwork.wav | কর্মস্থলে যান। |
navsoh.wav | সিডনি অপেরা হাউসে যান। |
navgoogle.wav | ১৬০০ অ্যাম্ফিথিয়েটার পার্কওয়ে, ক্যালিফোর্নিয়া, মার্কিন যুক্তরাষ্ট্র-তে যান। |
exitnav.wav | নেভিগেশন থেকে প্রস্থান করুন। |
howlong.wav | সেখানে পৌঁছাতে আর কতক্ষণ লাগবে? |
showtraffic.wav | ট্র্যাফিক দেখান। |
showalternateroute.wav | বিকল্প পথ দেখান। |
pause.wav | সঙ্গীত থামান। |
nextturn.wav | আমার পরবর্তী পালা কখন? |
DHU প্রম্পটে কোনো একটি .wav ফাইল রান করতে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
mic play /path/to/filename.wavনিম্নলিখিত সারণিতে মাইক্রোফোন-সম্পর্কিত অন্যান্য কমান্ডগুলো তালিকাভুক্ত করা হলো:
| আদেশ | চাবি | বর্ণনা |
|---|---|---|
mic begin | এম | স্টিয়ারিং-হুইলের বোতামে ক্লিক করার অনুকরণ করে মাইক্রোফোনটি সক্রিয় করুন এবং কম্পিউটার মাইক্রোফোন থেকে ইনপুটের জন্য অপেক্ষা করুন। |
mic play filename.wav | মাইক্রোফোনটি চালু করুন এবং নির্দিষ্ট WAV ফাইল রেকর্ডিংটি চালান। দ্রষ্টব্য: আপনি WAV ফাইলটি চলার শব্দ শুনতে পাবেন না, কিন্তু Android Auto থেকে আসা প্রতিক্রিয়াটি শুনতে পাবেন। | |
mic repeat | mic play এর সাথে ব্যবহৃত সর্বশেষ রেকর্ডিংটি পুনরাবৃত্তি করুন। | |
mic reject {on|off} | মাইক্রোফোন অনুরোধ প্রত্যাখ্যান করার বিকল্পটি সক্রিয় বা নিষ্ক্রিয় করুন। এটি চালু থাকলে, সমস্ত মাইক্রোফোন অনুরোধ প্রত্যাখ্যান করা হবে। |
সেন্সর
DHU নিম্নলিখিত কমান্ডগুলির সাহায্যে গাড়ির সেন্সর ডেটার পরিবর্তনগুলি সিমুলেট করা সমর্থন করে। সেন্সর ডেটা মক করতে এবং তা অ্যান্ড্রয়েড অটোতে পাঠাতে, DHU চালু করার সময় ব্যবহৃত কনফিগারেশন .ini ফাইলটির মাধ্যমে সংশ্লিষ্ট সেন্সরগুলিকে অবশ্যই সক্রিয় করতে হবে।
| আদেশ | বর্ণনা |
|---|---|
fuel [ percentage ] | জ্বালানির স্তর নির্দিষ্ট শতাংশে সেট করুন অথবা (কোনো মান না দেওয়া হলে) জ্বালানির স্তর নিষ্ক্রিয় করুন। |
range [ km ] | পরিসীমা নির্দিষ্ট কিলোমিটারে সেট করুন অথবা (কোনো মান না দিলে) পরিসীমার ডেটা নিষ্ক্রিয় করুন। |
lowfuel [{on|off}] | কম জ্বালানির সতর্কীকরণ সেন্সরটি সেট করুন অথবা (কোনো মান না দিলে) সেন্সরটি নিষ্ক্রিয় করুন। |
accel [ x ] [ y ] [ z ] | অ্যাক্সেলেরোমিটারকে নির্দিষ্ট x, y, এবং z মানে (m/s^2) সেট করুন অথবা (কোনো প্যারামিটার না দিলে) অ্যাক্সেলেরোমিটার ডেটা আনসেট করুন। প্রয়োজনে ঐচ্ছিক প্যারামিটার এড়িয়ে যেতে NAN পাস করুন। |
compass bearing [ pitch ] [ roll ] | কম্পাসটিকে নির্দিষ্ট বেয়ারিং, পিচ এবং রোল মানে (ডিগ্রিতে) সেট করুন। প্রয়োজনে ঐচ্ছিক প্যারামিটারগুলি এড়িয়ে যেতে NAN পাস করুন। |
gyro [ x ] [ y ] [ z ] | জাইরোস্কোপকে নির্দিষ্ট x, y, এবং z ঘূর্ণন গতিতে (rad/s) সেট করুন অথবা (কোনো প্যারামিটার না দিলে) জাইরোস্কোপ ডেটা অনির্ধারিত রাখুন। প্রয়োজনে ঐচ্ছিক প্যারামিটার এড়িয়ে যেতে NAN পাস করুন। |
location lat long [ accuracy ] [ altitude ] [ speed ] [ bearing ] | নির্দিষ্ট অক্ষাংশ ও দ্রাঘিমাংশের মানের সাথে ঐচ্ছিক নির্ভুলতা (মিটার), উচ্চতা (মিটার), গতি (মিটার/সেকেন্ড) এবং বিয়ারিং (ডিগ্রি) সহ অবস্থানটি সেট করুন। প্রয়োজনে ঐচ্ছিক প্যারামিটারগুলি এড়িয়ে যেতে NAN পাস করুন। |
odometer km [ current_trip_km ] | ওডোমিটারকে নির্দিষ্ট কিলোমিটারে সেট করুন এবং এর সাথে ঐচ্ছিকভাবে বর্তমান ট্রিপের কিলোমিটারের মানও যোগ করতে পারেন। |
speed [ speed ] | গাড়ির গতি নির্দিষ্ট মানে (মি/সে) সেট করুন অথবা (কোনো মান না দিলে) সেন্সরটি নিষ্ক্রিয় করুন। |
tollcard {insert|remove} | টোল কার্ড প্রবেশ করান বা বের করুন। |
gps_satellite number_in_use [[ azimuth ] [ elevation ] [ prn ] [ snr ] [ used_in_fix ]] | GPS স্যাটেলাইট সেন্সরটিকে নির্দিষ্ট ব্যবহৃত মানের সংখ্যায় সেট করুন এবং এর সাথে ঐচ্ছিকভাবে অ্যাজিমুথ (০ থেকে ৩৬০ ডিগ্রির মধ্যে), এলিভেশন (০ থেকে ৯০ ডিগ্রির মধ্যে), prn (সিউডোর্যান্ডম নয়েজ), snr (dB), এবং ইউজড ইন ফিক্স ( true বা false ) - এই তালিকাগুলোও নির্বাচন করুন। |
parking_brake engaged | পার্কিং ব্রেক সেন্সরটি true ) অথবা false এ সেট করুন। |
gear gear_value | গিয়ার সেন্সরটিকে নির্দিষ্ট মানে সেট করুন (উদাহরণস্বরূপ, নিউট্রালের জন্য 0 , ড্রাইভের জন্য 100 , পার্কের জন্য 101 এবং রিভার্সের জন্য 102 )। |
দিন ও রাতের মোড
DHU নিম্নলিখিত কমান্ড এবং কী বাইন্ডিংগুলির মাধ্যমে দিন ও রাত্রি মোডের মধ্যে পরিবর্তন অনুকরণ করতে সমর্থন করে:
| আদেশ | চাবি | বর্ণনা |
|---|---|---|
day | শিফট+এন | ডে মোড চালু করুন—উচ্চ উজ্জ্বলতা, পূর্ণ রঙ। |
night | Ctrl+N | নাইট মোড চালু করুন—কম উজ্জ্বলতা, উচ্চ কনট্রাস্ট। |
daynightnightday | এন | দিন বা রাত্রি মোড চালু বা বন্ধ করুন। |
ফোকাস ব্যবস্থাপনা
নিম্নলিখিত কমান্ডগুলি ব্যবহার করে DHU হেড ইউনিটে অ্যান্ড্রয়েড অটোর ফোকাস আছে কি না, তা সিমুলেট করা সমর্থন করে:
| আদেশ | বর্ণনা |
|---|---|
focus video {on|off|toggle} | হেড ইউনিটে ভিডিও ফোকাস চালু বা বন্ধ করুন। ভিডিও ফোকাস বন্ধ করলে হেড ইউনিটটি অ্যান্ড্রয়েড অটো লুকিয়ে রাখে বলে মনে হয়। |
focus audio {on|off|toggle} | হেড ইউনিটে অডিও ফোকাস সক্রিয় বা নিষ্ক্রিয় করুন। অডিও ফোকাস বন্ধ করলে হেড ইউনিটটি নিজস্ব অডিও উৎস থেকে প্লে করার অনুকরণ করে। |
focus nav {on|off|toggle} | হেড ইউনিটে নেভিগেশন ফোকাস সক্রিয় বা নিষ্ক্রিয় করুন। নেভিগেশন ফোকাস বন্ধ করলে তা হেড ইউনিটকে নিজস্ব নেভিগেশন সিস্টেম চালাতে অনুকরণ করে। |
বিধিনিষেধ এবং ড্রাইভিং অবস্থা
যানবাহন চলার সময়, DHU নিম্নলিখিত কমান্ডগুলি ব্যবহার করে কিছু নির্দিষ্ট সীমাবদ্ধতা অনুকরণ করতে সমর্থন করে, যেমন কীবোর্ড নিষ্ক্রিয় করা এবং ফোন কনফিগারেশন নিষিদ্ধ করা:
| আদেশ | চাবি | বর্ণনা |
|---|---|---|
restrict none | ইউ | সকল বিধিনিষেধ নিষ্ক্রিয় করুন। |
restrict all | Shift+U | ড্রাইভিং অনুকরণ করার মতো সমস্ত বিধিনিষেধ সক্রিয় করুন। |
যন্ত্রগুচ্ছ
ডিএইচইউ একটি ইন্সট্রুমেন্ট ক্লাস্টার অনুকরণ করতে সহায়তা করে। এই ক্লাস্টারটি সাধারণত স্টিয়ারিং হুইলের পিছনে থাকে এবং নেভিগেশনের সময় এটি পরবর্তী মোড়—যেমন পরবর্তী রাস্তার নাম বা মোড়ের তীরচিহ্ন—দূরত্ব বা সময় সম্পর্কে প্রাথমিক তথ্য দেখায়। এটি চলমান ফোন কল সম্পর্কিত তথ্যও প্রদর্শন করে।

এটি কনফিগারেশন ফাইলের [general] সেকশনে থাকা instrumentcluster এন্ট্রি ব্যবহার করে, অথবা প্রতিটি ফিচার আলাদাভাবে নিয়ন্ত্রণ করার জন্য navcluster বা phonecluster এন্ট্রি ব্যবহার করে সক্রিয় করা যেতে পারে।
[general]
...
instrumentcluster = true
ক্লাস্টার ডিসপ্লে
কিছু যানবাহনে ক্লাস্টার ডিসপ্লে থাকে যা ম্যাপ টাইলসের মতো বিশদ ভিজ্যুয়াল তথ্য প্রদর্শন করতে সক্ষম। DHU-এর ২.১ সংস্করণ থেকে (যা বর্তমানে অ্যান্ড্রয়েড স্টুডিও বিটা আপডেট চ্যানেলে উপলব্ধ), আপনি আপনার ডেভেলপমেন্ট মেশিনে এই ধরনের একটি ডিসপ্লে অনুকরণ করতে পারবেন।
এটি একটি ক্লাস্টার [display] সেকশন সহ একটি কনফিগারেশন ফাইল ব্যবহার করে করা যেতে পারে। [display] সেকশনগুলো ফাইলের [general] সেকশনে কনফিগার করা প্রধান ডিসপ্লের মতোই একই ভিডিও কনফিগারেশন অপশন সমর্থন করে।


...
# The display name following the colon can be whatever you like.
[display:cluster]
# Setting the displaytype as cluster is what lets the DHU know how to handle it.
displaytype = cluster
resolution = 800x480
dpi = 160
...
এই কনফিগারেশনটি সরাসরি একটি বিদ্যমান .ini ফাইলে যোগ করা যেতে পারে, অথবা আপনি এটিকে একটি পৃথক ফাইলে রেখে এবং DHU চালু করার সময় একাধিক কনফিগারেশন ফাইল পাস করে পুনরায় ব্যবহার করতে পারেন। একাধিক কনফিগারেশন ফাইল ব্যবহার করার ক্ষেত্রে, কোনো নির্দিষ্ট মানের পরবর্তী সংজ্ঞাগুলো পূর্ববর্তীগুলোকে বাতিল করে দেয়।
# Launch your landscape configuration with your cluster display configuration
./desktop-head-unit -c landscape.ini -c cluster.ini
# Launch the portait configuration with the same cluster display configuration
./desktop-head-unit -c portrait.ini -c cluster.ini
মিডিয়া প্লেব্যাক স্ট্যাটাস
ডিএইচইউ-তে একটি অতিরিক্ত তথ্য প্রদর্শনের ব্যবস্থা রয়েছে, যা মিডিয়া প্লেব্যাকের অবস্থা, যেমন বর্তমানে কোন ট্র্যাকটি চলছে, তা দেখায়।

[general] সেকশনের playbackstatus এন্ট্রি ব্যবহার করে এটি সক্রিয় করা যেতে পারে।
[general]
...
playbackstatus = true
কীকোড
ডিএইচইউ (DHU) কিছু ডিফল্ট কীকোড প্রদান করে, যা যানবাহনে সাধারণত উপলব্ধ শর্টকাট বাটনগুলোর অনুকরণ করে। উদাহরণস্বরূপ, ডিএইচইউ প্রম্পটে home কীকোডটি নিম্নোক্তভাবে সক্রিয় করা যেতে পারে:
keycode homeনিম্নলিখিত সারণিতে অন্যান্য উপলব্ধ কীকোডগুলি তালিকাভুক্ত করা হলো:
| কীকোড | বর্ণনা |
|---|---|
home | হোম স্ক্রিনে যান। |
back | ফিরে যান। |
callendcall | কল করুন বা শেষ করুন। |
search | অনুসন্ধান শুরু করুন। |
media_play_pausemedia_playmedia_pause | মিডিয়া চালান বা থামান। |
media_nextmedia_previous | পরবর্তী বা পূর্ববর্তী মিডিয়া ট্র্যাকে যান। |
media | ডিফল্ট মিডিয়া অ্যাপে যান। |
navigation | ডিফল্ট নেভিগেশন অ্যাপে যান। |
tel | ডিফল্ট টেলিফোন অ্যাপে যান। |
ডিএইচইউ কনফিগার করুন
টাচ ও রোটারি কন্ট্রোলারের মধ্যে ইনপুট মোড পরিবর্তন করতে এবং হেড ইউনিটটি ফোন থেকে যে ফ্রেম রেট, রেজোলিউশন ও ডিপিআই অনুরোধ করে তা সেট করার জন্য ডিএইচইউ-তে একটি কনফিগারেশন .ini ফাইল রয়েছে।
কনফিগারেশন ফাইলের ডিফল্ট অবস্থান হলো ~/.android/headunit.ini । আপনার সিস্টেমে হেড ইউনিটের কনফিগারেশন পরিবর্তন করতে, আপনি এই ফাইলটি পরিবর্তন করতে পারেন।
আপনি -c ফ্ল্যাগ ব্যবহার করে লোড করার জন্য একটি কনফিগারেশন ফাইলও নির্দিষ্ট করতে পারেন:
./desktop-head-unit -c /path/to/config.ini
নিম্নলিখিত কোড স্নিপেটটি একটি নমুনা কনফিগারেশন দেখাচ্ছে:
[general]
touch = true
touchpad = false
controller = false
instrumentcluster = false
resolution = 800x480
dpi = 160
framerate = 30
fueltypes = unleaded,electric,hydrogen
evconnectors = supercharger
বিভিন্ন হেড ইউনিট সেটিংস পরীক্ষার জন্য নমুনা কনফিগারেশন ফাইলগুলো SDK_LOCATION /extras/google/auto/config/ ফোল্ডারের অধীনে রয়েছে। আরও উন্নত ব্যবহারের ক্ষেত্রে, নিম্নলিখিত সমর্থিত সেটিংসগুলো দেখুন:
ইনপুট কনফিগারেশন
নিম্নলিখিত সারণিতে ইনপুট কনফিগারেশন বিকল্পগুলি তালিকাভুক্ত করা হয়েছে:
| নাম | ডিফল্ট | প্রকার | বর্ণনা |
|---|---|---|---|
inputmode | default | স্ট্রিং | ইনপুট মোড নির্ধারণ করুন। touch , rotary এবং hybrid অপশনগুলো প্রয়োজন অনুযায়ী টাচস্ক্রিন ও রোটারি সাপোর্ট চালু ও বন্ধ করে এবং ডিফল্ট কীকোড সেট করে। default অপশনটি touch এবং controller অপশনগুলোকেই প্রাধান্য দেয়। |
controller | false | বুলিয়ান | রোটারি কন্ট্রোলার ইনপুট সক্রিয় করুন। inputmode default না হলে এটি উপেক্ষা করা হয়। |
touch | true | বুলিয়ান | টাচস্ক্রিন সক্রিয় করুন। inputmode default না হলে এটি উপেক্ষা করা হবে। |
touchpad | false | বুলিয়ান | টাচপ্যাড সক্রিয় করুন। |
touchpadnavigation | false | বুলিয়ান | UI নেভিগেশনের জন্য টাচপ্যাড ব্যবহার সক্ষম করুন। |
touchpadtapasselect | false | বুলিয়ান | যখন এটি সত্য হয়, তখন টাচপ্যাডে ট্যাপ করা একটি সিলেক্ট ইভেন্ট হিসেবে গণ্য হয়। |
touchpaduiabsolute | false | বুলিয়ান | যখন touchpadnavigation true হয়, তখন টাচগুলোকে অ্যাবসোলিউট নাকি জেসচার হিসেবে গণ্য করা হবে, তা নির্ধারণ করুন। |
ভিডিও কনফিগারেশন
অ্যান্ড্রয়েড অটো তিনটি ভিডিও রেজোলিউশন সমর্থন করে:
- ৪৮০পি (৮০০x৪৮০, ডিফল্ট)
- ৭২০পি (১২৮০x৭২০)
- ১০৮০পি (১৯২০x১০৮০)
অন্যান্য অ্যাস্পেক্ট রেশিও সমর্থন করার জন্য, হেড ইউনিট প্রয়োজন অনুযায়ী লেটারবক্স (পিলারবক্স) মার্জিন নির্দিষ্ট করতে পারে। উদাহরণস্বরূপ, যদি আপনি একটি 1000x600 স্ক্রিন চান, তাহলে রেজোলিউশন 720p (1280x720) এবং marginwidth 280 ও marginheight 120 সেট করুন। এর ফলে বাম এবং ডান প্রান্তে 140 পিক্সেল এবং উপরে ও নীচে 60 পিক্সেল মার্জিন যুক্ত হবে।
নিম্নলিখিত উদাহরণ কনফিগারেশনটি একটি সাধারণ ৬-ইঞ্চি স্ক্রিন (৭৫০x৪৫০) অনুকরণ করে:
[general]
...
resolution = 800x480
marginwidth = 50
marginheight = 30
এবং নিম্নলিখিত উদাহরণ কনফিগারেশনটি একটি খুব প্রশস্ত স্ক্রিনের অনুকরণ করে:
[general]
...
resolution = 1280x720
marginwidth = 0
marginheight = 220
নিম্নলিখিত সারণিতে অন্যান্য ভিডিও কনফিগারেশন বিকল্পগুলি তালিকাভুক্ত করা হয়েছে:
| নাম | ডিফল্ট | প্রকার | বর্ণনা |
|---|---|---|---|
resolution | 800x480 | স্ট্রিং | নিম্নলিখিতগুলির মধ্যে একটি: 800x480 , 1280x720 , 1920x1080 । |
dpi | 160 | পূর্ণসংখ্যা | |
normalizedpi | false | বুলিয়ান | যখন true , তখন উচ্চতর ডিপিআই মানের জন্য ডিএইচইউ উইন্ডোর আকার ছোট করা হয়। যখন false , তখন উচ্চতর ডিপিআই মানের ফলে উইন্ডোগুলো বড় হয়, যা বাস্তব ডিসপ্লের অনুকরণ করে না কিন্তু ভিজ্যুয়াল কন্টেন্ট পরিদর্শনে সাহায্য করে। |
realdpi | 160 | পূর্ণসংখ্যা | ভিডিও কনফিগারেশনে ব্যবহৃত হয়। |
framerate | 30 | পূর্ণসংখ্যা | ভিডিও কনফিগারেশনে ব্যবহৃত হয়। |
marginheight | 0 | পূর্ণসংখ্যা | ভিডিও কনফিগারেশনে ব্যবহৃত হয়। |
marginwidth | 0 | পূর্ণসংখ্যা | ভিডিও কনফিগারেশনে ব্যবহৃত হয়। |
margins | 0,0,0,0 | স্ট্রিং | ভিডিও কনফিগারেশনে ব্যবহৃত হয়। marginwidth ও marginheight উপস্থিত থাকলে তা ওভাররাইড করে। ফরম্যাটটি হলো টপ, বটম, লেফট, রাইট। |
contentinsets | 0,0,0,0 | স্ট্রিং | ভিডিও কনফিগারেশনে ব্যবহৃত হয়। ফরম্যাটটি হলো টপ, বটম, লেফট, রাইট। |
stablecontentinsets | 0,0,0,0 | স্ট্রিং | ভিডিও কনফিগারেশনে ব্যবহৃত হয়। এর ডিফল্ট মান হলো contentinsets । ফরম্যাটটি হলো `top`, `bottom`, `left`, `right`। |
cropmargins | false | বুলিয়ান | যদি margins , marginheight বা marginwidth নির্দিষ্ট করা থাকে, তাহলে এই সেটিংটির মান ' true প্রদর্শিত ভিডিও থেকে সেই মার্জিনগুলো মুছে যায়। এর ফলে শেষ ব্যবহারকারী যা দেখেন, তা আরও ভালোভাবে প্রতিফলিত হয়। |
pixelaspectratio | 1.0 | ভাসা | ভিডিও কনফিগারেশনে ব্যবহৃত হয়। |
সেন্সর কনফিগারেশন
সেন্সর ডেটা মক করে অ্যান্ড্রয়েড অটোতে পাঠানোর জন্য, নিম্নলিখিত অপশনগুলো ব্যবহার করে সংশ্লিষ্ট সেন্সরগুলো অবশ্যই সক্রিয় করতে হবে। যদি কোনো সেন্সর সক্রিয় না থাকে, তাহলে DHU কমান্ড ব্যবহার করে সেই সেন্সরের জন্য পাঠানো যেকোনো ডেটা উপেক্ষা করা হবে। এই কনফিগারেশনটি অবশ্যই [sensors] সেকশনে রাখতে হবে, অন্য বেশিরভাগ কনফিগারেশনের জন্য ব্যবহৃত [general] সেকশনে নয়।
[general]
touch = true
...
[sensors]
location = true
fuel = true
...
| নাম | ডিফল্ট | প্রকার | বর্ণনা |
|---|---|---|---|
accelerometer | false | বুলিয়ান | অ্যাক্সেলেরোমিটার সেন্সর ডেটা সক্রিয় করুন। |
compass | false | বুলিয়ান | কম্পাস সেন্সর ডেটা সক্রিয় করুন। |
driving_status | false | বুলিয়ান | ড্রাইভিং স্ট্যাটাস সেন্সর ডেটা সক্রিয় করুন। |
fuel | false | বুলিয়ান | জ্বালানি সেন্সর ডেটা সক্রিয় করুন। |
gyroscope | false | বুলিয়ান | জাইরোস্কোপ সেন্সর ডেটা সক্রিয় করুন। |
location | false | বুলিয়ান | গাড়ির অবস্থান সেন্সরের ডেটা সক্রিয় করুন। |
night_mode | false | বুলিয়ান | নাইট মোড সেন্সর ডেটা সক্রিয় করুন। |
odometer | false | বুলিয়ান | ওডোমিটার সেন্সর ডেটা সক্রিয় করুন। |
speed | false | বুলিয়ান | গতি সেন্সর ডেটা সক্রিয় করুন। |
toll_card | false | বুলিয়ান | টোল কার্ড সেন্সর ডেটা সক্রিয় করুন। |
gps_satellite | false | বুলিয়ান | জিপিএস স্যাটেলাইট সেন্সর ডেটা সক্রিয় করুন। |
parking_brake | false | বুলিয়ান | পার্কিং ব্রেক সেন্সর ডেটা সক্রিয় করুন। |
gear | false | বুলিয়ান | গিয়ার সেন্সর ডেটা সক্রিয় করুন। |
বিবিধ কনফিগারেশন বিকল্প
নিম্নলিখিত সারণিতে অন্যান্য কনফিগারেশন বিকল্পগুলি তালিকাভুক্ত করা হয়েছে:
| নাম | ডিফল্ট | প্রকার | বর্ণনা |
|---|---|---|---|
instrumentcluster | false | বুলিয়ান | ইন্সট্রুমেন্ট ক্লাস্টার সক্রিয় করুন। এটি নেভিগেশন এবং ফোনের অবস্থা দেখানোর জন্য UI-তে একটি উইন্ডো যোগ করে। |
navcluster | false | বুলিয়ান | ইন্সট্রুমেন্ট ক্লাস্টার সক্রিয় করুন। নেভিগেশন স্ট্যাটাস দেখানোর জন্য UI-তে একটি উইন্ডো যোগ করে। |
phonecluster | false | বুলিয়ান | ইন্সট্রুমেন্ট ক্লাস্টার সক্রিয় করুন। এটি ফোনের স্ট্যাটাস দেখানোর জন্য UI-তে একটি উইন্ডো যোগ করে। |
playbackstatus | false | বুলিয়ান | প্লেব্যাক স্ট্যাটাস সক্রিয় করুন। প্লেব্যাক স্ট্যাটাস বার্তা প্রদর্শনের জন্য UI-তে একটি উইন্ডো যোগ করে। |
driverposition | left | স্ট্রিং | এর মধ্যে একটি: left , center বা right । |
windowleft | | পূর্ণসংখ্যা | প্রধান উইন্ডোর বাম অবস্থান নির্ধারণ করুন। |
windowtop | | পূর্ণসংখ্যা | প্রধান উইন্ডোর শীর্ষ অবস্থান নির্ধারণ করুন। |
fueltypes | unleaded | স্ট্রিং | নিম্নলিখিতগুলির মধ্যে এক বা একাধিক, কমা দিয়ে আলাদা করা একটি তালিকায়:
|
evconnectors | | স্ট্রিং | নিম্নলিখিতগুলির মধ্যে শূন্য বা তার বেশি, কমা দিয়ে আলাদা করা একটি তালিকায়:
fueltypes electric থাকে। |
সমস্যা সমাধান
কখনও কখনও প্রথমবার সংযোগ করার সময় ডিএইচইউ-তে একটি ফাঁকা স্ক্রিন দেখা যায়। আপনি নিম্নলিখিত কাজগুলো করে এর সমাধান করতে পারেন:
- ডিএইচইউ বন্ধ করুন।
- হেড ইউনিট সার্ভার বন্ধ ও পুনরায় চালু করতে 'রান দ্য ডিএইচইউ' অংশে বর্ণিত ধাপ ৫ অনুসরণ করুন।
- ডিএইচইউ আবার চালু করুন।
- ফোনের স্ক্রিনে অনুরোধ করা যেকোনো অতিরিক্ত অনুমতি দিন। ডিএইচইউটি আরও একবার বন্ধ হয়ে যেতে পারে।
- প্রয়োজনে ডিএইচইউ পুনরায় চালু করুন।