डायग्नोस्टिक इवेंट के बिट-कोडित स्थिति बाइट का प्रतिनिधित्व करता है और स्थिति बिट्स के लिए प्रकार-सुरक्षित जांच विधियां प्रदान करता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: c0a8a1df20deउद्गमखुले प्रश्न (2)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
डायग्नोस्टिक इवेंट के बिट-कोडित स्थिति बाइट का प्रतिनिधित्व करता है और स्थिति बिट्स के लिए प्रकार-सुरक्षित जांच विधियां प्रदान करता है।
संरचना ara::diag::EventStatusByte Adaptive Platform [SWS_DM_00644] के भीतर एक एकल डायग्नोस्टिक इवेंट के बिट-कोडित स्थिति बाइट को समाहित करती है। यह सेट या अनसेट स्थिति बिट्स के साथ-साथ समग्र परीक्षण स्थितियों की प्रकार-सुरक्षित जांच के लिए विधियाँ प्रदान करती है [SWS_DM_01755]। चूंकि गणना हमेशा विशिष्ट इवेंट को दर्शाती है, यह उच्च-स्तरीय DTC इवेंट संयोजनों से अप्रभावित रहती है। एक हल्के वजन वाले वैल्यू ऑब्जेक्ट के रूप में, सभी रीड एक्सेस अपवाद-सुरक्षित और समवर्ती रूप से पढ़ने योग्य हैं, जबकि संशोधित करने वाले असाइनमेंट को बाह्य रूप से सिंक्रनाइज़ किया जाना चाहिए।
संदर्भ
संरचना ara::diag::EventStatusByte AUTOSAR Adaptive डायग्नोस्टिक प्रबंधन [SWS_DM_00644] के त्रुटि मेमोरी में एक डायग्नोस्टिक इवेंट के बिट-कोडित स्थिति बाइट को समाहित करती है। विनिर्देश के अनुसार, EventStatusByte हमेशा निर्दिष्ट एकल इवेंट की स्थिति का सटीक रूप से प्रतिनिधित्व करता है और गणना के दौरान संभावित इवेंट संयोजन (Event Combination) से प्रभावित नहीं होता है (AUTOSAR_AP_SWS_Diagnostics पृ. 234)। इंटरैक्शन भागीदारों में मुख्य रूप से Diagnostic Management Core (DM) शामिल है, जो इवेंट्स की स्थिति अपडेट होने पर UDS-DTC स्थिति निर्धारित करता है [SWS_DM_01109] और कॉन्फ़िगर किए गए कॉलबैक के माध्यम से सूचित करता है [SWS_DM_01110]। Interpretation: टाइप एलियास ara::diag::EventStatusByteNotifier[SWS_DM_02118] के माध्यम से, यह स्थिति परिवर्तन पंजीकृत एप्लिकेशन फ़ंक्शन्स को सूचित किया जाना चाहिए ताकि वे स्थिति परिवर्तनों पर प्रतिक्रिया दे सकें। प्रश्न Q-8fd114acd74569ee (खुला)
जीवनचक्र
ara::diag::EventStatusByte के इंस्टेंस हल्के वजन वाले वैल्यू ऑब्जेक्ट हैं जो हेडर ara/diag/event_types.h में परिभाषित हैं [SWS_DM_01753]। निर्माण या तो कॉपी करने, स्थानांतरित करने या एक वैरिएडिक टेम्पलेट कंस्ट्रक्टर के माध्यम से होता है जो सेट किए जाने वाले EventStatusBits के किसी भी सेट को स्वीकार करता है [SWS_DM_01753]। चूंकि कंस्ट्रक्टर्स और असाइनमेंट ऑपरेटरों को constexpr और noexcept के रूप में घोषित किया गया है, इसलिए ऑब्जेक्ट्स को कंपाइल समय पर पहले से ही बनाया जा सकता है (AUTOSAR_AP_SWS_Diagnostics §8.47.2.1.1 “Special Member Functions”)।
स्वामित्व और जीवनकाल के संबंध में, ऑब्जेक्ट आमतौर पर वैल्यू द्वारा (by-value) या स्थिर संदर्भ (const reference) द्वारा Notifier को पारित किया जाता है। मूव कंस्ट्रक्टर [SWS_DM_01751] और कॉपी कंस्ट्रक्टर [SWS_DM_01752] अपवाद और थ्रेड सुरक्षा की गारंटी देते हैं। इसके विपरीत, कॉपी असाइनमेंट ऑपरेटर [SWS_DM_01750] और मूव असाइनमेंट ऑपरेटर [SWS_DM_01749] को विनिर्देश में स्पष्ट रूप से गैर-थ्रेड-सुरक्षित (not thread-safe) के रूप में वर्गीकृत किया गया है। मौजूदा स्थिति बाइट पर एकाधिक समवर्ती रीड एक्सेस थ्रेड-सुरक्षित रूप से संभव हैं, लेकिन एक साझा इंस्टेंस में किए जाने वाले संशोधनात्मक असाइनमेंट के लिए बाहरी सिंक्रोनाइज़ेशन की आवश्यकता होती है।
उपयोग पथ
एक विशिष्ट उपयोग मामला Diagnostic Management द्वारा प्रेषित स्थिति बाइट की विशिष्ट डायग्नोस्टिक मानदंडों के लिए जांच करना है। वर्ग इसके लिए विशेष मूल्यांकन विधियाँ प्रदान करता है:
त्रुटि परीक्षण के लिए जांच:IsFailedAndTested() के साथ यह सीधे जांचा जा सकता है कि क्या बिट kTestFailed और kTestFailedThisOperationCycle दोनों सेट हैं [SWS_DM_01757]। Interpretation: यह एप्लिकेशन को संकेत देता है कि वर्तमान ऑपरेटिंग चक्र में इवेंट का पहले ही परीक्षण किया जा चुका है और इसे त्रुटिपूर्ण माना गया है। प्रश्न (खुला)
त्रुटिहीन परीक्षण के लिए जांच: विधि IsPassedAndTested()true लौटाती है, यदि न तो kTestFailed और न ही kTestNotCompletedThisOperationCycle सेट हैं [SWS_DM_01756]।
जेनेरिक बिट जांच: टेम्पलेट IsSet(bits...) के माध्यम से यह सत्यापित किया जा सकता है कि क्या सभी पारित स्थिति बिट्स सेट हैं [SWS_DM_01755]। इसके पूरक के रूप में, IsNotSet(bits...) यह जांचता है कि क्या कोई भी पारित बिट सक्रिय नहीं है [SWS_DM_01754]।
clearDTC ऑपरेशन के माध्यम से त्रुटियों को रीसेट करते समय, Diagnostic Management सभी संबंधित इवेंट्स को साफ़ करता है, भले ही इवेंट संयोजन कॉन्फ़िगर किए गए हों या नहीं [SWS_DM_01108]। निम्नलिखित अनुक्रम आरेख स्थिति अपडेट और एप्लिकेशन में बाद के मूल्यांकन के दौरान परस्पर क्रिया को दर्शाता है।
चूंकि ara::diag::EventStatusByte एक प्राथमिक डेटा कंटेनर है, इसलिए सभी सदस्य फ़ंक्शन्स को noexcept और पूरी तरह से अपवाद-सुरक्षित निर्दिष्ट किया गया है ([SWS_DM_01749] से [SWS_DM_01757])। न तो C++ अपवाद ट्रिगर होते हैं और न ही ara::core::Result के रूप में त्रुटि कोड लौटाए जाते हैं।
एप्लिकेशन में त्रुटि स्थितियां इस प्रकार API त्रुटि कोड से उत्पन्न नहीं होती हैं, बल्कि सिमेंटिक गलत व्याख्याओं या सिंक्रोनाइज़ेशन त्रुटियों के कारण उत्पन्न होती हैं। विशिष्ट जोखिम म्यूटेक्स सुरक्षा के बिना असाइनमेंट ऑपरेटरों के माध्यम से समवर्ती राइट एक्सेस ([SWS_DM_01749], [SWS_DM_01750]) हैं या यह गलत धारणा है कि EventStatusByte संयुक्त DTCs द्वारा संशोधित होता है, यद्यपि विनिर्देश के अनुसार यह सख्ती से एकल इवेंट से बंधा रहता है (AUTOSAR_AP_SWS_Diagnostics पृ. 234)।
यह गाइड AUTOSAR Adaptive R25-11 विनिर्देश पर आधारित है और दस्तावेज़ AUTOSAR_AP_SWS_Diagnostics के अनुसार वर्ग की विशेषताओं का सारांश प्रस्तुत करता है।
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल