با استفاده از Desktop Head Unit تست کنید

واحد هد دسکتاپ (DHU) به دستگاه توسعه‌دهنده شما اجازه می‌دهد تا یک واحد هد اندروید اتو را شبیه‌سازی کند تا بتوانید برنامه‌های اندروید اتو را اجرا و آزمایش کنید. DHU روی سیستم‌های ویندوز، macOS و لینوکس اجرا می‌شود.

پس از نصب DHU، می‌توانید برنامه‌های Android Auto خود را با اتصال دستگاه تلفن همراه خود به آن با استفاده از یکی از مکانیسم‌های اتصال پشتیبانی‌شده که در بخش «اجرای DHU» توضیح داده شده است، آزمایش کنید.

برای گزارش اشکالات یا درخواست ویژگی‌های مربوط به DHU، از ردیاب مشکلات استفاده کنید.

DHU را نصب کنید

برای نصب DHU روی دستگاه توسعه خود:

  1. حالت توسعه‌دهنده را در دستگاه همراه دارای اندروید ۹ (سطح API 28) یا بالاتر، همانطور که در پیکربندی گزینه‌های توسعه‌دهنده روی دستگاه توضیح داده شده است، فعال کنید.
  2. برنامه خود را روی دستگاه کامپایل و نصب کنید.
  3. اندروید اتو را روی دستگاه نصب کنید. اگر اندروید اتو از قبل نصب شده است، مطمئن شوید که از آخرین نسخه آن استفاده می‌کنید.
  4. در اندروید استودیو، SDK Manager را باز کنید و به تب SDK Tools بروید، سپس بسته Android Auto Desktop Head Unit Emulator را دانلود کنید.

    مدیر SDK که DHU 2.0 را نشان می‌دهد
    مدیر SDK، DHU 2.0 را نشان می‌دهد.

    DHU در دایرکتوری SDK_LOCATION /extras/google/auto/ نصب شده است.

  5. در سیستم‌های لینوکس یا macOS، دستور زیر را در آن دایرکتوری اجرا کنید تا فایل باینری DHU قابل اجرا شود:

chmod +x ./desktop-head-unit

مراحل اضافی برای لینوکس

اگر DHU نسخه ۲.x را روی سیستم لینوکس اجرا می‌کنید، باید کتابخانه‌های اضافی را نصب کنید. فایل باینری DHU به GLIBC نسخه ۲.۳۲ یا بالاتر بستگی دارد. می‌توانید نسخه GLIBC سیستم خود را با اجرای این دستور بررسی کنید:

ldd --version

اگر نسخه پایین‌تر از ۲.۳۲ است، GLIBC به ۲.۳۲ یا بالاتر به‌روزرسانی کنید، که ممکن است مستلزم ارتقاء سیستم عامل به نسخه‌ای باشد که با GLIBC ۲.۳۲ یا بالاتر سازگار باشد.

همچنین باید کتابخانه‌های libc++1 و libc++abi1 را نصب کنید. مراحل نصب بسته به توزیع لینوکس شما متفاوت است. به عنوان مثال، در توزیع‌های لینوکس مشتق شده از Debian، می‌توانید کتابخانه‌ها را با این دستور نصب کنید:

sudo apt-get install libc++1 libc++abi1

نسخه‌های پیش‌انتشار DHU را نصب کنید

برای دسترسی به نسخه‌های پیش‌انتشار DHU، می‌توانید از یک نسخه پیش‌نمایش اندروید استودیو استفاده کنید یا کانال به‌روزرسانی نصب اندروید استودیو موجود خود را به کانال بتا تغییر دهید .

DHU را اجرا کنید

پس از نصب DHU، می‌توانید برنامه‌های Android Auto خود را با اتصال دستگاه تلفن همراه و ایستگاه کاری خود از طریق USB آزمایش کنید. DHU را با اتصال دستگاه تلفن همراه خود به یک دستگاه توسعه با استفاده از حالت لوازم جانبی (توصیه شده برای DHU 2.x) یا ADB Tunneling اجرا کنید.

اتصال با استفاده از حالت لوازم جانبی

اندروید اتو از اتصال به DHU نسخه ۲.x با پروتکل Android Open Accessory (AOA) با استفاده از دستور زیر پشتیبانی می‌کند:

./desktop-head-unit --usb

به طور پیش‌فرض، DHU لیست دستگاه‌های USB موجود را اسکن می‌کند و سعی می‌کند به اولین دستگاه سازگار متصل شود. برای هدف قرار دادن یک دستگاه خاص، شناسه دستگاه را به عنوان بخشی از دستور --usb به شرح زیر وارد کنید:

./desktop-head-unit --usb=[DEVICE_ID]

اتصال با استفاده از تونلینگ ADB

این روش نیاز به تنظیم اتصال به سرور واحد پخش خودرو اندروید اتو از طریق Android Debug Bridge ( adb ) دارد. برای تنظیم تونلینگ و اجرای DHU، این مراحل را دنبال کنید:

  1. اگر حالت توسعه‌دهنده‌ی اندروید اتو فعال نیست، آن را فعال کنید .
  2. اگر سرور واحد اصلی از قبل در حال اجرا نیست، منوی سرریز را باز کنید و همانطور که در شکل 1 نشان داده شده است، گزینه Start head unit server را انتخاب کنید.

    همانطور که در شکل ۲ نشان داده شده است، یک سرویس پیش‌زمینه در ناحیه اعلان‌ها ظاهر می‌شود که نشان می‌دهد سرور در حال اجرا است.

    منوی زمینه با گزینه‌های توسعه‌دهنده

    شکل ۱. منوی زمینه با گزینه‌های توسعه‌دهنده.

    اعلانی مبنی بر فعال بودن سرور واحد اصلی

    شکل ۲. اعلانی مبنی بر فعال بودن سرور واحد مرکزی

  3. در برنامه Android Auto، روی خودروهای قبلاً متصل شده در بالای تنظیمات ضربه بزنید و تأیید کنید که افزودن خودروهای جدید به Android Auto فعال است.

  4. دستگاه تلفن همراه را با استفاده از USB به دستگاه توسعه وصل کنید.

  5. مطمئن شوید که قفل صفحه نمایش دستگاه تلفن همراه باز است تا بتواند DHU را اجرا کند.

  6. در دستگاه توسعه، دستور adb زیر را اجرا کنید تا اتصالات سوکت را از پورت ۵۲۷۷ دستگاه توسعه به همان شماره پورت در دستگاه تلفن همراه هدایت کند. این پیکربندی به DHU اجازه می‌دهد تا از طریق سوکت TCP به سرور واحد اصلی که روی دستگاه تلفن همراه اجرا می‌شود، متصل شود.

    adb forward tcp:5277 tcp:5277
  7. DHU را با اجرای دستور desktop-head-unit.exe در ویندوز یا ./desktop-head-unit در macOS یا لینوکس، از دایرکتوری SDK_LOCATION /extras/google/auto/ شروع کنید:

    cd SDK_LOCATION/extras/google/auto
    desktop-head-unit.exe # Windows
    ./desktop-head-unit # macOS or Linux
DHU در حال اجرا بر روی یک دستگاه توسعه
DHU روی یک دستگاه توسعه اجرا می‌شود.
  1. اگر این اولین باری است که دستگاه تلفن همراه را به DHU متصل می‌کنید، صفحه دستگاه تلفن همراه را بررسی کنید تا شرایط خدمات را بپذیرید و در صورت لزوم تنظیمات مجوز را تنظیم کنید.

پس از شروع DHU، می‌توانید از دستورات کنسول DHU برای اجرا و آزمایش برنامه خود استفاده کنید.

گزینه‌های خط فرمان

به طور پیش‌فرض، سرور واحد اصلی از طریق پورت ۵۲۷۷ متصل می‌شود. برای لغو میزبان یا پورت، از پرچم --adb=<[localhost:]port> استفاده کنید، همانطور که در مثال زیر نشان داده شده است:

./desktop-head-unit --adb=5999

به طور پیش‌فرض، DHU یک واحد هد سازگار با اندروید اتو را با رابط کاربری لمسی شبیه‌سازی می‌کند. با کلیک کردن DHU با ماوس، لمس‌های کاربر را شبیه‌سازی کنید. برای شبیه‌سازی واحدهای هد که از یک کنترلر چرخشی برای ورودی استفاده می‌کنند، می‌توانید از پرچم -i rotary استفاده کنید، همانطور که در مثال زیر نشان داده شده است:

./desktop-head-unit -i controller

وقتی DHU در حالت کنترل چرخشی است، می‌توانید از میانبرهای صفحه‌کلید برای شبیه‌سازی عملیات کنترل استفاده کنید. برای جزئیات بیشتر به بخش کنترل چرخشی مراجعه کنید. در حالت کنترل چرخشی، DHU کلیک‌های ماوس را نادیده می‌گیرد. شما باید Android Auto را با عملیات کنترل چرخشی شبیه‌سازی شده اجرا کنید.

سایر گزینه‌های خط فرمان برای DHU در جدول زیر فهرست شده‌اند:

گزینه توضیحات
-c , --config= FILE از فایل پیکربندی .ini مشخص شده استفاده کنید. برای جزئیات بیشتر به بخش پیکربندی DHU مراجعه کنید.
-i ، --input= INPUT از حالت ورودی مشخص‌شده، یکی از موارد زیر استفاده کنید: touch ، rotary یا hybrid .
-a , --adb= HOSTPORT از انتقال ADB استفاده کنید. host : port یا port . پیش‌فرض پورت ۵۲۷۷ است.
-a ، --usb= DEVICE_ID استفاده از انتقال USB AOA. اختیاری DEVICE_ID .
-v , --version نمایش اطلاعات نسخه.
-l , --licenses نمایش مجوزهای متن‌باز
-h , --headless در حالت بدون سر، بدون رابط کاربری اجرا کنید.
-t ، --always_show_window_on_top نمایش پنجره‌های DHU روی پنجره‌های دیگر (به طور پیش‌فرض غیرفعال است)
-? --help نمایش فهرست راهنما.

راهنمای کاربر DHU

این بخش ویژگی‌های پشتیبانی‌شده توسط DHU و نحوه استفاده از آنها را شرح می‌دهد.

دستورات در پنجره ترمینالی که DHU را در آن شروع کرده‌اید وارد می‌شوند. چندین دستور را می‌توان با جدا کردن آنها با ; در یک خط اجرا کرد.

سیستم

فرمان کلید توضیحات
help [ command ] نمایش مجموعه کامل دستورات. اگر نام دستوری مشخص شده باشد، راهنمای آن دستور نمایش داده می‌شود.
quit
exit
Alt+Q واحد اصلی را خاموش کنید.
sleep [ seconds ] به مدت یک ثانیه به حالت خواب برود. اگر تأخیری مشخص شده باشد، به همان تعداد seconds به حالت خواب برود. این می‌تواند برای اسکریپت‌نویسی واحد اصلی با استفاده از ./desktop-head-unit < script.txt ‎ در، مثلاً، یک محیط CI استفاده شود.
screenshot filename.png ذخیره اسکرین‌شات با نام filename.png .
licenses مجوزهای کتابخانه‌های مورد استفاده در DHU را نمایش دهید.
keycode keycode keycode ، یکی از نام‌های فهرست‌شده در بخش کدهای کلید، را ارسال کنید.

لمس و صفحه لمسی

وقتی لمس یا صفحه لمسی فعال باشد، کلیک کردن در پنجره نمایش، برای لمس، یا کلیک کردن در پنجره صفحه لمسی، برای صفحه لمسی، به عنوان یک رویداد لمسی ثبت می‌شود.

برای لمس، با کلیک راست روی محل انگشت اول، و سپس کلیک و نگه داشتن دکمه سمت راست برای انگشت دوم، چند لمسی را شبیه‌سازی کنید. نقطه مرکزی دو انگشت ثابت می‌ماند؛ حرکت ماوس به شما امکان می‌دهد آنها را حول مرکز بچرخانید، به داخل و خارج فشار دهید یا هر دو را انجام دهید.

برای صفحه لمسی، دکمه سمت چپ را کلیک کرده و نگه دارید تا بین عناصر مختلف رابط کاربری روی صفحه حرکت کنید. کلیک روی دکمه سمت راست، عنصری را که فوکوس دارد انتخاب می‌کند.

فرمان کلید توضیحات
tap xy یک رویداد لمس را در مختصات مشخص شده شبیه‌سازی کنید.

کنترل کننده چرخشی

DHU از کنترلر چرخشی پشتیبانی می‌کند. وقتی فعال باشد، اقدامات زیر پشتیبانی می‌شوند:

  • کلیک کردن به بالا، پایین، چپ و راست روی D-pad
  • چرخش در جهت عقربه‌های ساعت و خلاف جهت عقربه‌های ساعت
  • انجام یک حرکت چرخشی سریع (پنج قدم همزمان)
  • کلیک کردن به پایین و عقب روی کنترلر

دستورات و کلیدهای اتصال در جدول زیر فهرست شده‌اند.

چرخ اسکرول روی ماوس، دستورات dpad rotate ارسال می‌کند و کلیک دکمه وسط ماوس، که معمولاً چرخ اسکرول است، دستورات dpad click ارسال می‌کند.

توجه داشته باشید که اکثر خودروها صفحه نمایش لمسی دارند. برخی از خودروها فقط کنترل‌کننده‌های چرخشی دارند و برخی دیگر ترکیبی از لمس و کنترل‌کننده دارند. خودروها همچنین می‌توانند از صفحه لمسی پشتیبانی کنند که می‌تواند برای پیمایش نقشه و ورود متن استفاده شود. هنگام شبیه‌سازی واحدهای هد خودروهای مختلف، به این پیکربندی‌های مختلف توجه داشته باشید.

فرمان کلید توضیحات
dpad {up|down|left|right} کلیدهای جهت‌نما کنترل کننده چرخشی را حرکت دهید.
dpad {ur|dl|ul|dr} کنترل کننده چرخشی را حرکت دهید.
dpad soft {left|right} کلیدهای Shift+جهت‌نما دکمه‌های کناری موجود در برخی از کنترلرهای چرخشی را فشار دهید.
dpad click بازگشت کنترل کننده چرخشی را فشار دهید.
dpad back بک‌اسپیس دکمه بازگشت (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 نوبت بعدی من کی است؟

برای اجرای یک فایل .wav ‎ جداگانه در خط فرمان DHU، از دستور زیر استفاده کنید:

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 از شبیه‌سازی تغییرات در داده‌های حسگر خودرو با دستورات زیر پشتیبانی می‌کند. برای شبیه‌سازی داده‌های حسگر و ارسال آن به Android Auto، حسگرهای مربوطه باید با فایل پیکربندی .ini استفاده شده هنگام راه‌اندازی DHU فعال شوند.

فرمان توضیحات
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 ] مکان را روی مقادیر طول و عرض جغرافیایی مشخص شده به همراه دقت اختیاری (m)، ارتفاع (m)، سرعت (m/s) و جهت (degrees) تنظیم کنید. در صورت نیاز، برای صرف نظر کردن از پارامترهای اختیاری، 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 (دسی بل) و used در fix ( true یا false ) تنظیم کنید.
parking_brake engaged سنسور ترمز دستی را روی true یا false تنظیم کنید.
gear gear_value سنسور دنده را روی مقدار مشخص شده تنظیم کنید (برای مثال، 0 برای خلاص، 100 برای حرکت، 101 برای پارک و 102 برای دنده عقب).

حالت‌های روز و شب

DHU با دستورات و کلیدهای اتصال زیر، از شبیه‌سازی تغییر حالت بین روز و شب پشتیبانی می‌کند:

فرمان کلید توضیحات
day شیفت+N حالت روز را فعال کنید—روشنایی بالا، رنگ کامل.
night کنترل+N حالت شب را فعال کنید—روشنایی کم، کنتراست بالا.
daynight
nightday
ن حالت روز یا شب را تغییر دهید.

مدیریت تمرکز

DHU با استفاده از دستورات زیر، از شبیه‌سازی اینکه آیا اندروید اتو روی واحد اصلی فوکوس کرده است یا خیر، پشتیبانی می‌کند:

فرمان توضیحات
focus video {on|off|toggle} فعال یا غیرفعال کردن فوکوس ویدیو روی پخش کننده اصلی. خاموش کردن فوکوس ویدیو، پنهان کردن پخش کننده اصلی در اندروید اتو را شبیه‌سازی می‌کند.
focus audio {on|off|toggle} فعال یا غیرفعال کردن فوکوس صوتی روی پخش کننده اصلی. خاموش کردن فوکوس صوتی، پخش منبع صوتی خودش را توسط پخش کننده اصلی شبیه‌سازی می‌کند.
focus nav {on|off|toggle} فعال یا غیرفعال کردن فوکوس ناوبری روی دستگاه اصلی. خاموش کردن فوکوس ناوبری، دستگاه اصلی را در حال اجرای سیستم ناوبری خود شبیه‌سازی می‌کند.

محدودیت‌ها و وضعیت رانندگی

DHU از شبیه‌سازی محدودیت‌های خاصی هنگام حرکت وسیله نقلیه، مانند غیرفعال کردن صفحه کلید و عدم اجازه تنظیمات تلفن، با استفاده از دستورات زیر پشتیبانی می‌کند:

فرمان کلید توضیحات
restrict none یو همه محدودیت‌ها را غیرفعال کنید.
restrict all شیفت+U همه محدودیت‌ها، مانند شبیه‌سازی رانندگی، را فعال کنید.

خوشه ابزار

DHU از شبیه‌سازی یک صفحه کیلومترشمار پشتیبانی می‌کند. این صفحه کیلومترشمار معمولاً پشت فرمان قرار دارد و در طول ناوبری اطلاعات اولیه‌ای در مورد پیچ ​​بعدی - مانند نام جاده بعدی یا فلش راهنما - مسافت یا زمان را نشان می‌دهد. همچنین اطلاعات مربوط به تماس‌های تلفنی در حال انجام را نیز نمایش می‌دهد.

پنجره‌ی ابزار دقیق DHU که اطلاعات ناوبری و وضعیت تماس را نشان می‌دهد.
پنجره‌ی ابزار دقیق DHU که اطلاعات ناوبری و وضعیت تماس را نشان می‌دهد.

این قابلیت را می‌توان با استفاده از ورودی instrumentcluster در بخش [general] فایل پیکربندی، یا با استفاده از ورودی‌های navcluster یا phonecluster برای کنترل جداگانه هر ویژگی، فعال کرد.

[general]
...
instrumentcluster = true

نمایش خوشه‌ای

برخی از وسایل نقلیه دارای نمایشگرهای خوشه‌ای هستند که قادر به نمایش اطلاعات بصری غنی مانند کاشی‌های نقشه هستند. با شروع از نسخه ۲.۱ DHU (که در حال حاضر با استفاده از کانال به‌روزرسانی بتای اندروید استودیو در دسترس است)، می‌توانید چنین نمایشگری را در دستگاه توسعه خود شبیه‌سازی کنید.

این کار را می‌توان با استفاده از یک فایل پیکربندی با بخش [display] خوشه‌ای انجام داد. بخش‌های [display] از همان گزینه‌های پیکربندی ویدیویی پشتیبانی می‌کنند که نمایشگر اصلی در بخش [general] فایل پیکربندی شده است.

شکل ۳. صفحه اصلی هنگام اجرای DHU با نمایشگر خوشه ثانویه.
شکل ۴. صفحه نمایش خوشه‌ای هنگام اجرای DHU با یک صفحه نمایش خوشه‌ای ثانویه.
...

# 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

وضعیت پخش رسانه

DHU از یک نمایشگر اطلاعات اضافی برای نمایش وضعیت پخش رسانه، مانند آهنگ در حال پخش، پشتیبانی می‌کند.

پنجره وضعیت پخش رسانه DHU که اطلاعات پخش را نشان می‌دهد.
پنجره وضعیت پخش رسانه DHU که اطلاعات پخش را نشان می‌دهد.

این قابلیت را می‌توان با استفاده از ورودی playbackstatus در بخش [general] فعال کرد.

[general]
...
playbackstatus = true

کدهای کلید

DHU مجموعه‌ای از کدهای کلید پیش‌فرض را ارائه می‌دهد که مجموعه‌ای از دکمه‌های میانبر موجود در وسایل نقلیه را شبیه‌سازی می‌کند. به عنوان مثال، کد کلید home را می‌توان در اعلان DHU به صورت زیر فعال کرد:

keycode home

جدول زیر سایر کدهای کلید موجود را فهرست می‌کند:

کد کلید توضیحات
home به صفحه اصلی بروید.
back برو عقب.
call
endcall
تماس برقرار کنید یا تماس را قطع کنید.
search جستجوی محرک.
media_play_pause
media_play
media_pause
پخش یا مکث رسانه.
media_next
media_previous
به آهنگ رسانه بعدی یا قبلی بروید.
media به برنامه پیش‌فرض رسانه بروید.
navigation به برنامه ناوبری پیش‌فرض بروید.
tel به برنامه تلفن پیش‌فرض بروید.

DHU را پیکربندی کنید

DHU از یک فایل پیکربندی .ini برای تغییر حالت‌های ورودی بین کنترل لمسی و چرخشی و تنظیم نرخ فریم، وضوح تصویر و DPI درخواستی دستگاه پخش از تلفن پشتیبانی می‌کند.

محل پیش‌فرض فایل پیکربندی ~/.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 بولی فعال کردن استفاده از تاچ‌پد برای پیمایش رابط کاربری.
touchpadtapasselect false بولی وقتی مقدار آن درست باشد، ضربه زدن روی صفحه لمسی یک رویداد انتخاب است.
touchpaduiabsolute false بولی وقتی touchpadnavigation روی true تنظیم شده باشد، تعیین کنید که آیا لمس‌ها باید به صورت مطلق یا به صورت حرکات (gestures) در نظر گرفته شوند.

پیکربندی ویدیو

اندروید اتو از سه وضوح تصویر ویدیویی پشتیبانی می‌کند:

  • ۴۸۰p (۸۰۰x۴۸۰، پیش‌فرض)
  • ۷۲۰p (۱۲۸۰x۷۲۰)
  • ۱۰۸۰p (۱۹۲۰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 ، اندازه پنجره DHU را کاهش می‌دهد تا مقادیر DPI بزرگتر را در نظر بگیرد. وقتی false ، مقادیر DPI بزرگتر منجر به پنجره‌های بزرگتر می‌شود که نمایشگرهای واقعی را تقلید نمی‌کند اما به بررسی محتوای بصری کمک می‌کند.
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 است. قالب بالا، پایین، چپ، راست است.
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 بولی داده‌های حسگر ماهواره‌ای GPS را فعال کنید.
parking_brake false بولی داده‌های حسگر ترمز دستی را فعال کنید.
gear false بولی فعال کردن داده‌های حسگر دنده

گزینه‌های پیکربندی متنوع

جدول زیر گزینه‌های پیکربندی دیگر را فهرست می‌کند:

نام پیش‌فرض نوع توضیحات
instrumentcluster false بولی فعال کردن خوشه ابزار. یک پنجره به رابط کاربری اضافه می‌کند تا وضعیت ناوبری و تلفن را نمایش دهد.
navcluster false بولی فعال کردن خوشه ابزار. یک پنجره به رابط کاربری اضافه می‌کند تا وضعیت ناوبری را نمایش دهد.
phonecluster false بولی فعال کردن خوشه ابزار. یک پنجره به رابط کاربری اضافه می‌کند تا وضعیت تلفن را نمایش دهد.
playbackstatus false بولی فعال کردن وضعیت پخش. پنجره‌ای به رابط کاربری اضافه می‌کند تا پیام‌های وضعیت پخش را نمایش دهد.
driverposition left رشته یکی از: left ، center ، یا right .
windowleft عدد صحیح موقعیت چپ پنجره اصلی را تنظیم کنید.
windowtop عدد صحیح موقعیت بالای پنجره اصلی را تنظیم کنید.
fueltypes unleaded رشته‌ها یک یا چند مورد از موارد زیر، در یک لیست جدا شده با کاما:
  • unleaded
  • leaded
  • diesel-1
  • diesel-2
  • biodiesel
  • e85
  • lpg
  • cng
  • lng
  • hydrogen
  • electric
  • other
  • unknown
evconnectors رشته‌ها صفر یا بیشتر از موارد زیر، در یک لیست جدا شده با کاما:
  • j1772
  • mennekes
  • chademo
  • combo-1
  • combo-2
  • roadster
  • hpwc
  • gbt
  • supercharger
  • other
  • unknown
فقط در صورتی تنظیم شود که fueltypes شامل electric باشد.

عیب‌یابی

گاهی اوقات DHU هنگام اتصال اولیه، صفحه خالی نشان می‌دهد. می‌توانید با انجام موارد زیر این مشکل را حل کنید:

  1. DHU را ببندید.
  2. برای متوقف کردن و راه‌اندازی مجدد سرور واحد اصلی، مرحله ۵ که در بخش اجرای DHU توضیح داده شده است را دنبال کنید.
  3. DHU را دوباره شروع کنید.
  4. مجوزهای اضافی درخواست شده روی صفحه تلفن را اعطا کنید. ممکن است DHU دوباره خاموش شود.
  5. در صورت لزوم، DHU را مجدداً راه اندازی کنید.