AAOS समय स्रोत कॉन्फ़िगर करें

यह सुविधा साझेदारों को समय को सिंक्रनाइज़ करने का तरीका चुनने में सक्षम बनाती है, चाहे वह एंड्रॉइड ऑटोमोटिव ऑपरेटिंग सिस्टम (एएओएस) से हो या वाहन सिस्टम से एंड्रॉइड तक। गुणवत्ता कार्यान्वयन सुनिश्चित करने के लिए, आप मूल्यों को प्रभावी ढंग से प्रचारित करने के लिए नीचे वर्णित दो नई वीएचएएल संपत्तियों में से एक का उपयोग करने के लिए एएओएस को कॉन्फ़िगर कर सकते हैं। उपयोग:

  • समय के लिए सत्य के स्रोत के रूप में Android का उपयोग करने के लिए ANDROID_EPOCH_TIME । वीएचएएल इस राइट-ओनली प्रॉपर्टी का समर्थन करता है, जो एंड्रॉइड से अन्य वाहन प्रणालियों, जैसे इलेक्ट्रॉनिक कंट्रोल यूनिट्स (ईसीयू) और बॉडी कंट्रोल मॉड्यूल (बीसीएम) में समय परिवर्तन के बारे में संचार करता है।
  • समय के लिए सत्य के स्रोत के रूप में एंड्रॉइड का उपयोग न करने का EXTERNAL_CAR_TIME । इस मामले में, वीएचएएल केवल-पढ़ने के लिए EXTERNAL_CAR_TIME प्रॉपर्टी का समर्थन करता है, जो अन्य वाहन प्रणालियों (जैसे ईसीयू और बीसीएम) से एंड्रॉइड तक समय परिवर्तन का संचार करता है।

एएओएस आपको एंड्रॉइड के भीतर विभिन्न समय स्रोतों को प्राथमिकता देने में मदद करने के लिए एक कॉन्फ़िगर करने योग्य TimeDetectorStrategy भी प्रदान करता है।

एंड्रॉइड समय के लिए सत्य का स्रोत है

जब एंड्रॉइड को समय के स्रोत के रूप में उपयोग किया जाता है, तो ओईएम अन्य कार सिस्टम (ईसीयू और बीसीएम सहित) को एंड्रॉइड समय के साथ सिंक्रनाइज़ कर सकते हैं।

ऐसा करने के लिए, VHAL कार्यान्वयन को केवल-लिखने योग्य संपत्ति ANDROID_EPOCH_TIME संपत्ति का समर्थन करना चाहिए। एंड्रॉइड बूट समय पर और जब भी एंड्रॉइड में समय स्रोत बदला जाता है, सिस्टम समय को पढ़कर संपत्ति के लिए एक अपडेट प्रकाशित करता है।

एंड्रॉइड समय के लिए सत्य का स्रोत नहीं है

जब एंड्रॉइड का उपयोग समय के स्रोत के रूप में नहीं किया जाता है, तो आप समय के सत्य के स्रोत के रूप में एंड्रॉइड समय को सिंक्रनाइज़ कर सकते हैं (उदाहरण के लिए, ईसीयू या बीसीएम के साथ)। इस मामले में, वीएचएएल कार्यान्वयन को केवल पढ़ने योग्य संपत्ति EXTERNAL_CAR_TIME का समर्थन करना चाहिए और जब भी समय का स्रोत बदलता है या घड़ी को पुन: कैलिब्रेट करता है तो इस संपत्ति पर अपडेट प्रकाशित करना चाहिए।

ओईएम को यह भी सुनिश्चित करना होगा कि:

  • config_autoTimeSourcesPriority मान core/res/res/values/config.xml में समाहित हैं।
  • CarServices ओवरले कॉन्फ़िगरेशन packages/services/Car/service/res/values/config.xml में config_enableExternalCarTimeToExternalTimeSuggestion प्रॉपर्टी को true पर सेट किया गया है।
  • TimeDetectorStrategy कॉन्फ़िगरेशन में external समय की उचित प्राथमिकता है। अधिक जानने के लिए, जीएनएसएस टाइम डिटेक्शन देखें। उदाहरण के लिए:
    <!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list take precedence over lower ones.
    See com.android.server.timedetector.TimeDetectorStrategy for available sources. -->
         <string-array name="config_autoTimeSourcesPriority">
            <item>external</item>
            <item>gnss</item>
            <item>network</item>
            <item>telephony</item>
        </string-array>
    

एंड्रॉइड आंतरिक कार्यान्वयन विवरण

ANDROID_EPOCH_TIME VHAL प्रॉपर्टी समर्थित होने पर निम्न प्रवाह होता है:

  1. TimeHalService (CarServices में) Intent.ACTION_TIME_CHANGED के लिए एंड्रॉइड सिस्टम से एक प्रसारण प्राप्त करता है।
  2. TimeHalService VHAL प्रॉपर्टी ANDROID_EPOCH_TIME के ​​लिए एक अपडेट प्रकाशित करता है।
  3. वीएचएएल प्राप्त समय मूल्य को विभिन्न ईसीयू और/या बीसीएम इकाइयों तक प्रसारित कर सकता है।

निम्नलिखित प्रवाह तब होता है जब EXTERNAL_CAR_TIME VHAL संपत्ति समर्थित होती है:

  1. VHAL EXTERNAL_CAR_TIME प्रॉपर्टी को अपडेट करता है।
  2. TimeHalService (CarServices में) एक सदस्यता के माध्यम से संपत्ति को पढ़ता है।
  3. TimeHalService एक ExternalTimeSuggestion बनाता है और TimeManager को भेजता है।
  4. TimeManager सुझाव को TimeDetectorService को अग्रेषित करता है।
  5. TimeDetectorService एक नया सिस्टम समय चुनने के लिए TimeDetectorStrategy का उपयोग करता है।