Class to implement the subfunction TransmitCertificate (29 04) of UDS service Authentication as interface to application. This class implements a so called generic interface, where the application has means to handle one ore more certificateEvaluationId transferred certificates.
Authentication UDS सेवा में एप्लिकेशन को डायग्नोस्टिक प्रमाणपत्र प्राप्त करने और सत्यापित करने में सक्षम बनाता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 82e724c2cab7उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
Authentication UDS सेवा में एप्लिकेशन को डायग्नोस्टिक प्रमाणपत्र प्राप्त करने और सत्यापित करने में सक्षम बनाता है।
क्लास ara::diag::TransmitCertificateAuthentication[SWS_DM_01961] सेवा के UDS सब-फ़ंक्शन TransmitCertificate (0x29 0x04) के लिए एप्लिकेशन इंटरफ़ेस को कार्यान्वित करती है। Offer() के माध्यम से रिलीज़ के बाद, एप्लिकेशन एसिंक्रोनस विधि Process() में प्रेषित प्रमाणपत्र डेटा प्राप्त करता है और एप्लिकेशन-विशिष्ट सत्यापन आरंभ करता है [SWS_DM_01968]। सफल सत्यापन पर, Diagnostic Management रिटर्न पैरामीटर 0x13 (CertificateVerified) के साथ एक सकारात्मक UDS प्रतिक्रिया उत्पन्न करता है, जबकि त्रुटियों का उत्तर संबंधित NRC के साथ नकारात्मक प्रतिक्रिया के रूप में दिया जाता है। इंस्टेंस पोर्ट-इंटरफ़ेस से दृढ़ता से आबद्ध है और इसे न तो कॉपी किया जा सकता है और न ही स्थानांतरित किया जा सकता है।
संदर्भ
हेडर ara/diag/transmit_certificate.h (AUTOSAR_AP_SWS_Diagnostics §8.26 “Header: ara/diag/transmit_certificate.h”) में क्लास ara::diag::TransmitCertificate[SWS_DM_01961]Authentication सेवा के UDS सब-फ़ंक्शन TransmitCertificate (0x29 0x04) को लागू करने के लिए Adaptive एप्लिकेशन के इंटरफ़ेस का प्रतिनिधित्व करती है। एक सामान्य इंटरफ़ेस के रूप में, यह एप्लिकेशन को 16-बिट पहचानकर्ता (certificateEvaluationId) के आधार पर एक या अधिक प्रेषित प्रमाणपत्र प्राप्त करने और संसाधित करने में सक्षम बनाती है।
इस इंटरैक्शन में तीन मुख्य घटक शामिल हैं:
बाहरी डायग्नोस्टिक टेस्टर, जो वाहन को प्रमाणपत्र ट्रांसमिशन के लिए UDS अनुरोध भेजता है [SWS_DM_01968]।
Adaptive Platform का Diagnostic Server (Diagnostic Management, DM), जो आने वाले डायग्नोस्टिक अनुरोधों को फ़िल्टर करता है, अग्रेषित करता है और अंतिम UDS प्रतिक्रियाएं उत्पन्न करता है [SWS_DM_01251], [SWS_DM_01969]।
Adaptive एप्लिकेशन, जो ara::diag::TransmitCertificate से व्युत्पन्न एक इंस्टेंस प्रदान करता है, प्रमाणपत्र सत्यापन करता है और सर्वर को एसिंक्रोनस रूप से परिणाम लौटाता है [SWS_DM_01968]।
ara::diag::TransmitCertificate के इंस्टेंस ara::core::InstanceSpecifier और समवर्ती मोड ConcurrencyType निर्दिष्ट करके कंस्ट्रक्टर के माध्यम से बनाए जाते हैं [SWS_DM_01962]। InstanceSpecifier को मैनिफ़ेस्ट में एक PortPrototype को संदर्भित करना चाहिए, जो DiagnosticTransmitCertificateInterface द्वारा टाइप किया गया है [SWS_DM_01962]। यदि यह असाइनमेंट विफल हो जाता है या वर्तमान प्रक्रिया में इंस्टेंस पहचानकर्ता का बार-बार उपयोग किया जाता है, तो InstanceSpecifierMappingIntegrityViolation, PortInterfaceMappingViolation, ProcessMappingViolation या InstanceSpecifierAlreadyInUseViolation जैसे रनटाइम उल्लंघन होते हैं [SWS_DM_01962]।
क्लास सख्त स्वामित्व और इंस्टेंसिएशन नियमों के अधीन है: एक प्रमाणीकरण हैंडलर को एक अद्वितीय, गैर-प्रतिलिपि योग्य (non-copyable) और गैर-स्थानांतरणीय (non-movable) इंस्टेंस के रूप में डिज़ाइन किया गया है। तदनुसार, कॉपी कंस्ट्रक्टर [SWS_DM_01964], कॉपी असाइनमेंट ऑपरेटर [SWS_DM_01966], साथ ही मूव कंस्ट्रक्टर [SWS_DM_01963] और मूव असाइनमेंट ऑपरेटर [SWS_DM_01965] स्पष्ट रूप से हटा दिए गए हैं (=delete)।
कंस्ट्रक्टर स्वयं थ्रेड-सुरक्षित और अपवाद-सुरक्षित निर्दिष्ट है [SWS_DM_01962]। रिलीज़ वर्चुअल मानक डिस्ट्रक्टर [SWS_DM_01967] के माध्यम से होती है। क्या वास्तविक निष्पादन विधि Process को थ्रेड-सुरक्षित रूप से कार्यान्वित किया जाना चाहिए, यह चुने गए concurrencyType (kConcurrent या kNotConcurrent) पर निर्भर करता है [SWS_DM_01962], [SWS_DM_01968]।
उपयोग पथ
नियमित प्रक्रिया में हैंडलर का पंजीकरण, आने वाले प्रमाणपत्रों का प्रसंस्करण और बाद में डी-पंजीकरण शामिल है:
सेवा प्रस्तुत करना (Offer): एप्लिकेशन Diagnostic Management को यह संकेत देने के लिए Offer() को कॉल करता है कि कॉन्फ़िगर किए गए इंटरफ़ेस के अनुरोधों को इस हैंडलर पर अग्रेषित किया जा सकता है [SWS_DM_01969]।
अनुरोध प्राप्त करना (Process): यदि Diagnostic Server पर सब-फ़ंक्शन TransmitCertificate का कोई UDS अनुरोध आता है, तो यह डेटा को एप्लिकेशन की शुद्ध वर्चुअल विधि Process() पर अग्रेषित करता है [SWS_DM_01968]। विधि को 16-बिट पहचानकर्ता certificateEvaluationId, ara::core::Span<ara::core::Byte const> के रूप में प्रमाणपत्र का रॉ डेटा, मेटाडेटा (metaInfo) और एक cancellationHandler प्राप्त होता है [SWS_DM_01968]।
मूल्यांकन और कार्रवाई: चूंकि AUTOSAR प्रमाणपत्रों के लिए कोई निश्चित सिमेंटिक्स निर्धारित नहीं करता है, इसलिए सत्यापन और आवश्यक उपायों का निर्धारण पूरी तरह से एप्लिकेशन की ज़िम्मेदारी है [SWS_DM_01968]। व्याख्या: एप्लिकेशन आमतौर पर प्रेषित प्रमाणपत्र को क्रिप्टोग्राफ़िक रूप से सत्यापित करेगा या आंतरिक कुंजी स्टोर को अपडेट करने के लिए इसका उपयोग करेगा। प्रश्न Q-34844f9257d074c6 (खुला)
सेवा समाप्त करना (StopOffer): यदि हैंडलर को कोई और अनुरोध प्राप्त नहीं करना है, तो एप्लिकेशन StopOffer() को कॉल करके अग्रेषण समाप्त करता है [SWS_DM_01970]।
जीवनचक्र के विभिन्न चरणों में त्रुटि स्थितियां उत्पन्न हो सकती हैं:
पहले से सक्रिय ऑफ़र: यदि Offer() को कॉल किया जाता है, जबकि इस इंस्टेंस के लिए सेवा पहले से ही सक्रिय रूप से प्रस्तुत की जा रही है, तो कॉल विफल हो जाती है और ara::core::Result<void> में रोलबैक सिमेंटिक्स के साथ त्रुटि कोड DiagOfferErrc::kAlreadyOffered लौटाती है [SWS_DM_01969]। Offer() और StopOffer() थ्रेड-सुरक्षित नहीं हैं और इन्हें समवर्ती रूप से कॉल नहीं किया जाना चाहिए [SWS_DM_01969], [SWS_DM_01970]।
चल रहे वार्तालापों को रद्द करना: एसिंक्रोनस प्रोसेसिंग के दौरान, एप्लिकेशन cancellationHandler.IsCanceled() के माध्यम से स्थिति की जांच कर सकता है ताकि यह निर्धारित किया जा सके कि डायग्नोस्टिक वार्तालाप रद्द कर दिया गया है या नहीं [SWS_DM_01968]। इसके अतिरिक्त, cancellationHandler.SetNotifier(...) के माध्यम से एक कॉलबैक फ़ंक्शन पंजीकृत किया जा सकता है जिसे रद्द होने पर तुरंत सूचित किया जाता है [SWS_DM_01968]।
यह मार्गदर्शिका AUTOSAR Adaptive Platform विनिर्देश R25-11 (मॉड्यूल diag) पर आधारित है और AI की सहायता से तैयार की गई है।
This method is used to process certificates send by a diagnostic tester, via the UDS subfunction TransmitCertificate inside the application. There is no specific semantics for the certificate and it is left to the application to process the received certificate and derive the needed actions.
This Offer will enable the DM to forward request messages to this handler.
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: db62dd9c27e2उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
विधि Offer के माध्यम से, एक Adaptive Application वर्ग ara::diag::TransmitCertificate[SWS_DM_01969] के ज़िम्मेदार हैंडलर को Diagnostic Management (DM) द्वारा निदान अनुरोधों के अग्रेषण को सक्रिय करता है। कॉल समकालिक और पैरामीटरहीन होता है; इंटरफ़ेस को अपवाद-सुरक्षित (noexcept) के रूप में परिभाषित किया गया है [SWS_DM_01969]। वापसी प्रकार के रूप में ara::core::Result<void> कार्य करता है, जिसके साथ पंजीकरण की सफलता या कोई त्रुटि स्थिति कॉलर को सूचित की जाती है [SWS_DM_01969]।
यदि फ़ंक्शन को संबंधित हैंडलर इंस्टेंस के लिए पहले ही कॉल किया जा चुका है, तो पुन: कॉल विफल हो जाती है और रोलबैक सिमेंटिक्स के साथ विशिष्ट त्रुटि DiagOfferErrc::kAlreadyOffered लौटाती है [SWS_DM_01969], जो DiagErrc में मानकीकृत त्रुटि मान से मेल खाती है [SWS_DM_00514]। चूँकि विधि को स्पष्ट रूप से गैर-थ्रेड-सुरक्षित के रूप में निर्दिष्ट किया गया है [SWS_DM_01969], इसलिए उसी इंस्टेंस पर समानांतर पहुँच से बचना चाहिए (व्याख्या: समवर्ती कॉलों से सुरक्षा अनुप्रयोग सॉफ़्टवेयर की ज़िम्मेदारी है)। प्रश्न Q-b44b11a0a2dcb2b4 (खुला)
Offer का कार्यात्मक पैटर्न नैदानिक हैंडलरों की एकीकृत प्रावधान अवधारणा का अनुसरण करता है, जैसा कि ara::diag::Authentication::Offer[SWS_DM_01130], ara::diag::CommunicationControl::Offer[SWS_DM_00809] या ara::diag::GenericRoutine::Offer[SWS_DM_00557] में भी लागू किया गया है। AUTOSAR यह स्पष्ट करता है कि ara::com के समान नाम होने के बावजूद, यह एक स्वतंत्र निदान कार्यान्वयन है (AUTOSAR_AP_SWS_Diagnostics §7.3.4.1.2 “Monitors”)। Offer द्वारा प्रावधान से पहले, DM हैंडलर को कोई अनुरोध अग्रेषित नहीं करता है, ठीक उसी तरह जैसे DoIP सेवाएँ कॉल से पहले तैयार नहीं मानी जाती हैं [SWS_DM_01525]।
यह उपयोग नोट स्वचालित रूप से उत्पन्न किया गया था और रिलीज़ R25-11 के विनिर्देशों पर आधारित है।
This method is used to process certificates send by a diagnostic tester, via the UDS subfunction TransmitCertificate inside the application. There is no specific semantics for the certificate and it is left to the application to process the received certificate and derive the needed actions.
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: d261181b4bb6उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
इंटरफ़ेस वर्ग ara::diag::TransmitCertificate की विधि Process उन प्रमाणपत्रों के अनुप्रयोग-आंतरिक प्रसंस्करण के लिए कार्य करती है, जिन्हें एक निदान परीक्षक (diagnostic tester) UDS सेवा 0x29 (Authentication) के तहत उप-फ़ंक्शन TransmitCertificate (0x04) के माध्यम से प्रेषित करता है [SWS_DM_01968], AUTOSAR_AP_SWS_Diagnostics §7.3.2.8.11.5 “Service 0x29 – transmitCertificate (0x04)”। चूँकि AUTOSAR प्रमाणपत्र के लिए कोई विशिष्ट सिमेंटिक्स निर्दिष्ट नहीं करता है, इसलिए सामग्री की जाँच करना और आवश्यक क्रियाएं निर्धारित करना पूरी तरह से अनुप्रयोग की ज़िम्मेदारी है [SWS_DM_01968]।
विधि को अतुल्यकालिक रूप से कॉल किया जाता है और यह निम्नलिखित पैरामीटर स्वीकार करती है [SWS_DM_01968]:
certificateEvaluationId: प्रमाणपत्र मूल्यांकन की पहचान के लिए UDS अनुरोध संदेश से 16-बिट मूल्यांकन ID [SWS_DM_01968], [SWS_DM_01247]।
certificateData: परीक्षक द्वारा ara::core::Span<ara::core::Byte const>[SWS_DM_01968] के रूप में प्रेषित प्रमाणपत्र डेटा।
metaInfo: निदान अनुरोध से संबंधित मेटा-जानकारी [SWS_DM_01968]।
cancellationHandler: निदान वार्तालाप के समयपूर्व निरस्त होने पर cancellationHandler.IsCanceled() के माध्यम से निरस्तीकरण स्थिति की क्वेरी करने और cancellationHandler.SetNotifier() के माध्यम से अधिसूचना पंजीकृत करने में सक्षम बनाता है [SWS_DM_01968]।
वापसी अतुल्यकालिक रूप से ara::core::Future<void>[SWS_DM_01968] के रूप में होती है। यदि प्रसंस्करण विफल हो जाता है, तो DiagUdsNrcErrc के माध्यम से ISO 14229-1 के अनुसार एक उपयुक्त Negative Response Code (NRC) प्रदान किया जाना चाहिए [SWS_DM_01968]। फ़ंक्शन noexcept के रूप में घोषित है और अपवाद-सुरक्षित (exception safe) है [SWS_DM_01968]।
थ्रेड सुरक्षा सशर्त (conditional) है: यह ConcurrencyType पर निर्भर करती है, जो ara::diag::TransmitCertificate के कंस्ट्रक्टर को पारित किया जाता है [SWS_DM_01968]। अग्रेषित करने से पहले, निदान प्रबंधक certificateEvaluationId[SWS_DM_01247] के आधार पर अनुरोध को मान्य करता है।
यह उपयोग संबंधी निर्देश AUTOSAR 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
certificateEvaluationId
Represents the 16bit certificate evaluation ID as part of the UDS request message
certificateData
Certificate to be verified, transmitted by the tester
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 StopOffer will disable the forwarding of request messages from DM.
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 7da07a83c1d7उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
वर्ग ara::diag::TransmitCertificate ([SWS_DM_01970]) की विधि StopOffer Diagnostic Management (DM) के लिए प्रमाणपत्र स्थानांतरण सेवा के प्रावधान को समाप्त करती है। कॉल के माध्यम से, DM से इस हैंडलर को आने वाले निदान अनुरोध संदेशों का अग्रेषण निष्क्रिय हो जाता है ([SWS_DM_01970])।
उपयोग और सिमेंटिक्स
कॉल हेडर ara/diag/transmit_certificate.h ([SWS_DM_01970]) से हस्ताक्षर void StopOffer() noexcept; के माध्यम से पैरामीटरहीन रूप से होता है। फ़ंक्शन कोई रिटर्न मान नहीं देता है और इसे noexcept तथा exception safe के रूप में निर्दिष्ट किया गया है ([SWS_DM_01970]), जिससे यह सुनिश्चित होता है कि यह कोई अपवाद नहीं फेंकेगा।
समवर्तीता और प्रतिबंध
विधि को स्पष्ट रूप से not thread-safe के रूप में निर्दिष्ट किया गया है ([SWS_DM_01970])। इसलिए कॉल करने वालों को यह सुनिश्चित करना चाहिए कि ara::diag::TransmitCertificate के समान इंस्टेंस पर प्रतिस्पर्धी कॉलों को बाहरी तंत्रों द्वारा सिंक्रनाइज़ किया जाए। व्याख्या: किसी सेवा इंस्टेंस को नष्ट करने से पहले या अस्थायी निष्क्रियता के दौरान, स्थिति परिवर्तन के दौरान नए अनुरोधों के आगमन को रोकने के लिए संभवतः StopOffer को कॉल किया जाता है। प्रश्न Q-9ab97301565c5bf9 (खुला)
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: b553bcd9da3eउद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
कंस्ट्रक्टर UDS सेवा 0x29 (सबफ़ंक्शन TransmitCertificate) के ढांचे में प्रमाणपत्रों के प्रसंस्करण के लिए क्लास ara::diag::TransmitCertificate के एक इंस्टेंस को प्रारंभ करता है [SWS_DM_01962]।
उपयोग
कॉल सिंक्रोनस रूप से होता है और noexcept तथा exception safe के रूप में निर्दिष्ट है [SWS_DM_01962]। कॉल के दौरान दो पैरामीटर पास किए जाते हैं:
specifier: एक ara::core::InstanceSpecifier, जिसे एक PortPrototype को संदर्भित करना चाहिए, जो मैनिफ़ेस्ट में एक DiagnosticAuthenticationPortMapping के माध्यम से एक DiagnosticTransmitCertificateInterface पर टाइप किया गया है [SWS_DM_01962]।
concurrencyType: kConcurrent या kNotConcurrent के माध्यम से निर्धारित करता है कि क्या इंटरफ़ेस वर्चुअल मेथड Process के समवर्ती कॉल की अनुमति देता है या इसे अनुक्रमिक रूप से संसाधित किया जाना चाहिए [SWS_DM_01962], [SWS_DM_01968]।
त्रुटि प्रबंधन और सीमा शर्तें
ऑब्जेक्ट निर्माण थ्रेड-सुरक्षित है [SWS_DM_01962]। चूंकि एक प्रमाणीकरण इंस्टेंस अद्वितीय होना चाहिए, इसलिए कॉपी और मूव कंस्ट्रक्टर तथा असाइनमेंट ऑपरेटर स्पष्ट रूप से हटा दिए गए हैं [SWS_DM_01963], [SWS_DM_01964], [SWS_DM_01965], [SWS_DM_01966]। मैनिफ़ेस्ट में गलत कॉन्फ़िगरेशन या किसी पहचानकर्ता के दोहराए गए उपयोग के मामले में, उल्लंघन (violations) रिपोर्ट किए जाते हैं (जैसे InstanceSpecifierMappingIntegrityViolation, PortInterfaceMappingViolation, ProcessMappingViolation या InstanceSpecifierAlreadyInUseViolation) [SWS_DM_01962]। चूंकि कंस्ट्रक्टर अपवाद नहीं फेंकता है, इसलिए इन रिपोर्टों को संभवतः ara फ़्रेमवर्क की रनटाइम रिपोर्टिंग के माध्यम से संकेतित किया जाएगा। प्रश्न Q-140f1e794355ad96 (खुला)
इंटरैक्शन
निर्माण के बाद, इंस्टेंस को Offer() का उपयोग करके जारी (offered) किया जाना चाहिए ताकि Diagnostic Management Daemon अनुरोधों को अग्रेषित कर सके [SWS_DM_01969]। Process() के माध्यम से सफल प्रसंस्करण पर, सर्वर पैरामीटर CertificateVerified (0x13) के साथ सकारात्मक रूप से उत्तर देता है [SWS_DM_01251], जबकि त्रुटियों के परिणामस्वरूप नकारात्मक UDS प्रतिक्रियाएं मिलती हैं [SWS_DM_01249]। StopOffer() के साथ अग्रेषण समाप्त किया जाता है [SWS_DM_01970]।
यह पाठ AI द्वारा जनरेट किया गया था और यह केवल मार्गदर्शन के रूप में कार्य करता है। केवल आधिकारिक 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 referenced by a pingViolation DiagnosticAuthenticationPortMapping needs to be typed by a DiagnosticTransmitCertificateInterface. 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 DiagnosticTransmitCertificateInterface service instance in the manifest.
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-low· 2026-10-13 · जर्मन मूल