अनुप्रयोगों को नैदानिक घटनाओं की स्थिति-संबंधी निगरानी, डिबाउंसिंग और DTC क्वेरी की सुविधा देता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 2f3253efefb6उद्गमखुले प्रश्न (2)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
अनुप्रयोगों को नैदानिक घटनाओं की स्थिति-संबंधी निगरानी, डिबाउंसिंग और DTC क्वेरी की सुविधा देता है।
AUTOSAR Adaptive में क्लास ara::diag::Event नैदानिक घटनाओं और उनकी डिबाउंसिंग व त्रुटि स्थितियों की निगरानी के लिए ऑपरेशन्स प्रदान करती है। ऍप्लिकेशन्स InstanceSpecifier के माध्यम से ऑब्जेक्ट को इंस्टैनशिएट करते हैं, वैकल्पिक परिवर्तन सूचनाएं पंजीकृत करते हैं और एसिंक्रोनस रूप से नैदानिक और DTC जानकारी प्राप्त करते हैं [SWS_DM_00647]। एक केंद्रीय बाधा के रूप में, इंस्टेंस न तो कॉपी करने योग्य है और न ही स्थानांतरित (move) करने योग्य, और थ्रेड-सुरक्षा की कमी के कारण अधिकांश क्वेरी मेथड्स को समवर्ती एक्सेस के दौरान ऍप्लिकेशन-पक्षीय सिंक्रोनाइज़ेशन की आवश्यकता होती है [SWS_DM_00649]।
संदर्भ
AUTOSAR Adaptive Platform में क्लास ara::diag::Event नैदानिक घटनाओं के साथ इंटरैक्शन के लिए प्राथमिक इंटरफ़ेस के रूप में कार्य करती है। यह ऍप्लिकेशन-विशिष्ट सॉफ़्टवेयर और केंद्रीय निदान प्रबंधन के बीच एक संयोजक के रूप में कार्य करती है। इस इंटरफ़ेस के माध्यम से, ऍप्लिकेशन्स किसी ईवेंट की वर्तमान नैदानिक और डिबाउंसिंग स्थिति की निगरानी करते हैं या स्थिति परिवर्तनों के बारे में सूचित होते हैं।
सिस्टम संदर्भ में इंटरैक्शन में अनिवार्य रूप से तीन पक्ष शामिल होते हैं:
ऍप्लिकेशन सॉफ़्टवेयर: क्लास को इंस्टैनशिएट करता है, स्थिति क्वेरीज़ शुरू करता है और एसिंक्रोनस स्थिति अपडेट प्राप्त करता है।
ara::diag::Event: टाइप किए गए नैदानिक पोर्ट (किसी DiagnosticEventInterface का PortPrototype) को इनकैप्सुलेट करता है और थ्रेड- व प्रोसेस-व्यापी क्वेरी मेथड्स प्रदान करता है।
Diagnostic Management (DM): सर्वर पक्ष पर त्रुटि पहचान, DTC असाइनमेंट और डिबाउंसिंग व्यवहार (Debouncing) निष्पादित करता है।
संदर्भ आरेख: ऍप्लिकेशन सॉफ़्टवेयर और Diagnostic Management के बीच Event क्लास का वर्गीकरण। स्रोत: [SWS_DM_00647], [SWS_DM_00653]
जीवनचक्र
इंस्टैनशिएशन स्पष्ट रूप से एक ara::core::InstanceSpecifier पास करके किया जाता है [SWS_DM_00647]। आइडेंटिफ़ायर को एक ऐसे PortPrototype को संदर्भित करना चाहिए जो DiagnosticEventInterface के माध्यम से टाइप किया गया हो। कन्स्ट्रक्टर अपवाद-सुरक्षित और थ्रेड-सुरक्षित है [SWS_DM_00647]।
स्वामित्व के संबंध में, ara::diag::Event को एक गैर-कॉपी करने योग्य और गैर-स्थानांतरण योग्य एकल इंस्टेंस के रूप में परिभाषित किया गया है: कॉपी कन्स्ट्रक्टर [SWS_DM_01681] और मूव कन्स्ट्रक्टर [SWS_DM_01682] दोनों के साथ-साथ संबंधित असाइनमेंट ऑपरेटर्स ([SWS_DM_01679], [SWS_DM_01680]) स्पष्ट रूप से हटा दिए गए हैं (=delete)। प्रति प्रोसेस एक InstanceSpecifier को एक से अधिक बार इंस्टैनशिएट नहीं किया जा सकता है [SWS_DM_00647]।
विनाश डिस्ट्रक्टर ~Event() के माध्यम से होता है [SWS_DM_00648]। कन्स्ट्रक्टर के विपरीत, डिस्ट्रक्टर थ्रेड-सुरक्षित नहीं है। अन्य सभी सदस्य फ़ंक्शन्स (GetDTCNumber के अपवाद के साथ) भी गैर-थ्रेड-सुरक्षित के रूप में निर्दिष्ट हैं, यही कारण है कि एक ही इंस्टेंस पर समानांतर कॉल्स को ऍप्लिकेशन पक्ष पर सिंक्रोनाइज़ किया जाना चाहिए। Release R25-11 में, इस संबंध में शब्दावली को Reentrancy से Concurrency में सुसंगत बनाया गया था AUTOSAR_AP_SWS_Diagnostics §1 “Change History”।
उपयोग पथ
एक विशिष्ट उपयोग का मामला निम्नलिखित कॉल्स में विभाजित है:
आरंभीकरण: ऍप्लिकेशन अपने InstanceSpecifier के माध्यम से इंस्टेंस बनाता है [SWS_DM_00647]। आरंभीकरण के समय बाइंडिंग नैदानिक डेमॉन से कनेक्शन स्थापित करती है। प्रश्न Q-78e4462a0d147cfb (खुला)
नोटिफ़ायर पंजीकृत करें: निगरानी के लिए, वैकल्पिक रूप से SetEventStatusChangedNotifier के माध्यम से एक कॉलबैक पंजीकृत किया जाता है [SWS_DM_00650]। बाद का कॉल पहले सेट किए गए नोटिफ़ायर को अधिलेखित (overwrite) कर देता है।
स्थिति क्वेरीज़: संचालन के दौरान, ऍप्लिकेशन ara::core::Future के माध्यम से एसिंक्रोनस रूप से नैदानिक डेटा की क्वेरी करता है:
GetEventStatus() वर्तमान स्थिति बाइट निर्धारित करता है [SWS_DM_00649]।
GetDebouncingStatus() वर्तमान डिबाउंसिंग स्थिति लौटाता है [SWS_DM_00654]।
GetFaultDetectionCounter() त्रुटि पहचान काउंटर (FDC) प्राप्त करता है [SWS_DM_00656]।
GetTestComplete() जाँचता है कि क्या परीक्षण पूरा हो चुका है (FDC -128 या 127 तक पहुँच गया है) [SWS_DM_00655]।
GetDTCNumber(dtcFormat) चयनित प्रारूप में संबद्ध DTC संख्या प्रदान करता है और इसे थ्रेड-सुरक्षित निष्पादित किया गया है [SWS_DM_00653]।
Register a notifier function which is called if a diagnostic event is changed. A consecutive call of this method will overwrite the previous registered notifier.
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 DiagnosticEventPortMapping needs to be typed by a DiagnosticEventInterface. 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 DiagnosticEventInterface.
Request a governed re-review of this record. The record is not changed immediately.
Register a notifier function which is called if a diagnostic event is changed. A consecutive call of this method will overwrite the previous registered notifier.
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 07bc53ae711cउद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
क्लास ara::diag::Event (हेडर फ़ाइल ara/diag/event.h) की विधि [SWS_DM_00650] के माध्यम से, एक Adaptive Application EventStatusByteNotifier प्रकार के कॉलबैक फ़ंक्शन को पंजीकृत करता है। सफल पंजीकरण के बाद, Diagnostic Management (DM) संबंधित नैदानिक इवेंट के प्रत्येक स्थिति परिवर्तन पर इस नोटिफ़ायर को कॉल करता है [SWS_DM_01029]। विधि का लगातार कॉल पहले से पंजीकृत नोटिफ़ायर को अधिलेखित (overwrite) कर देता है [SWS_DM_00650]। फ़ंक्शन का सिग्नेचर ara::core::Result<void> SetEventStatusChangedNotifier(EventStatusByteNotifier notifier) noexcept है और सफलता पर एक खाली परिणाम लौटाता है [SWS_DM_00650]।
यदि प्रसंस्करण के दौरान कोई त्रुटि होती है, तो विधि त्रुटि कोड DiagErrc::kInvalidArgument लौटाती है [SWS_DM_00650]। इंटरफ़ेस हालांकि अपवाद-सुरक्षित (exception safe) घोषित किया गया है, लेकिन इसे स्पष्ट रूप से गैर-थ्रेड-सुरक्षित (not thread-safe) माना जाता है [SWS_DM_00650]। व्याख्या: उसी इंस्टेंस पर समवर्ती एक्सेस को एप्लिकेशन पक्ष पर सिंक्रनाइज़ किया जाना चाहिए; संभवतः पंजीकरण को अनुप्रयोग के आरंभीकरण चरण के दौरान प्राथमिकता से किया जाना चाहिए। प्रश्न Q-d8ed099eaed6b197 (खुला)
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल