डायग्नोस्टिक अनुरोधों पर साझा मेमोरी क्षेत्रों के माध्यम से संपूर्ण फ़ाइलों या डायरेक्टरीज़ को पढ़ने में सक्षम बनाता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 4c654c39d186उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
डायग्नोस्टिक अनुरोधों पर साझा मेमोरी क्षेत्रों के माध्यम से संपूर्ण फ़ाइलों या डायरेक्टरीज़ को पढ़ने में सक्षम बनाता है।
क्लास ara::diag::DataTransferReadSharedDataHandler साझा मेमोरी ([SWS_DM_01497]) के माध्यम से फ़ाइल और डायरेक्टरी सामग्री के लिए रीड डायग्नोस्टिक डेटा ट्रांसफ़र को संभालने का कार्य करती है। सत्र प्रारंभ होने के बाद, ऐप्लिकेशन कार्यान्वयन Read() के माध्यम से पूरे डेटा को साझा डेटा व्यू के रूप में प्रदान करता है और ReleaseHandler द्वारा रिलीज़ अधिसूचना दिए जाने तक आवंटित बफ़र को बनाए रखता है ([SWS_DM_01504])। हैंडलर-विशिष्ट ऑब्जेक्ट को नष्ट करने से पहले, ट्रांसफ़र सत्र को ExitRead() के माध्यम से अनिवार्य रूप से समाप्त किया जाना चाहिए। ऑब्जेक्ट विशेष रूप से एक एकल ट्रांसफ़र सत्र के लिए अभिप्रेत है और इसलिए इसे स्थानांतरित (move) किया जा सकता है, लेकिन कॉपी नहीं किया जा सकता।
संदर्भ
क्लास ara::diag::DataTransferReadSharedDataHandler मॉड्यूल diag (AUTOSAR_AP_SWS_Diagnostics §8.10.5 “Class: DataTransferReadSharedDataHandler”) में AUTOSAR Adaptive Platform के डायग्नोस्टिक क्षेत्र से संबंधित है। इसका मुख्य कार्य फ़ाइल और डायरेक्टरी सामग्री के लिए डेटा ट्रांसफ़र को संभालना है, जो RequestReadFile या RequestReadDirectory जैसे UDS अनुरोधों द्वारा शुरू किए जाते हैं ([SWS_DM_01497])। प्रत्येक ट्रांसफ़र ब्लॉक के लिए अलग-अलग कॉपी चरणों के स्थान पर, यह हैंडलर ऐप्लिकेशन-विशिष्ट कार्यान्वयन को संपूर्ण डेटा को एक सतत, साझा मेमोरी क्षेत्र के रूप में उपलब्ध कराने में सक्षम बनाता है।
समग्र सिस्टम प्रवाह में तीन मुख्य अभिनेता सहयोग करते हैं: बाहरी UDS क्लाइंट ECU को रीड अनुरोध भेजता है। डायग्नोस्टिक रनटाइम एनवायरनमेंट AraDiag अनुरोध प्राप्त करता है और निष्पादन को DataTransferReadSharedDataHandler के ठोस कार्यान्वयन तक अग्रेषित करता है ([SWS_DM_01497], [SWS_DM_01504])। तीसरा भागीदार, ReleaseHandler, ऐप्लिकेशन को संकेत देता है जैसे ही साझा मेमोरी संसाधनों की प्लेटफ़ॉर्म को आवश्यकता नहीं रह जाती है और उन्हें रिलीज़ किया जा सकता है ([SWS_DM_01504])।
ऑब्जेक्ट के विनाश के लिए एक सख्त पूर्व-शर्त है: इस क्लास के किसी भी इंस्टेंस को किसी भी स्थिति में तब तक नष्ट नहीं किया जाना चाहिए जब तक कि ट्रांसफ़र सत्र को ExitRead() के कॉल द्वारा औपचारिक रूप से समाप्त न कर दिया गया हो ([SWS_DM_01499], AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.1.3 “Destructor”)। इस समापन उपचार के पूरा होने के बाद ही वर्चुअल डिस्ट्रक्टर निष्पादित हो सकता है ([SWS_DM_01499])।
कॉनकरेंसी के संबंध में, केंद्रीय मेथड्स Read() और ExitRead() को नॉन-थ्रेड-सेफ़ (not thread-safe) के रूप में नामित किया गया है, जबकि इंटरफ़ेस के सभी फ़ंक्शन अपवाद सुरक्षा (exception safe) की गारंटी देते हैं ([SWS_DM_01498], [SWS_DM_01504], [SWS_DM_01505])।
उपयोग पथ
साझा मेमोरी क्षेत्रों के साथ डेटा ट्रांसफ़र के विशिष्ट कॉल क्रम में कई चरण शामिल होते हैं:
साझा डेटा का प्रावधान:AraDiag विशुद्ध वर्चुअल मेथड Read() को कॉल करता है और एक ReleaseHandler, MetaInfo और साथ ही एक CancellationHandler ([SWS_DM_01504]) पास करता है। ऐप्लिकेशन संपूर्ण फ़ाइल या डायरेक्टरी सामग्री को आवंटित करता है और उस पर साझा दृश्य को ara::core::Span<ara::core::Byte> के रूप में एक ara::core::Future के माध्यम से AraDiag को वापस लौटाता है ([SWS_DM_01504])।
मेमोरी रिटेंशन और रिलीज़: ऐप्लिकेशन को आवंटित मेमोरी को तब तक अनिवार्य रूप से बरकरार रखना चाहिए जब तक कि ReleaseHandler यह संकेत न दे कि मेमोरी क्षेत्र को सुरक्षित रूप से रिलीज़ किया जा सकता है ([SWS_DM_01504])। ऐप्लिकेशन इसके लिए ReleaseHandler पर एक नोटिफ़ायर फ़ंक्शन पंजीकृत कर सकता है या इसकी स्थिति को सक्रिय रूप से क्वेरी कर सकता है ([SWS_DM_01504])। व्याख्या: ReleaseHandler के माध्यम से सिग्नलिंग संभवतः AraDiag द्वारा एसिंक्रोनस रूप से की जाती है जैसे ही डेटा ब्लॉक्स UDS क्लाइंट को सफलतापूर्वक प्रेषित हो जाते हैं। प्रश्न Q-0fbc1c5e667c9a68 (खुला)
सत्र समाप्ति: ट्रांसफ़र को समाप्त करने के लिए AraDiag मेथड ExitRead() को कॉल करता है ([SWS_DM_01505], AUTOSAR_AP_SWS_Diagnostics §8.10.5.1.3.1 “ExitRead”)। समाप्ति कारण (DataTransferExitType) के अतिरिक्त, वाहन निर्माता-विशिष्ट अनुरोध पैरामीटर्स पास किए जाते हैं, जिनका लाइफ़टाइम परिणाम प्रॉमिस पूरा होने तक गारंटीकृत होता है ([SWS_DM_01505])। ऐप्लिकेशन ara::core::Future<ara::core::Vector<ara::core::Byte>> के माध्यम से प्रतिक्रिया डेटा लौटाता है ([SWS_DM_01505])।
ऑब्जेक्ट विनाश:ExitRead() के सफल कॉल के बाद ही हैंडलर इंस्टेंस को रिलीज़ और नष्ट किया जा सकता है ([SWS_DM_01499])।
अनुक्रम आरेख: Read() के माध्यम से डेटा प्रावधान से लेकर मेमोरी रिलीज़ और ExitRead() के माध्यम से समाप्ति तक के चरणों का क्रम। स्रोत: [SWS_DM_01499], [SWS_DM_01504], [SWS_DM_01505]
त्रुटि परिदृश्य
यदि डेटा प्रदान करने में या ट्रांसफ़र समाप्त करने में त्रुटियां होती हैं, तो इन्हें ISO 14229-1 के अनुसार डोमेन DiagUdsNrcErrc से ara::core::ErrorCode के साथ संबंधित ara::core::Future के माध्यम से रिपोर्ट किया जाता है ([SWS_DM_01504], [SWS_DM_01505])।
एक अन्य परिदृश्य चल रही नैदानिक बातचीत को निरस्त करना है। दोनों विधियाँ एक CancellationHandler ([SWS_DM_01504], [SWS_DM_01505]) प्राप्त करती हैं। अनुप्रयोग cancellation_handler.IsCanceled() के माध्यम से निरस्तीकरण स्थिति की तुल्यकालिक रूप से जाँच कर सकता है या असामयिक निरस्तीकरण पर तुरंत प्रतिक्रिया देने के लिए cancellation_handler.SetNotifier() के माध्यम से एक अधिसूचना फ़ंक्शन पंजीकृत कर सकता है ([SWS_DM_01504], [SWS_DM_01505])।
डिस्ट्रक्टर के संबंध में पूर्व शर्त का उल्लंघन - यदि ऑब्जेक्ट ExitRead() को कॉल करने से पहले नष्ट हो जाता है - आवश्यकता [SWS_DM_01499] का खंडन करता है और त्रुटिपूर्ण प्रोग्राम स्थितियों की ओर ले जाता है।
यह क्लास गाइड AUTOSAR Adaptive Platform रिलीज़ R25-11 के विनिर्देश पर आधारित है।
Provides the whole data to be read out from the application in form of a shared data view. The whole file/directory info content to be sent back to the UDS client will be allocated by the application and its shared ownership (view over the memory location) is passed as a result to AraDiag. The allocated memory must be kept until the ReleaseHandler’s notifier is invoked or the status polled, signalling that the memory, addressed by the Span now can safely be released.
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 8bcba929adb6उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
क्लास ara::diag::DataTransferReadSharedDataHandler ([SWS_DM_01505]; हेडर ara/diag/data_transfer.h) का इंटरफ़ेस ExitRead चल रहे डेटा ट्रांसफर सत्र को समाप्त करता है।
exit_type (DataTransferExitType): सत्र समाप्त करने का कारण निर्दिष्ट करता है।
transfer_request_parameter_record (ara::core::Span<const ara::core::Byte>): स्थानांतरण का समर्थन करने के लिए निर्माता-विशिष्ट पैरामीटर शामिल करता है। डेटा तब तक मान्य रहता है जब तक कि संबंधित Promise पूरा नहीं हो जाता या प्रोसेसिंग रद्द नहीं कर दी जाती।
meta_info (MetaInfo const&): डायग्नोस्टिक अनुरोध की अतिरिक्त मेटा-जानकारी शामिल करता है।
cancellation_handler (CancellationHandler): cancellation_handler.IsCanceled() के माध्यम से रद्दीकरण स्थिति की जाँच करने तथा cancellation_handler.SetNotifier() के माध्यम से एक अधिसूचना फ़ंक्शन को पंजीकृत करने की अनुमति देता है, जिसे वार्तालाप रद्द होने पर कॉल किया जाता है।
त्रुटि प्रबंधन और रिटर्न मान
सफल समापन पर, Future आउटपुट डेटा (transferResponseParameterRecord) प्रदान करता है, जिसे सकारात्मक प्रतिक्रिया में SID के बाद रखा जाता है [SWS_DM_01505]। त्रुटि के मामले में, Future को DiagUdsNrcErrc से एक त्रुटि कोड (ISO 14229-1 के अनुसार उपयुक्त NRC) के साथ पूरा किया जाता है [SWS_DM_01505]।
समवर्तीता और जीवनचक्र
मेथड को noexcept घोषित किया गया है (exception safe), लेकिन स्पष्ट रूप से not thread-safe के रूप में निर्दिष्ट किया गया है [SWS_DM_01505]। ऑब्जेक्ट लाइफ़साइकिल के संबंध में, यह आवश्यकता लागू होती है कि DataTransferReadSharedDataHandler के किसी इंस्टेंस को ExitRead() के कॉल होने से पहले किसी भी स्थिति में नष्ट नहीं किया जाना चाहिए ([SWS_DM_01499])। संबंधित क्लासेस DataTransferReadByPullHandler ([SWS_DM_01514]) और DataTransferReadByPushHandler ([SWS_DM_01523]) के लिए समान टर्मिनेशन फ़ंक्शन्स और डिस्ट्रक्टर आवश्यकताएँ मौजूद हैं।
यह उपयोग नोट एक AI द्वारा बनाया गया था और यह AUTOSAR Adaptive Platform के विनिर्देशों पर आधारित है।
This parameter record contains parameter(s), which are required
parameter_record
by the server to support the transfer of data. Format and length of this parameter(s) are vehicle manufacturer specific. Lifetime: Valid until Promise is fulfilled or the processing is cancelled by the cancellationHandler.
meta_info
contains additional meta information of the request.
cancellation_handler
This parameter is used to • Query the current cancellation status by calling cancellation_ handler.IsCanceled(). Returns true in case, the current conversation has been cancelled and false otherwise. • Register a notifier function by calling cancellation_handler.Set Notifier(). The registered notifier is called if the current conversation is cancelled.
Returns a Future, which either gets readied to OperationOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in OperationOutput.response_data will be placed after SID as transferResponseParameterRecord in the positive response.
Fehler
Fehlercode
Beschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.
Request a governed re-review of this record. The record is not changed immediately.
Provides the whole data to be read out from the application in form of a shared data view. The whole file/directory info content to be sent back to the UDS client will be allocated by the application and its shared ownership (view over the memory location) is passed as a result to AraDiag. The allocated memory must be kept until the ReleaseHandler’s notifier is invoked or the status polled, signalling that the memory, addressed by the Span now can safely be released.
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: cba844c9db1eउद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
इंटरफ़ेस ara::diag::DataTransferReadSharedDataHandler का मेथड Read साझा मेमोरी दृश्य ([SWS_DM_01504]) के माध्यम से UDS क्लाइंट के लिए पढ़े जाने वाले फ़ाइल या निर्देशिका डेटा प्रदान करता है। कॉल एसिंक्रोनस रूप से होती है और ara::core::Span<ara::core::Byte> के साथ एक ara::core::Future लौटाती है ([SWS_DM_01504])।
उपयोग और जीवनचक्र
कार्यान्वयन करने वाला एप्लिकेशन संपूर्ण सामग्री को स्वयं आवंटित करता है और दृश्य को AraDiag को सौंपता है। अंतर्निहित मेमोरी क्षेत्र को तब तक अनिवार्य रूप से अपरिवर्तित रखा जाना चाहिए जब तक कि पास किए गए ReleaseHandler के माध्यम से इसके नोटिफ़ायर द्वारा रिलीज़ का संकेत न दिया गया हो या स्थिति जाँच द्वारा क्वेरी न की गई हो ([SWS_DM_01504])। ReleaseHandler को MetaInfo के आधार पर समान UDS क्लाइंट के लिए संग्रहीत किया जाना है ([SWS_DM_01504])। CancellationHandler के माध्यम से IsCanceled() द्वारा चल रहे स्थानांतरण की निगरानी की जा सकती है या SetNotifier() के माध्यम से एक रद्दीकरण नोटिफ़ायर पंजीकृत किया जा सकता है ([SWS_DM_01504])।
त्रुटि हैंडलिंग और समवर्तीता
सफलता की स्थिति में डेटा को blockSequenceCounter के बाद transferResponseParameterRecord के रूप में भेजा जाता है ([SWS_DM_01504])। यदि पठन विफल हो जाता है, तो Future को ISO 14229-1 के अनुसार DiagUdsNrcErrc से उपयुक्त त्रुटि कोड के साथ पूरा किया जाना चाहिए ([SWS_DM_01504])। यदि एप्लिकेशन का इंटरफ़ेस अभी तक या अब offer() के माध्यम से प्रदान नहीं किया गया है, तो सर्वर NRC 0x94 (ResourceTemporarilyNotAvailable) की रिपोर्ट करता है ([SWS_DM_01257])। फ़ंक्शन noexcept और अपवाद-सुरक्षित के रूप में निर्दिष्ट है, लेकिन इसे गैर-थ्रेड-सुरक्षित (not thread-safe) माना जाता है ([SWS_DM_01504])।
सरहदबंदी
DataTransferReadByPullHandler::Read के विपरीत, जिसमें डेटा ब्लॉक एक पूर्वनिर्धारित बफ़र में कॉपी किए जाते हैं ([SWS_DM_01513]), या DataTransferReadByPushHandler::Read, जो स्वामित्व हस्तांतरण के माध्यम से वेक्टर्स प्रदान करता है ([SWS_DM_01522]), यह हैंडलर साझा मेमोरी के माध्यम से बिना बफ़र कॉपी के संपूर्ण सामग्री को स्थानांतरित करता है ([SWS_DM_01504])।
यह उपयोग निर्देश AUTOSAR मानक के आधार पर स्वचालित रूप से जनरेट किया गया था।
The release shared resource handler to be stored and used by the application until a new one is passed for the same meta_info (UDS client).
meta_info
Contains additional meta information.
cancellation_handler
This parameter is used to • Query the current cancellation status by calling cancellation_ handler.IsCanceled(). Returns true in case, the current conversation has been cancelled and false otherwise. • Register a notifier function by calling cancellation_handler.Set Notifier(). The registered notifier is called if the current conversation is cancelled.
Returns a Future, which either gets readied to ReadSharedOutput (transferResponseParameterRecord for a positive response message) or readied with ErrorCode from DiagUdsNrcErrc (for an negative response message). Data in ReleaseSharedHandler.responseData will be placed after the blockSequenceCounter as transferResponseParameterRecord in the positive response.
Fehler
Fehlercode
Beschreibung
Please use an applicable NRC, as defined in ISO 14229-1, using DiagUdsNrcErrc.
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल