हैंडल के आधार पर एक साझा इंटरफ़ेस के माध्यम से एकाधिक डायग्नोस्टिक स्थितियों को सेट करने और क्वेरी करने में सक्षम बनाता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 2f3f3f7d9426उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
हैंडल के आधार पर एक साझा इंटरफ़ेस के माध्यम से एकाधिक डायग्नोस्टिक स्थितियों को सेट करने और क्वेरी करने में सक्षम बनाता है।
क्लास ara::diag::MultipleCondition संख्यात्मक हैंडल ([SWS_DM_01730]) के आधार पर एक साझा पोर्ट इंटरफ़ेस के माध्यम से एकाधिक डायग्नोस्टिक स्थितियों की बंडल की गई क्वेरी और अद्यतन के लिए कार्य करती है। एप्लिकेशन InstanceSpecifier के माध्यम से ऑब्जेक्ट को इंस्टेंटिएट करते हैं और SetCondition तथा GetCondition ([SWS_DM_01729]) का उपयोग करके स्थितियों को लक्षित रूप से नियंत्रित करते हैं। एक आवश्यक बाधा शर्त के रूप में, यह क्लास न तो कॉपी करने योग्य है और न ही स्थानांतरित करने योग्य (moveable), और इसका डिस्ट्रक्टर थ्रेड-सुरक्षित नहीं है। इसके अतिरिक्त, आरंभीकरण और रनटाइम त्रुटियों से बचने के लिए मॉडल में सभी संबोधित स्थितियों को पोर्ट मैपिंग के माध्यम से सुसंगत रूप से कॉन्फ़िगर किया जाना चाहिए।
संदर्भ
क्लास ara::diag::MultipleCondition एक एडेप्टिव एप्लिकेशन को एक साझा इंटरफ़ेस ([SWS_DM_01730]) के माध्यम से एकाधिक डायग्नोस्टिक स्थितियों के बंडल किए गए प्रबंधन और संशोधन में सक्षम बनाती है। कार्यात्मक और शब्दार्थ (सिमेंटिक) दृष्टि से, यह एकल स्थितियों के समान क्षमताएं प्रदान करती है, लेकिन एक पहचान हैंडल (AUTOSAR_AP_SWS_Diagnostics पृ. 237) के माध्यम से लक्षित एड्रेसिंग के साथ संचालन का विस्तार करती है। मॉडल में प्रत्येक प्रबंधित डायग्नोस्टिक स्थिति (DiagnosticCondition) के लिए उपयुक्त रूप से टाइप किए गए पोर्ट ([SWS_DM_01727], AUTOSAR_AP_SWS_Diagnostics पृ. 237) के साथ एक DiagnosticMultipleConditionPortMapping के माध्यम से लिंकेज की आवश्यकता होती है। एड्रेसिंग प्रकार ConditionHandleType के माध्यम से होती है; यदि कोई स्पष्ट overrideId मान मौजूद नहीं है, तो Diagnostic Management (DM) संक्षिप्त नामों ([SWS_DM_01735]) के वर्णमाला क्रम में 0x010000 से शुरू होने वाले आरोही संख्यात्मक मान निर्दिष्ट करता है।
एक इंस्टेंस को ara::core::InstanceSpecifier पास करके कंस्ट्रक्टर MultipleCondition के माध्यम से बनाया जाता है ([SWS_DM_01727])। निर्माण थ्रेड-सुरक्षित है और इसे noexcept के रूप में घोषित किया गया है ([SWS_DM_01727])। ऑब्जेक्ट का अपने स्थानीय स्कोप से सख्त बंधन होता है: कॉपी और मूव दोनों ऑपरेशन हटा दिए गए हैं; कॉपी कंस्ट्रक्टर ([SWS_DM_02072]), मूव कंस्ट्रक्टर ([SWS_DM_02071]), कॉपी असाइनमेंट ऑपरेटर ([SWS_DM_02073]) और मूव असाइनमेंट ऑपरेटर ([SWS_DM_02074]) उपलब्ध नहीं हैं (=delete)।
डिस्ट्रक्टर ~MultipleCondition() को स्पष्ट रूप से गैर-थ्रेड-सुरक्षित के रूप में निर्दिष्ट किया गया है ([SWS_DM_01737])। इसलिए एप्लिकेशन को यह सुनिश्चित करना चाहिए कि ऑब्जेक्ट के विनाश से पहले उस पर होने वाले सभी समवर्ती एक्सेस पूर्ण हो चुके हों। नियमित मेथड कॉल्स के लिए सशर्त थ्रेड-सुरक्षा लागू होती है ([SWS_DM_01728], [SWS_DM_01729])। व्याख्या: चूंकि [SWS_DM_01727] के अनुसार कंस्ट्रक्टर हस्ताक्षर कोई स्पष्ट समवर्ती पैरामीटर स्वीकार नहीं करता है, इसलिए आवश्यक ConcurrencyType संभवतः मैनिफ़ेस्ट में अंतर्निहित पोर्ट मॉडल के माध्यम से निर्धारित किया जाएगा। प्रश्न Q-f29def512a68aae9 (खुला)
उपयोग पथ
डायग्नोस्टिक स्थितियों के साथ इंटरैक्शन के विशिष्ट प्रवाह में निम्नलिखित चरण शामिल हैं:
आरंभीकरण: एप्लिकेशन लक्ष्य पोर्ट ([SWS_DM_01727]) निर्दिष्ट करते हुए क्लास को इंस्टेंटिएट करता है।
स्थिति सेट करना:SetCondition(conditionHandle, condition) के साथ, एप्लिकेशन निर्दिष्ट स्थिति के लिए स्थिति परिवर्तन प्रेषित करता है और परिणामी ara::core::Result<void> ([SWS_DM_01729]) की जांच करता है।
स्थिति क्वेरी करना:GetCondition(conditionHandle) के माध्यम से, संबोधित स्थिति की वर्तमान स्थिति को ara::core::Future<ConditionType> के रूप में एसिंक्रोनस रूप से अनुरोध किया जाता है ([SWS_DM_01728])।
संसाधन रिलीज: स्कोप से बाहर निकलते समय, डिस्ट्रक्टर इंटरफ़ेस को व्यवस्थित रूप से समाप्त करता है ([SWS_DM_01737])।
उपयोग के दौरान, मॉडलिंग-संबंधित निर्माण त्रुटियों और कार्यात्मक रनटाइम त्रुटियों के बीच अंतर किया जाना चाहिए:
डिज़ाइन उल्लंघन ([SWS_DM_01727]):
यदि InstanceSpecifier का रिज़ॉल्यूशन विफल हो जाता है या यह किसी PortPrototype को संदर्भित नहीं करता है, तो एक InstanceSpecifierMappingIntegrityViolation रिपोर्ट किया जाता है। यदि पोर्ट को किसी DiagnosticMultipleConditionInterface पर टाइप नहीं किया गया है, तो एक PortInterfaceMappingViolation उत्पन्न होता है। यदि प्रोसेस में मॉडल किए गए समकक्ष का अभाव है, तो ProcessMappingViolation उत्पन्न होता है। यदि उसी InstanceSpecifier को प्रोसेस में कई बार इंस्टेंटिएट किया जाता है, तो इसके परिणामस्वरूप InstanceSpecifierAlreadyInUseViolation होता है।
मेथड कॉल के दौरान रनटाइम त्रुटियां:
यदि SetCondition ([SWS_DM_01729]) या GetCondition ([SWS_DM_01728]) को कोई अस्वीकार्य पैरामीटर या अमान्य हैंडल पास किया जाता है, तो ये मेथड त्रुटि DiagErrc::kInvalidArgument लौटाती हैं। यदि Diagnostic Management की बुनियादी कार्यक्षमता अस्थायी रूप से अनुपलब्ध है, तो GetCondition कॉल को DiagErrc::kServiceNotAvailable ([SWS_DM_01728]) के साथ स्वीकार करता है।
यह गाइड विशेष रूप से AUTOSAR Adaptive Platform R25-11 के विनिर्देशों पर आधारित है।
InstanceSpeci- InstanceSpecifier either cannot be resolved in the model in the fierMappingIn- context of your executable, or it refers to a model element other tegrityViolation than a PortPrototype. PortInterfaceMap- A PortPrototype that is referenced by a pingViolation DiagnosticMultipleConditionPortMapping needs to be typed by a DiagnosticMultipleConditionInterface. ProcessMappingVio- Matching InstanceRef exists, but no matching (modelled) Process lation found that matches the (runtime) process. InstanceSpecifier- Violation message that is sent in case a constructor in the ara AlreadyInUseViola- framework was called with an InstanceSpecifier already in use in tion this process.
Parameter (in)
Parameter
Beschreibung
specifier
InstanceSpecifier to a PortPrototype of a DiagnosticMultipleConditionInterface
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल