डायग्नोस्टिक मैनेजर में आने वाले डायग्नोस्टिक अनुरोधों के अतुल्यकालिक प्रसंस्करण के लिए एक जेनेरिक UDS इंटरफ़ेस के रूप में कार्य करता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: d0d38c589b70उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
डायग्नोस्टिक मैनेजर में आने वाले डायग्नोस्टिक अनुरोधों के अतुल्यकालिक प्रसंस्करण के लिए एक जेनेरिक UDS इंटरफ़ेस के रूप में कार्य करता है।
वर्ग ara::diag::GenericUDSService, एक जेनेरिक UDS सेवा हैंडलर के रूप में, AUTOSAR डायग्नोस्टिक मैनेजर के माध्यम से किसी भी UDS डायग्नोस्टिक अनुरोध को स्वीकार करने और संसाधित करने में सक्षम बनाता है [SWS_DM_00616]। एक पोर्ट प्रोटोटाइप से बाइंडिंग के बाद, सेवा को Offer() के माध्यम से सक्रिय किया जाता है, मेथड HandleMessage() में अनुरोधों को अतुल्यकालिक रूप से संसाधित करता है और StopOffer() के साथ फिर से अपंजीकृत कर दिया जाता है [SWS_DM_00618], [SWS_DM_00619], [SWS_DM_00620]। इंस्टैंस न तो कॉपी करने योग्य है और न ही स्थानांतरित करने योग्य, और DiagUdsNrcErrc[SWS_DM_01657], [SWS_DM_00618] से NRCs के माध्यम से त्रुटियों का संकेत देता है।
संदर्भ
वर्ग ara::diag::GenericUDSService UDS (Unified Diagnostic Services) के अनुसार डायग्नोस्टिक संचार के लिए एक जेनेरिक सेवा इंटरफ़ेस प्रदान करता है। यह उन ऐप्लिकेशन्स के लिए एक बेस वर्ग के रूप में कार्य करता है जो उपयोगकर्ता-परिभाषित या समर्पित इंटरफ़ेस द्वारा कवर नहीं की गई UDS सेवाओं को लागू और संसाधित करना चाहते हैं। इंटरैक्शन मुख्य रूप से डायग्नोसिंग ऐप्लिकेशन घटक, AUTOSAR डायग्नोस्टिक मैनेजर (DM) और अंतर्निहित मॉडलिंग संदर्भ के बीच होता है। डायग्नोस्टिक मैनेजर और प्लेटफ़ॉर्म मॉडल से कनेक्शन इंस्टैंसिएशन के समय ara::core::InstanceSpecifier के माध्यम से स्थापित किया जाता है, जो DiagnosticGenericUdsInterface के संबंधित पोर्ट प्रोटोटाइप को संदर्भित करता है [SWS_DM_00616]। जैसे ही इंटरफ़ेस के माध्यम से पंजीकरण सक्रिय होता है, डायग्नोस्टिक मैनेजर आने वाले UDS अनुरोधों को कार्यान्वित इंस्टैंस को अग्रेषित करता है [SWS_DM_00619]।
ara::diag::GenericUDSService का एक इंस्टैंस एक निश्चित पोर्ट प्रोटोटाइप से बंधा होता है और इसे एक एकल प्रति के रूप में डिज़ाइन किया गया है: कॉपी कंस्ट्रक्टर [SWS_DM_01657], मूव कंस्ट्रक्टर [SWS_DM_01658] और असाइनमेंट ऑपरेटर [SWS_DM_01655], [SWS_DM_01656] हटा दिए गए हैं (delete)। निर्माण स्पष्ट रूप से कंस्ट्रक्टर के माध्यम से एक InstanceSpecifier और समवर्ती कॉन्फ़िगरेशन ConcurrencyType (kConcurrent या kNotConcurrent) [SWS_DM_00616] निर्दिष्ट करके होता है। सेवा तत्परता का जीवनचक्र दो आवश्यक चरणों में विभाजित है:
प्रस्तावित नहीं (Stopped / Initial): निर्माण के बाद या StopOffer() को कॉल करने के बाद, DM इंस्टैंस को कोई अनुरोध अग्रेषित नहीं करता है [SWS_DM_00620]।
प्रस्तावित (Offered):Offer() के सफल कॉल के बाद, हैंडलर सक्रिय होता है और आने वाले डायग्नोस्टिक संदेशों को संसाधित करता है [SWS_DM_00619]।
विनाश वर्चुअल डिस्ट्रक्टर ~GenericUDSService()[SWS_DM_00584] के माध्यम से होता है। थ्रेड सुरक्षा के संबंध में, कंस्ट्रक्टर को थ्रेड-सुरक्षित के रूप में निर्दिष्ट किया गया है, जबकि Offer(), StopOffer() और डिस्ट्रक्टर थ्रेड-सुरक्षित नहीं हैं और बाहरी सिंक्रोनाइज़ेशन की आवश्यकता होती है [SWS_DM_00616], [SWS_DM_00619], [SWS_DM_00620], [SWS_DM_00584]।
नियमित प्रवाह में व्युत्पन्न सेवा वर्ग का इंस्टैंसिएशन, हैंडलर का सक्रियण, अतुल्यकालिक कार्य प्रसंस्करण और बाद में निष्क्रियण शामिल हैं:
इंस्टैंसिएशन: ऐप्लिकेशन उपयुक्त ara::core::InstanceSpecifier और वांछित ConcurrencyType[SWS_DM_00616] के साथ विशेष सेवा वर्ग को इंस्टैंसिएट करता है।
सेवा की पेशकश करना:Offer() का कॉल डायग्नोस्टिक मैनेजर को संदेश स्वीकृति के लिए तत्परता का संकेत देता है [SWS_DM_00619]।
संदेश प्रसंस्करण: आने वाले UDS अनुरोधों के परिणामस्वरूप DM द्वारा शुद्ध वर्चुअल मेथड HandleMessage() को कॉल किया जाता है। पास किए गए पैरामीटर सर्विस पहचानकर्ता (sid), पेलोड (requestData), मेटाडेटा (metaInfo) और एक cancellationHandler[SWS_DM_00618] हैं। मेथड एक ara::core::Future<OperationOutput> लौटाती है, जिसके माध्यम से परिणाम या कोई त्रुटि अतुल्यकालिक रूप से प्रदान की जाती है [SWS_DM_00618]। हैंडलर cancellationHandler.IsCanceled() के माध्यम से जांच सकता है कि क्या ऑपरेशन रद्द कर दिया गया था, या cancellationHandler.SetNotifier() के माध्यम से एक अधिसूचना पंजीकृत कर सकता है [SWS_DM_00618]।
सेवा समाप्त करना: इंस्टैंस नष्ट होने से पहले अनुरोधों का अग्रेषण StopOffer() के माध्यम से समाप्त कर दिया जाता है [SWS_DM_00620], [SWS_DM_00584]।
त्रुटि स्थितियाँ विभिन्न चरणों में उत्पन्न हो सकती हैं और उनके लिए विभेदित हैंडलिंग की आवश्यकता होती है:
इंस्टेंसिएशन उल्लंघन: यदि मॉडल में InstanceSpecifier का मैपिंग विफल हो जाता है, तो फ्रेमवर्क परिभाषित Violations रिपोर्ट करता है: InstanceSpecifierMappingIntegrityViolation (Specifier को मॉडल में हल नहीं किया जा सकता है या यह PortPrototype को संदर्भित नहीं करता है), PortInterfaceMappingViolation (Port को DiagnosticServiceGenericMapping के माध्यम से संदर्भित नहीं किया गया है), ProcessMappingViolation (कोई उपयुक्त प्रोसेस मॉडल नहीं किया गया है) या InstanceSpecifierAlreadyInUseViolation (Specifier पहले से ही प्रोसेस में उपयोग किया जा रहा है) [SWS_DM_00616]।
डुप्लिकेट ऑफ़र कॉल: यदि Offer() को कॉल किया जाता है, जबकि सेवा पहले से ही सक्रिय रूप से ऑफ़र की जा रही है, तो कॉल विफल हो जाती है और त्रुटि कोड DiagOfferErrc::kAlreadyOffered वापस करती है (रोलबैक सिमेंटिक्स) [SWS_DM_00619]।
डायग्नोस्टिक्स-संबंधित निष्पादन त्रुटियाँ: यदि HandleMessage() में UDS संदेश का तकनीकी रूप से सकारात्मक उत्तर नहीं दिया जा सकता है, तो Future में परिणाम को DiagUdsNrcErrc के माध्यम से ISO 14229-1 के अनुसार उपयुक्त Negative Response Code (NRC) के साथ सेट किया जाना चाहिए [SWS_DM_00618]। इसके अतिरिक्त, यदि अंतर्निहित डायग्नोस्टिक वार्तालाप समय से पहले समाप्त हो गया था, तो कार्यान्वयन को cancellationHandler के निरस्तीकरण संकेतों पर प्रतिक्रिया देनी होगी [SWS_DM_00618]।
यह क्लास गाइड AUTOSAR मानक के आधार पर स्वचालित रूप से जनरेट किया गया था।
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 typed by a pingViolation DiagnosticGenericUdsInterface needs to be referenced by a DiagnosticServiceGenericMapping. 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 DiagnosticGenericUdsInterface.
concurrencyType
Specifies if the interface is implemented as thread safe ( kConcurrent) or non-thread safe (kNotConcurrent).
Request a governed re-review of this record. The record is not changed immediately.
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 38c6453769b1उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
ara::diag::GenericUDSService से मेथड HandleMessage आने वाले UDS डायग्नोस्टिक अनुरोधों के एप्लिकेशन-विशिष्ट प्रसंस्करण के लिए कार्य करता है [SWS_DM_00618]।
उपयोग
Diagnostic Management (DM) प्रत्येक प्राप्त डायग्नोस्टिक अनुरोध संदेश के लिए मेथड को कॉल करता है [SWS_DM_00618]। पैरामीटर के आधार पर सेवा पहचानकर्ता (sid), पेलोड (ara::core::Span<const std::uint8_t> के रूप में requestData), कनेक्शन जानकारी (metaInfo) के साथ-साथ एक cancellationHandler पास किया जाता है। प्रसंस्करण एक ara::core::Future<OperationOutput>[SWS_DM_00618] की वापसी के माध्यम से अतुल्यकालिक रूप से होता है। requestData में पेलोड तब तक मान्य रहता है जब तक संबंधित Promise पूरा नहीं हो जाता या ऑपरेशन रद्द नहीं हो जाता। cancellationHandler.IsCanceled() के माध्यम से एप्लिकेशन रद्दीकरण स्थिति की जांच कर सकता है या cancellationHandler.SetNotifier() का उपयोग करके सेशन निरस्तीकरण के लिए अधिसूचना पंजीकृत कर सकता है [SWS_DM_00618]।
त्रुटि प्रबंधन
यदि किसी अनुरोध को सफलतापूर्वक प्रोसेस नहीं किया जा सकता है, तो एप्लिकेशन DiagUdsNrcErrc[SWS_DM_00618] के माध्यम से उपयुक्त नकारात्मक प्रतिक्रिया कोड (ISO 14229-1 के अनुसार NRC) का उपयोग करके लौटाए गए Future के माध्यम से त्रुटि का संकेत देता है।
समवर्तीता और सीमांत शर्तें
metaInfo का लाइफ़टाइम:metaInfo ऑब्जेक्ट की वैधता कड़ाई से मेथड कॉल की सक्रिय निष्पादन अवधि तक सीमित है [SWS_DM_01345]। HandleMessage से लौटने के बाद सहेजना या उपयोग करना अपरिभाषित व्यवहार की ओर ले जाता है।
रीएंट्रेंसी और कन्करेंसी: क्या कॉल्स थ्रेड-सुरक्षित होने चाहिए, यह कंस्ट्रक्टर में निर्दिष्ट ara::diag::ConcurrencyTypeSWS Diagnostics §7.3.1.2 “Concurrency of ara::diag interfaces” द्वारा निर्धारित होता है। kConcurrent के मामले में, DM बाद के अनुरोधों को समानांतर में कॉल कर सकता है; kNotConcurrent के मामले में, DM तब तक प्रतीक्षा करता है जब तक कि चल रहे अनुरोध का परिणाम उपलब्ध न हो जाए।
यह उपयोग नोट AUTOSAR Adaptive R25-11 के विनिर्देश के आधार पर स्वचालित रूप से जनरेट किया गया था।
conditional whether the function has to be implemented thread safe or non-thread safe is determined by the ConcurrencyType given in the constructor
Parameter (in)
Parameter
Beschreibung
sid
Diagnostic Request Service Identifier.
requestData
Diagnostic request data (starting after SID). Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
metaInfo
MetaInfo of the request.
cancellationHandler
This parameter is used to • Query the current cancellation status by calling cancellationHandler.IsCanceled. Returns TRUE in case, the current conversation has been cancelled and FALSE otherwise. • Register a notifier function by calling cancellationHandler.SetNotifier. The registered notifier is called if the current conversation is cancelled.
This Offer will enable the DM to forward request messages to this handler.
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 19027d24302fउद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
उपयोग
वर्ग ara::diag::GenericUDSService का मेथड Offer डायग्नोस्टिक अनुरोधों के अग्रेषण को सक्षम बनाता है: यह Diagnostic Manager (DM) को इस हैंडलर को आने वाले UDS अनुरोध संदेशों को अग्रेषित करने की अनुमति देता है [SWS_DM_00619]। समकालिक कॉल में कोई पैरामीटर नहीं होता है, यह अवरोधित (ब्लॉक) नहीं करता है और रिटर्न मान के रूप में एक ara::core::Result<void> लौटाता है [SWS_DM_00619]। निष्पादन आमतौर पर (व्याख्या:) Adaptive Application के इनिशियलाइज़ेशन और स्टार्ट चरण के दौरान हो सकता है, इससे पहले कि नेटवर्क पर डायग्नोस्टिक संदेशों को संसाधित किया जाना हो। प्रश्न Q-c1e385a434fe1e4e (खुला)
त्रुटि हैंडलिंग और समवर्तीता
फ़ंक्शन noexcept के साथ घोषित है और अपवाद-सुरक्षा की गारंटी देता है [SWS_DM_00619]। यदि सेवा पहले ही पेश की जा चुकी है, तो पंजीकरण विफल हो जाता है और रोलबैक सिमेंटिक्स के साथ त्रुटि कोड DiagOfferErrc::kAlreadyOffered लौटाता है [SWS_DM_00619]। थ्रेड सुरक्षा के संबंध में, इंटरफ़ेस को not thread-safe निर्दिष्ट किया गया है [SWS_DM_00619]; समान इंस्टेंस पर समकालिक कॉलों को कॉल करने वाले एप्लिकेशन द्वारा सिंक्रोनाइज़ किया जाना चाहिए।
इंटरैक्शन
Offer के माध्यम से प्रस्तुत करना AUTOSAR अडैप्टिव डायग्नोस्टिक सबसिस्टम में मानकीकृत पंजीकरण पैटर्न से मेल खाता है, जैसा कि रूटीन ([SWS_DM_00557]) या डेटा पहचानकर्ताओं ([SWS_DM_00638]) के लिए तुलनीय रूप से निर्दिष्ट है। यद्यपि नामकरण ara::com पर आधारित है, यह Diagnostic Manager का एक डायग्नोस्टिक्स-विशिष्ट मेथड है AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”।
यह उपयोग नोट AUTOSAR विनिर्देश R25-11 के आधार पर एक AI द्वारा उत्पन्न किया गया था।
This StopOffer will disable the forwarding of request messages from DM.
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 5dba8a8b4077उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
उपयोग
वर्ग ara::diag::GenericUDSService की विधि StopOffer Diagnostic Management (DM) से सेवा इंस्टेंस [SWS_DM_00620] को आने वाले नैदानिक अनुरोधों के अग्रेषण को निष्क्रिय करती है। फ़ंक्शन हेडर ara/diag/generic_uds_service.h के माध्यम से प्रदान किया जाता है, किसी पैरामीटर की अपेक्षा नहीं करता है और इसका रिटर्न प्रकार void[SWS_DM_00620] है।
त्रुटि प्रबंधन
विधि noexcept के साथ और अपवाद-सुरक्षित (exception safe) के रूप में विनिर्दिष्ट है [SWS_DM_00620]। यह कोई अपवाद नहीं फेंकता है और कोई त्रुटि कोड नहीं लौटाता है; अग्रेषण को रोकना नियतात्मक (deterministic) रूप से होता है।
समवर्तीता और प्रतिबंध
विनिर्देश के अनुसार, StopOffer को थ्रेड-सुरक्षित नहीं (not thread-safe) के रूप में वर्गीकृत किया गया है [SWS_DM_00620]। समान इंस्टेंस के लिए समानांतर कॉलों को एप्लिकेशन पक्ष पर सुरक्षित किया जाना चाहिए। Interpretation: लंबित अग्रेषणों को रोकने के लिए StopOffer का कॉल आमतौर पर इंस्टेंस ऑब्जेक्ट के विनाश से पहले या अस्थायी अनुपलब्धता के मामले में होना चाहिए। प्रश्न Q-408323dd00c313c0 (खुला)
इंटरैक्शन
StopOffer की अवधारणा ara::diag के भीतर एक सुसंगत वास्तुशिल्प पैटर्न (architectural pattern) का अनुसरण करती है, जैसा कि सामान्य रूटीनों [SWS_DM_00558], सामान्य डेटा पहचानकर्ताओं [SWS_DM_00639], Security Access [SWS_DM_00767] साथ ही मॉनिटरों [SWS_DM_01089] में भी पाया जाता है। यद्यपि पदनाम ara::com पर आधारित हैं, यह Diagnostic Management AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors” का एक स्वतंत्र कार्यान्वयन है।
यह उपयोग नोट एक AI द्वारा जनरेट किया गया था और यह विशेष रूप से AUTOSAR रिलीज़ R25-11 के विनिर्देशों पर आधारित है।
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल