डेस्कटॉप हेड यूनिट का इस्तेमाल करके जांच करना

डेस्कटॉप हेड यूनिट (डीएचयू) की मदद से, डेवलपमेंट मशीन को Android Auto हेड यूनिट के तौर पर इस्तेमाल किया जा सकता है. इससे Android Auto ऐप्लिकेशन चलाए और टेस्ट किए जा सकते हैं. DHU, Windows, macOS, और Linux सिस्टम पर काम करता है.

DHU इंस्टॉल करने के बाद, Android Auto ऐप्लिकेशन की जांच की जा सकती है. इसके लिए, अपने फ़ोन या टैबलेट को DHU से कनेक्ट करें. इसके लिए, DHU चलाना लेख में बताए गए किसी एक तरीके का इस्तेमाल करें.

DHU से जुड़ी गड़बड़ियों की शिकायत करने या सुविधाओं का अनुरोध करने के लिए, समस्या को ट्रैक करने वाले टूल का इस्तेमाल करें.

DHU इंस्टॉल करना

अपनी डेवलपमेंट मशीन पर DHU इंस्टॉल करने के लिए:

  1. Android 9 (एपीआई लेवल 28) या इससे ऊपर के वर्शन पर काम करने वाले मोबाइल डिवाइस पर डेवलपर मोड चालू करें. इसके लिए, डिवाइस पर डेवलपर के लिए उपलब्ध विकल्प कॉन्फ़िगर करना लेख पढ़ें.
  2. अपने ऐप्लिकेशन को डिवाइस पर कंपाइल और इंस्टॉल करें.
  3. डिवाइस पर Android Auto इंस्टॉल करें. अगर Android Auto पहले से इंस्टॉल है, तो पक्का करें कि आपके पास इसका नया वर्शन हो.
  4. Android Studio में, SDK Manager खोलें और SDK Tools टैब पर जाएं. इसके बाद, Android Auto Desktop Head Unit Emulator पैकेज डाउनलोड करें.

    DHU 2.0 को दिखाने वाला SDK Manager
    एसडीके मैनेजर में DHU 2.0 दिख रहा है.

    DHU, SDK_LOCATION/extras/google/auto/ डायरेक्ट्री में इंस्टॉल है.

  5. Linux या macOS सिस्टम पर, DHU बाइनरी को एक्ज़ीक्यूटेबल बनाने के लिए, उस डायरेक्ट्री में यह कमांड चलाएं:

chmod +x ./desktop-head-unit

Linux के लिए अतिरिक्त चरण

अगर Linux सिस्टम पर DHU का 2.x वर्शन इस्तेमाल किया जा रहा है, तो आपको कुछ और लाइब्रेरी इंस्टॉल करनी होंगी. DHU बाइनरी, GLIBC के 2.32 या उसके बाद के वर्शन पर निर्भर करती है. इस कमांड को चलाकर, अपने सिस्टम का GLIBC वर्शन देखा जा सकता है:

ldd --version

अगर वर्शन 2.32 से पहले का है, तो GLIBC को 2.32 या इसके बाद के वर्शन पर अपडेट करें. इसके लिए, आपको ओएस को GLIBC 2.32 या इसके बाद के वर्शन के साथ काम करने वाले वर्शन पर अपग्रेड करना पड़ सकता है.

आपको libc++1 और libc++abi1 लाइब्रेरी भी इंस्टॉल करनी होंगी. Linux डिस्ट्रिब्यूशन के हिसाब से, इंस्टॉल करने का तरीका अलग-अलग होता है. उदाहरण के लिए, Debian से लिए गए Linux डिस्ट्रिब्यूशन पर, इस कमांड का इस्तेमाल करके लाइब्रेरी इंस्टॉल की जा सकती हैं:

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

DHU के रिलीज़ से पहले वाले वर्शन इंस्टॉल करना

DHU के प्री-रिलीज़ वर्शन का ऐक्सेस पाने के लिए, Android Studio के प्रीव्यू वर्शन का इस्तेमाल करें या Android Studio के मौजूदा इंस्टॉलेशन के अपडेट चैनल को बदलकर बीटा चैनल पर स्विच करें.

DHU को चलाएं

DHU इंस्टॉल करने के बाद, Android Auto ऐप्लिकेशन की जांच की जा सकती है. इसके लिए, अपने मोबाइल डिवाइस और वर्कस्टेशन को यूएसबी से कनेक्ट करें. अपने मोबाइल डिवाइस को डेवलपमेंट मशीन से कनेक्ट करके, DHU चलाएं. इसके लिए, ऐक्सेसरी मोड (DHU 2.x के लिए सुझाव दिया गया है) या ADB टनलिंग का इस्तेमाल करें.

ऐक्सेसरी मोड का इस्तेमाल करके कनेक्ट करना

Android Auto, DHU के 2.x वर्शन से कनेक्ट करने के लिए, Android Open Accessory (AOA) प्रोटोकॉल का इस्तेमाल करता है. इसके लिए, यह कमांड इस्तेमाल की जाती है:

./desktop-head-unit --usb

डिफ़ॉल्ट रूप से, DHU उपलब्ध यूएसबी डिवाइसों की सूची को स्कैन करता है. साथ ही, यह सूची में मौजूद पहले डिवाइस से कनेक्ट करने की कोशिश करता है. किसी डिवाइस को टारगेट करने के लिए, डिवाइस आईडी को --usb कमांड में इस तरह शामिल करें:

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

ADB टनलिंग का इस्तेमाल करके कनेक्ट करना

इस तरीके के लिए, Android डीबग ब्रिज (adb) के ज़रिए Android Auto की मुख्य यूनिट के सर्वर से कनेक्शन सेट अप करना ज़रूरी है. टनलिंग सेट अप करने और DHU चलाने के लिए, यह तरीका अपनाएं:

  1. अगर Android Auto का डेवलपर मोड पहले से चालू नहीं है, तो उसे चालू करें.
  2. अगर हेड यूनिट सर्वर पहले से नहीं चल रहा है, तो ओवरफ़्लो मेन्यू खोलें और हेड यूनिट सर्वर शुरू करें को चुनें. इसे पहले फ़िगर में दिखाया गया है.

    डिवाइस पर, सूचना क्षेत्र में फ़ोरग्राउंड सेवा दिखती है. इससे पता चलता है कि सर्वर चल रहा है. इसे दूसरी इमेज में दिखाया गया है.

    डेवलपर के विकल्पों वाला कॉन्टेक्स्ट मेन्यू

    पहली इमेज. डेवलपर के लिए सेटिंग और टूल वाला कॉन्टेक्स्ट मेन्यू.

    हेड यूनिट सर्वर के चालू होने की सूचना

    दूसरी इमेज. हेड यूनिट का सर्वर चालू होने की सूचना.

  3. Android Auto ऐप्लिकेशन में, सेटिंग के सबसे ऊपर मौजूद, पहले कनेक्ट की गई कारें पर टैप करें. इसके बाद, पुष्टि करें कि Android Auto में नई कारें जोड़ें सेटिंग चालू हो.

  4. यूएसबी का इस्तेमाल करके, मोबाइल डिवाइस को डेवलपमेंट मशीन से कनेक्ट करें.

  5. पक्का करें कि मोबाइल डिवाइस की स्क्रीन अनलॉक हो, ताकि DHU लॉन्च किया जा सके.

  6. डेवलपमेंट मशीन पर, सॉकेट कनेक्शन को डेवलपमेंट मशीन के पोर्ट 5277 से मोबाइल डिवाइस के उसी पोर्ट नंबर पर फ़ॉरवर्ड करने के लिए, यह adb कमांड चलाएँ. इस कॉन्फ़िगरेशन की मदद से, DHU को मोबाइल डिवाइस पर चल रहे हेड यूनिट सर्वर से टीसीपी सॉकेट के ज़रिए कनेक्ट किया जा सकता है.

    adb forward tcp:5277 tcp:5277
  7. DHU शुरू करने के लिए, SDK_LOCATION/extras/google/auto/ डायरेक्ट्री से Windows पर desktop-head-unit.exe या macOS या Linux पर ./desktop-head-unit कमांड चलाएं:

    cd SDK_LOCATION/extras/google/auto
    desktop-head-unit.exe # Windows
    ./desktop-head-unit # macOS or Linux
डेवलपमेंट मशीन पर चल रहा DHU
DHU, डेवलपमेंट मशीन पर चल रहा हो.
  1. अगर मोबाइल डिवाइस को पहली बार DHU से कनेक्ट किया जा रहा है, तो सेवा की शर्तों को स्वीकार करने के लिए, मोबाइल डिवाइस की स्क्रीन देखें. साथ ही, ज़रूरत के मुताबिक अनुमति की सेटिंग में बदलाव करें.

DHU शुरू होने के बाद, अपने ऐप्लिकेशन को चलाने और उसकी जांच करने के लिए, DHU कंसोल के निर्देशों का इस्तेमाल किया जा सकता है.

कमांड-लाइन के विकल्प

डिफ़ॉल्ट रूप से, हेड यूनिट सर्वर पोर्ट 5277 से कनेक्ट होता है. होस्ट या पोर्ट को बदलने के लिए, --adb=<[localhost:]port> फ़्लैग का इस्तेमाल करें. इसका उदाहरण यहां दिया गया है:

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

डिफ़ॉल्ट रूप से, DHU, Android Auto के साथ काम करने वाली हेड यूनिट की तरह काम करता है. इसमें टचस्क्रीन वाला यूज़र इंटरफ़ेस होता है. माउस से 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. डिफ़ॉल्ट रूप से, यह पोर्ट 5277 पर सेट होता है.
-a, --usb=DEVICE_ID यूएसबी एओए ट्रांसपोर्ट का इस्तेमाल करें. ज़रूरी नहीं DEVICE_ID.
-v, --version वर्शन की जानकारी दिखाएं.
-l, --licenses ओपन सोर्स लाइसेंस दिखाओ.
-h, --headless बिना यूज़र इंटरफ़ेस वाले हेडलेस मोड में चलता है.
-t, --always_show_window_on_top डीएचयू की विंडो को अन्य विंडो के ऊपर दिखाएं (यह सुविधा डिफ़ॉल्ट रूप से बंद होती है)
-?, --help सहायता पेज दिखाएं.

DHU के इस्तेमाल के लिए गाइड

इस सेक्शन में, DHU के साथ काम करने वाली सुविधाओं और उन्हें इस्तेमाल करने के तरीके के बारे में बताया गया है.

कमांड, उस टर्मिनल विंडो में डाली जाती हैं जहां से आपने DHU शुरू किया था. एक ही लाइन में कई कमांड चलाने के लिए, उन्हें ; से अलग करें.

सिस्टम

निर्देश सुरक्षा कुंजी ब्यौरा
help [command] पूरा कमांड सेट दिखाओ. अगर किसी कमांड का नाम दिया गया है, तो उस कमांड के बारे में मदद दिखाएं.
quit
exit
Alt+Q मुख्य यूनिट को बंद करें.
sleep [seconds] एक सेकंड के लिए सो जाओ. अगर देरी के बारे में बताया गया है, तो उतनी देर तक seconds. इसका इस्तेमाल, हेड यूनिट को स्क्रिप्ट करने के लिए किया जा सकता है. जैसे, सीआई एनवायरमेंट में ./desktop-head-unit < script.txt के साथ स्क्रिप्ट करना.
screenshot filename.png स्क्रीनशॉट को filename.png. में सेव करना
licenses DHU में इस्तेमाल की गई लाइब्रेरी के लाइसेंस दिखाएं.
keycode keycode keycode भेजें. यह कीकोड सेक्शन में दिए गए नामों में से एक है.

टच और टचपैड

जब टच या टचपैड की सुविधा चालू होती है, तो डिसप्ले विंडो पर क्लिक करने पर, टच के लिए या टचपैड के लिए टचपैड विंडो पर क्लिक करने पर, टच इवेंट रजिस्टर होता है.

टच के लिए, पहली उंगली की जगह पर राइट क्लिक करके मल्टी-टच की सुविधा का इस्तेमाल करें. इसके बाद, दूसरी उंगली के लिए राइट बटन पर क्लिक करके उसे दबाकर रखें. दो उंगलियों का सेंटरपॉइंट एक ही जगह पर रहता है. माउस को घुमाने से, उंगलियों को सेंटर के चारों ओर घुमाया जा सकता है, पिंच इन और आउट किया जा सकता है या दोनों काम किए जा सकते हैं.

टचपैड का इस्तेमाल करने पर, स्क्रीन पर मौजूद अलग-अलग यूज़र इंटरफ़ेस (यूआई) एलिमेंट के बीच स्क्रोल करने के लिए, बाएं बटन को क्लिक करके रखें. राइट बटन पर क्लिक करने से, फ़ोकस किया गया एलिमेंट चुना जाता है.

निर्देश सुरक्षा कुंजी ब्यौरा
tap x y तय किए गए कोऑर्डिनेट पर टच इवेंट का सिम्युलेशन करता है.

रोटरी कंट्रोलर

DHU में रोटरी कंट्रोलर की सुविधा काम करती है. चालू होने पर, ये कार्रवाइयाँ की जा सकती हैं:

  • डी-पैड पर ऊपर, नीचे, बाएं, और दाएं क्लिक करना
  • घड़ी की दिशा में और घड़ी की उलटी दिशा में घुमाना
  • रोटेशन फ़्लिक (एक साथ पांच चरणों में)
  • कंट्रोलर पर नीचे की ओर क्लिक करना और फिर से क्लिक करना

कमांड और कीबोर्ड शॉर्टकट की जानकारी यहां दी गई है.

माउस पर मौजूद स्क्रोल व्हील से dpad rotate कमांड भेजी जाती हैं. साथ ही, माउस के बीच वाले बटन (आम तौर पर, स्क्रोल व्हील) को क्लिक करने से dpad click कमांड भेजी जाती हैं.

ध्यान दें कि ज़्यादातर कारों में टच स्क्रीन होती हैं. कुछ कारों में सिर्फ़ रोटरी कंट्रोलर होते हैं. वहीं, कुछ में टच और कंट्रोलर, दोनों होते हैं. कुछ कारों में टचपैड भी होता है. इसका इस्तेमाल मैप को पैन करने और टेक्स्ट डालने के लिए किया जा सकता है. अलग-अलग वाहनों की हेड यूनिट को सिम्युलेट करते समय, इन अलग-अलग कॉन्फ़िगरेशन का ध्यान रखें.

निर्देश सुरक्षा कुंजी ब्यौरा
dpad {up|down|left|right} ऐरो बटन रोटरी कंट्रोलर को घुमाएं.
dpad {ur|dl|ul|dr} रोटरी कंट्रोलर को घुमाएं.
dpad soft {left|right} Shift+ऐरो बटन कुछ रोटरी कंट्रोलर पर मौजूद साइड बटन दबाएं.
dpad click लौटाएं रोटरी कंट्रोलर को दबाएं.
dpad back Backspace कुछ रोटरी कंट्रोलर पर मौजूद 'वापस जाएं' बटन दबाएं.
dpad rotate left 1 रोटरी कंट्रोलर को घड़ी की उल्टी दिशा में (बाईं ओर) घुमाएं.
dpad rotate right 2 रोटरी कंट्रोलर को घड़ी की दिशा में (दाईं ओर) घुमाएं.
dpad flick left Shift+1 रोटरी कंट्रोलर को घड़ी की उल्टी दिशा में तेज़ी से घुमाएं.
dpad flick right Shift+2 रोटरी कंट्रोलर को घड़ी की दिशा में तेज़ी से घुमाएं.
dpad 0-9*#+ न्यूमेरिक कीपैड

माइक्रोफ़ोन

DHU में, बोलकर इनपुट देने या पहले से रिकॉर्ड किए गए वॉइस ट्रैक को चलाने के लिए, माइक्रोफ़ोन का इस्तेमाल किया जा सकता है. सुविधा के लिए, DHU में आवाज़ से कंट्रोल करने के लिए इस्तेमाल होने वाली सामान्य कमांड के लिए, ये साउंड फ़ाइलें शामिल की गई हैं. ये साउंड फ़ाइलें, SDK_LOCATION/extras/google/auto/voice/ डायरेक्ट्री में मौजूद होती हैं.

फ़ाइल का नाम टेक्स्ट
navhome.wav होम पेज पर जाएं.
navwork.wav ऑफ़िस का रास्ता दिखाओ.
navsoh.wav सिडनी ओपेरा हाउस पर जाएं.
navgoogle.wav 1600 Amphitheatre Parkway, California, USA जाने का रास्ता बताओ.
exitnav.wav नेविगेशन बंद करो.
howlong.wav मुझे वहां पहुंचने में कितना समय लगेगा?
showtraffic.wav ट्रैफ़िक दिखाओ.
showalternateroute.wav वैकल्पिक रास्ते दिखाओ.
pause.wav संगीत रोको.
nextturn.wav अगला मोड़ किस तरफ़ लेना है?

DHU प्रॉम्प्ट में किसी .wav फ़ाइल को चलाने के लिए, इस कमांड का इस्तेमाल करें:

mic play /path/to/filename.wav

यहां दी गई टेबल में, माइक्रोफ़ोन से जुड़ी अन्य कमांड दी गई हैं:

निर्देश सुरक्षा कुंजी ब्यौरा
mic begin M माइक्रोफ़ोन चालू करें. इसके लिए, स्टीयरिंग व्हील पर मौजूद बटन को क्लिक करने का ऐक्शन सिम्युलेट करें. इसके बाद, कंप्यूटर के माइक्रोफ़ोन से इनपुट मिलने का इंतज़ार करें.
mic play filename.wav माइक्रोफ़ोन चालू करो और बताई गई WAV फ़ाइल की रिकॉर्डिंग चलाओ. ध्यान दें: आपको WAV फ़ाइल के चलने की आवाज़ नहीं सुनाई देगी. हालांकि, आपको Android Auto से जवाब ज़रूर सुनाई देगा.
mic repeat mic play के साथ इस्तेमाल की गई पिछली रिकॉर्डिंग को फिर से चलाओ.
mic reject {on|off} माइक्रोफ़ोन के अनुरोधों को अस्वीकार करने की सुविधा चालू या बंद करें. इस सेटिंग के चालू होने पर, माइक्रोफ़ोन ऐक्सेस करने के सभी अनुरोध खारिज कर दिए जाते हैं.

सेंसर

DHU, वाहन के सेंसर डेटा में बदलावों को सिम्युलेट करने की सुविधा देता है. इसके लिए, ये कमांड इस्तेमाल की जा सकती हैं. सेंसर के डेटा को मॉक करने और उसे Android Auto पर भेजने के लिए, DHU शुरू करते समय, configuration .ini used फ़ाइल के साथ, उससे जुड़े सेंसर चालू होने चाहिए.

निर्देश ब्यौरा
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 रोटेशन की तय की गई स्पीड (रेडियन/सेकंड) पर सेट करें या (कोई पैरामीटर पास न करने पर) जाइरोस्कोप डेटा को अनसेट करें. अगर ज़रूरी हो, तो वैकल्पिक पैरामीटर छोड़ने के लिए 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]] जीपीएस सैटेलाइट सेंसर को, इस्तेमाल की जा रही वैल्यू में तय की गई संख्या पर सेट करें. साथ ही, ऐज़िमुथ (0 से 360 डिग्री के बीच), एलिवेशन (0 से 90 डिग्री के बीच), पीआरएन (स्यूडोरैंडम नॉइज़), एसएनआर (डीबी), और फ़िक्स में इस्तेमाल किया गया (true या false) की वैकल्पिक सूची भी सेट करें.
parking_brake engaged पार्किंग ब्रेक सेंसर को true या false पर सेट करें.
gear gear_value गियर सेंसर को बताई गई वैल्यू पर सेट करें. उदाहरण के लिए, न्यूट्रल के लिए 0, ड्राइव के लिए 100, पार्क के लिए 101, और रिवर्स के लिए 102.

दिन और रात के मोड

DHU, दिन और रात के मोड के बीच स्विच करने की सुविधा देता है. इसके लिए, ये निर्देश और कीबोर्ड शॉर्टकट इस्तेमाल किए जा सकते हैं:

निर्देश सुरक्षा कुंजी ब्यौरा
day Shift+N दिन के मोड को चालू करें—ज़्यादा चमक, पूरा रंग.
night Ctrl+N नाइट मोड चालू करें. इसमें कम रोशनी और ज़्यादा कॉन्ट्रास्ट होता है.
daynight
nightday
उत्तर दिन या रात के मोड के बीच टॉगल करें.

फ़ोकस मोड को मैनेज करना

DHU, इन कमांड का इस्तेमाल करके यह सिम्युलेट कर सकता है कि Android Auto, हेड यूनिट पर फ़ोकस कर रहा है या नहीं:

निर्देश ब्यौरा
focus video {on|off|toggle} हेड यूनिट पर वीडियो फ़ोकस करने की सुविधा चालू या बंद करें. वीडियो फ़ोकस करने की सुविधा बंद करने पर, ऐसा लगता है कि मुख्य यूनिट में Android Auto छिपा हुआ है.
focus audio {on|off|toggle} हेड यूनिट पर ऑडियो फ़ोकस की सुविधा चालू या बंद करें. ऑडियो फ़ोकस बंद करने पर, हेड यूनिट अपने ऑडियो सोर्स को चलाने लगती है.
focus nav {on|off|toggle} हेड यूनिट पर नेविगेशन फ़ोकस को चालू या बंद करें. नेविगेशन फ़ोकस बंद करने पर, हेड यूनिट के अपने नेविगेशन सिस्टम के चलने का सिम्युलेशन होता है.

पाबंदियां और ड्राइविंग की स्थिति

DHU, गाड़ी के चलने के दौरान कुछ पाबंदियों को लागू करने की सुविधा देता है. जैसे, कीबोर्ड को बंद करना और फ़ोन कॉन्फ़िगरेशन को अनुमति न देना. इसके लिए, इन कमांड का इस्तेमाल किया जाता है:

निर्देश सुरक्षा कुंजी ब्यौरा
restrict none U सभी पाबंदियां बंद करें.
restrict all Shift+U ड्राइविंग की स्थिति को सिम्युलेट करने के लिए, सभी पाबंदियां चालू करें.

इंस्ट्रूमेंट क्लस्टर

DHU, इंस्ट्रूमेंट क्लस्टर को इम्यूलेट करने की सुविधा देता है. यह क्लस्टर आम तौर पर स्टीयरिंग व्हील के पीछे होता है. इसमें नेविगेशन के दौरान, अगले मोड़ के बारे में बुनियादी जानकारी दिखती है. जैसे, अगली सड़क का नाम या मुड़ने का ऐरो, दूरी या समय. यह चालू फ़ोन कॉल के बारे में भी जानकारी दिखाता है.

DHU के इंस्ट्रुमेंट क्लस्टर की विंडो में, नेविगेशन और कॉल की स्थिति की जानकारी दिख रही है.
DHU की इंस्ट्रुमेंट क्लस्टर विंडो में, नेविगेशन और कॉल की स्थिति की जानकारी दिख रही है.

इसे कॉन्फ़िगरेशन फ़ाइल के [general] सेक्शन में मौजूद instrumentcluster एंट्री का इस्तेमाल करके चालू किया जा सकता है. इसके अलावा, हर सुविधा को अलग-अलग कंट्रोल करने के लिए, navcluster या phonecluster एंट्री का इस्तेमाल किया जा सकता है.

[general]
...
instrumentcluster = true

क्लस्टर डिसप्ले

कुछ वाहनों में क्लस्टर डिसप्ले होते हैं. ये मैप टाइल जैसी विज़ुअल जानकारी दिखा सकते हैं. DHU के 2.1 वर्शन से (यह फ़िलहाल Android Studio के बीटा वर्शन के अपडेट चैनल का इस्तेमाल करके उपलब्ध है), अपनी डेवलपमेंट मशीन पर इस तरह के डिसप्ले को एम्युलेट किया जा सकता है.

इसके लिए, क्लस्टर [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 पर मीडिया प्लेबैक का स्टेटस दिखाने वाली विंडो में, प्लेबैक की जानकारी दिख रही है.

इसे [general] सेक्शन में मौजूद playbackstatus एंट्री का इस्तेमाल करके चालू किया जा सकता है.

[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 फ़ाइल का इस्तेमाल करता है. इससे टच और रोटरी कंट्रोलर के बीच इनपुट मोड बदला जा सकता है. साथ ही, हेड यूनिट के लिए फ़ोन से अनुरोध किए गए फ़्रेम रेट, रिज़ॉल्यूशन, और डीपीआई को सेट किया जा सकता है.

कॉन्फ़िगरेशन फ़ाइल की डिफ़ॉल्ट जगह ~/.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 पर सेट हो, तब सेट करें कि टच को ऐब्सलूट या जेस्चर के तौर पर माना जाना चाहिए.

वीडियो कॉन्फ़िगरेशन

Android Auto में, वीडियो को इन तीन रिज़ॉल्यूशन में देखा जा सकता है:

  • 480 पिक्सल (800x480, डिफ़ॉल्ट)
  • 720 पिक्सल (1280x720)
  • 1080 पिक्सल (1920x1080)

चौड़ाई-ऊंचाई के अन्य अनुपात के लिए, हेड यूनिट ज़रूरत के हिसाब से लेटरबॉक्स (पिलरबॉक्स) के लिए मार्जिन तय कर सकती है. उदाहरण के लिए, अगर आपको 1000x600 की स्क्रीन चाहिए, तो रिज़ॉल्यूशन को 720 पिक्सल (1280x720) पर सेट करें. साथ ही, marginwidth को 280 और marginheight को 120 पर सेट करें. इससे, बाईं और दाईं ओर के किनारों पर 140 पिक्सल का मार्जिन और ऊपर और नीचे के किनारों पर 60 पिक्सल का मार्जिन जुड़ जाता है.

यहां दिए गए कॉन्फ़िगरेशन के उदाहरण में, सामान्य तौर पर इस्तेमाल होने वाली 6 इंच की स्क्रीन (750x450) को दिखाया गया है:

[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 होती है. फ़ॉर्मैट में सबसे ऊपर, सबसे नीचे, बाईं ओर, दाईं ओर की जानकारी होती है.
cropmargins false बूलियन अगर margins, marginheight या marginwidth वैल्यू सेट की जाती है, तो इस सेटिंग के लिए true वैल्यू सेट करने पर, वीडियो में ये मार्जिन नहीं दिखेंगे. इससे असली उपयोगकर्ता को दिखने वाली चीज़ों के बारे में ज़्यादा सटीक जानकारी मिलती है.
pixelaspectratio 1.0 फ़्लोट इस कुकी का इस्तेमाल वीडियो कॉन्फ़िगरेशन में किया जाता है.

सेंसर कॉन्फ़िगरेशन

सेंसर के डेटा को मॉक करने और उसे Android Auto पर भेजने के लिए, इन विकल्पों का इस्तेमाल करके, संबंधित सेंसर चालू किए जाने चाहिए. अगर कोई सेंसर चालू नहीं है, तो DHU कमांड का इस्तेमाल करके उस सेंसर के लिए भेजे गए किसी भी डेटा को अनदेखा कर दिया जाता है. इस कॉन्फ़िगरेशन को [sensors] सेक्शन में रखना ज़रूरी है. इसे [general] सेक्शन में नहीं रखा जा सकता. [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 बूलियन इंस्ट्रूमेंट क्लस्टर की सुविधा चालू करें. यह यूआई में एक विंडो जोड़ता है, ताकि नेविगेशन और फ़ोन की स्थिति दिखाई जा सके.
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 को रीस्टार्ट करें.