मॉनिटर इनिशियलाइज़ेशन के दौरान डायग्नोस्टिक घटनाओं के समय-आधारित डिबाउंसिंग के लिए समय सीमा को परिभाषित करता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: beb974918ec8उद्गमखुले प्रश्न (2)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
मॉनिटर इनिशियलाइज़ेशन के दौरान डायग्नोस्टिक घटनाओं के समय-आधारित डिबाउंसिंग के लिए समय सीमा को परिभाषित करता है।
डेटा संरचना ara::diag::TimeBased डायग्नोस्टिक घटनाओं [SWS_DM_00539] के लिए समय-आधारित डिबाउंसिंग के कॉन्फ़िगरेशन का कार्य करती है। यह ara::diag::Monitor के कंस्ट्रक्टर को मिलीसेकंड में थ्रेशोल्ड मान पास करती है, जिसकी समाप्ति के बाद किसी घटना को हील (healed) या दोषपूर्ण के रूप में वर्गीकृत किया जाता है। आने वाले स्थिति संदेशों पर इन सीमाओं के आधार पर Diagnostic Management आंतरिक डिबाउंस टाइमर को शुरू और नियंत्रित करता है। समय-आधारित डिबाउंसिंग प्रक्रियाओं के लिए रीस्टार्ट के दौरान आंतरिक काउंटर मान का पर्सिस्टेंट स्टोरेज समर्थित नहीं है AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 “Time-based debouncing”।
संदर्भ
C++ संरचना ara::diag::TimeBased AUTOSAR Adaptive Platform [SWS_DM_00539] के Diagnostic Management में डायग्नोस्टिक घटनाओं के समय-आधारित डिबाउंसिंग (time-based debouncing) के लिए कॉन्फ़िगरेशन मापदंडों को परिभाषित करती है। यह मिलीसेकंड में उन दोनों अवधियों को एनकैप्सुलेट करती है, जो किसी डायग्नोस्टिक घटना के स्थिति परिवर्तनों के लिए निर्णायक हैं: फॉल्ट थ्रेशोल्ड [SWS_DM_00629] के रूप में failedMs और हीलिंग थ्रेशोल्ड [SWS_DM_00630] के रूप में passedMs।
समग्र सिस्टम में, यह संरचना तीन आवश्यक घटकों को जोड़ती है: डायग्नोस करने वाला एप्लिकेशन फ़ंक्शन, क्लास ara::diag::Monitor और Diagnostic Management (DM) [SWS_DM_00550]। एप्लिकेशन घटना-विशिष्ट डिबाउंस समय निर्धारित करने के लिए संरचना को इंस्टैंशिएट करता है और इसे डायग्नोस्टिक मॉनिटर [SWS_DM_00550] के कंस्ट्रक्टर को पास करता है। इसके बाद DM इस घटना [SWS_DM_00015] के लिए समय-आधारित डिबाउंसिंग एल्गोरिदम को सक्रिय करता है और आंतरिक टाइमर तथा कॉन्फ़िगर किए गए थ्रेशोल्ड मानों के आधार पर इवेंट स्थिति बिट kTestFailedAUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 “Time-based debouncing” की गणना करता है।
डायनामिक संसाधनों के बिना एक साधारण डेटा कंटेनर के रूप में, ara::diag::TimeBased का एक सरल जीवन चक्र होता है [SWS_DM_00539]। संरचना आमतौर पर एप्लिकेशन द्वारा स्टैक पर या स्टेटिक मेमोरी क्षेत्र में स्थानीय रूप से बनाई जाती है, लक्ष्य समय के साथ इनिशियलाइज़ की जाती है और ara::diag::Monitor[SWS_DM_00550] (AUTOSAR_AP_SWS_Diagnostics §8.40.1.1.2.3 “Monitor”) के कंस्ट्रक्टर को मान के रूप में पास की जाती है।
व्याख्या: मान द्वारा पास (pass by value) किए जाने के कारण, मॉनिटर निर्माण के दौरान पैरामीटर कॉपी हो जाते हैं, ताकि कंस्ट्रक्टर कॉल पूरा होने के बाद मूल TimeBased ऑब्जेक्ट को सुरक्षित रूप से डिस्कार्ड किया जा सके। प्रश्न (खुला) DM उस समय से डिबाउंस टाइमर की डायनामिक स्थिति को स्वतंत्र रूप से प्रबंधित करता है और सिस्टम स्टार्टअप पर इसके मान को प्रारंभिक रूप से 0 पर सेट करता है [SWS_DM_00085]। चूंकि TimeBased में कोई आंतरिक सिंक्रोनाइज़ेशन तंत्र नहीं है, इसलिए एप्लिकेशन की ओर से साझा इंस्टेंस पर समवर्ती राइट एक्सेस को बाहर रखा जाना चाहिए।
उपयोग पथ
विशिष्ट उपयोग निम्नलिखित चरणों में विभाजित है:
पैरामीटराइज़ेशन और इनिशियलाइज़ेशन: एप्लिकेशन ara::diag::TimeBased को इंस्टैंशिएट करता है, failedMs[SWS_DM_00629] और passedMs[SWS_DM_00630] सेट करता है और संरचना को ara::diag::Monitor[SWS_DM_00550] के कंस्ट्रक्टर को पास करता है।
टाइमर इनिशियलाइज़ेशन: DM डिबाउंसिंग सेवा शुरू करता है और घटना-आंतरिक टाइमर को शून्य मान [SWS_DM_00085] के साथ इनिशियलाइज़ करता है।
पूर्व-परीक्षण परिणामों की रिपोर्टिंग: यदि मॉनिटर दोष-मुक्त स्थिति का पता लगाता है, तो यह kPrepassed के साथ ReportMonitorAction को कॉल करता है। DM हीलिंग स्थिति [SWS_DM_00878] की दिशा में टाइमर शुरू करता है और फॉल्ट डिटेक्शन काउंटर (Fault Detection Counter, FDC) [SWS_DM_00030] को लगातार अपडेट करता है।
योग्यता (Qualification): यदि टाइमर थ्रेशोल्ड passedMs तक पहुँच जाता है, तो DM घटना को kFinallyHealed[SWS_DM_00878] के रूप में योग्य बनाता है। यदि मॉनिटर इसके बजाय kFailed की रिपोर्ट करता है, तो टाइमर सीधे failedMs पर सेट हो जाता है और घटना को kFinallyDefective[SWS_DM_00033] के रूप में संसाधित किया जाता है।
फ़्रीज़ करना और फिर से शुरू करना:ReportMonitorAction(kFreezeDebouncing) के माध्यम से, डिबाउंसिंग को आवश्यकतानुसार रोका जा सकता है [SWS_DM_00880] और नई कार्रवाइयों (kPrepassed या kPrefailed) पर फ़्रीज़ किए गए काउंटर मान से फिर से शुरू किया जा सकता है [SWS_DM_00038]।
समय-आधारित डिबाउंसिंग का उपयोग करते समय कार्यात्मक पूर्व और उत्तर-शर्तें लागू होती हैं:
सशर्त टाइमर प्रारंभ:kPrepassed की रिपोर्टिंग पर, DM टाइमर को केवल तभी kFinallyHealed की दिशा में शुरू करता है, यदि वह पहले से ही उस दिशा में नहीं चल रहा हो और घटना पहले से ही हील (healed) नहीं मानी गई हो [SWS_DM_00878]।
संक्षिप्त फॉल्ट योग्यता: यदि सीधे kFailed या kPassed की रिपोर्ट की जाती है, तो DM डिबाउंस टाइमर को तुरंत संबंधित थ्रेशोल्ड मान पर सेट करता है और बिना किसी प्रतीक्षा समय के वर्गीकरण को पूरा करता है [SWS_DM_00033], [SWS_DM_00036]।
फ़्रीज़ करने की अनन्यता (Exclusivity): कार्रवाई kFreezeDebouncing DM द्वारा विशेष रूप से समय-आधारित डिबाउंसिंग [SWS_DM_00880] वाली घटनाओं के लिए समर्थित है।
काउंटर का कोई पर्सिस्टेंस नहीं: रीसेट और स्टार्ट-अप चक्रों (debounceCounterStorage) में डिबाउंस काउंटर मान का संग्रहण समय-आधारित डिबाउंसिंग AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.5.2 “Time-based debouncing” के लिए प्रदान नहीं किया गया है; प्रत्येक स्टार्ट-अप पर टाइमर को शून्य पर सेट किया जाता है [SWS_DM_00085]।
यह गाइड AUTOSAR Adaptive Platform R25-11 विनिर्देश पर आधारित है और संरचना ara::diag::TimeBased की आवश्यकताओं को सारांशित करता है।
UML क्लास आरेख
Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल