अनुप्रयोग में फ़ाइल स्थानांतरण लिखते समय आने वाले डेटा ब्लॉक को संसाधित और संग्रहीत करता है।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: eacdeba00b95उद्गमखुले प्रश्न (2)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
अनुप्रयोग में फ़ाइल स्थानांतरण लिखते समय आने वाले डेटा ब्लॉक को संसाधित और संग्रहीत करता है।
वर्ग ara::diag::DataTransferWriteHandler AUTOSAR Adaptive में उन राइटिंग फ़ाइल ट्रांसफ़र के अनुप्रयोग-पक्षीय प्रसंस्करण का कार्य करता है, जो AddFile, ResumeFile या ReplaceFile मोड में RequestWriteFile द्वारा शुरू किए गए थे [SWS_DM_01539]। आने वाले डेटा पैकेट असमकालिक रूप से Write() के माध्यम से मेमोरी में लिखे जाते हैं और उसके बाद सत्र ExitWrite() के माध्यम से समाप्त होता है। एक इंस्टेंस सख्ती से एकल ट्रांसफ़र सत्र से जुड़ा होता है और इसे किसी भी स्थिति में ExitWrite() को कॉल करने से पहले नष्ट नहीं किया जाना चाहिए [SWS_DM_01541]।
संदर्भ
अमूर्त आधार वर्ग ara::diag::DataTransferWriteHandler AUTOSAR Adaptive Platform में राइटिंग फ़ाइल ट्रांसफ़र [SWS_DM_01539] (AUTOSAR_AP_SWS_Diagnostics §8.10.6 “Class: DataTransferWriteHandler”) के लिए इंटरफ़ेस को परिभाषित करता है। यह उन डेटा ट्रांसफ़र के अनुप्रयोग-पक्षीय प्रसंस्करण का कार्य करता है, जो RequestWriteFile के संदर्भ में संचालन मोड AddFile, ResumeFile या ReplaceFile के माध्यम से शुरू किए गए थे।
नैदानिक आर्किटेक्चर के भीतर, हैंडलर बाहरी UDS क्लाइंट, नैदानिक मिडलवेयर और अनुप्रयोग के साथ इंटरैक्ट करता है। क्लाइंट खंडित डेटा ब्लॉक प्रसारित करता है, जिन्हें हैंडलर के व्युत्पन्न कार्यान्वयन द्वारा प्राप्त किया जाता है और अनुप्रयोग मेमोरी [SWS_DM_01546] में संग्रहीत किया जाता है। संभवतः प्लेटफ़ॉर्म का नैदानिक प्रबंधन UDS प्रोटोकॉल समन्वय को संभालता है और हैंडलर इंटरफ़ेस के माध्यम से पेलोड को लक्ष्य अनुप्रयोग को अग्रेषित करता है। प्रश्न Q-484dc9dd80e56af4 (खुला)
जीवनचक्र
ara::diag::DataTransferWriteHandler का इंस्टेंसिएशन केवल अनुप्रयोग के विशिष्ट उपवर्गों द्वारा किया जाता है: पैरामीटरहीन कंस्ट्रक्टर को protected और noexcept=default के साथ परिभाषित किया गया है [SWS_DM_01540], जो बेस क्लास के सीधे इंस्टेंसिएशन को रोकता है। एक हैंडलर इंस्टेंस सख्ती से एकल फ़ाइल ट्रांसफ़र सत्र ("one way usage i.e. per single file transfer session") से जुड़ा होता है। इस कारण से, कॉपी कंस्ट्रक्टर [SWS_DM_01544] (AUTOSAR_AP_SWS_Diagnostics §8.10.6.1.2.1 “DataTransferWriteHandler”) और कॉपी असाइनमेंट ऑपरेटर [SWS_DM_01545] हटा दिए गए हैं (=delete)।
इंस्टेंस के विनाश के लिए एक बाध्यकारी पूर्व शर्त लागू होती है: इस वर्ग के किसी इंस्टेंस को किसी भी स्थिति में नष्ट नहीं किया जाना चाहिए, इससे पहले कि विधि ExitWrite() को कॉल किया गया हो [SWS_DM_01541] (AUTOSAR_AP_SWS_Diagnostics §8.10.6.1.1.2 “Destructor”)। केवल ExitWrite() के पूर्ण निष्पादन के बाद ही वर्चुअल डिस्ट्रक्टर ~DataTransferWriteHandler() को कॉल किया जा सकता है। सदस्य फ़ंक्शन और डिस्ट्रक्टर नॉन-थ्रेड-सुरक्षित (not thread-safe) के रूप में निर्दिष्ट हैं [SWS_DM_01541], [SWS_DM_01546], [SWS_DM_01547]।
स्थिति आरेख: DataTransferWriteHandler इंस्टेंस का जीवन चक्र और कॉल अनुक्रम। स्रोत: [SWS_DM_01541], [SWS_DM_01544]।
उपयोग पथ
राइटिंग ट्रांसफ़र के नियमित प्रवाह में डेटा ब्लॉक का क्रमिक रिसेप्शन और उसके बाद सत्र का समापन शामिल है:
प्रत्येक आने वाले डेटा सेगमेंट के लिए, नैदानिक प्रणाली शुद्ध वर्चुअल विधि Write() को कॉल करती है [SWS_DM_01546] (AUTOSAR_AP_SWS_Diagnostics §8.10.6.1.3.2 “Write”)। डेटा ara::core::Span<ara::core::Byte> के रूप में पास किया जाता है। इस मेमोरी क्षेत्र की वैधता तब तक बनी रहती है जब तक कि संबंधित Promise पूरा नहीं हो जाता या ऑपरेशन निरस्त नहीं हो जाता। अनुप्रयोग डेटा को आंतरिक बफ़र में जोड़ता है और एक ara::core::Future<void> लौटाता है।
सभी सेगमेंट प्रसारित होने के बाद, प्लेटफ़ॉर्म शुद्ध वर्चुअल विधि ExitWrite() को कॉल करता है [SWS_DM_01547] (AUTOSAR_AP_SWS_Diagnostics §8.10.6.1.3.1 “ExitWrite”)। समाप्ति का कारण (DataTransferExitType), वाहन निर्माता-विशिष्ट पैरामीटर (transferRequestParameterRecord), metaInfo और एक CancellationHandler पास किए जाते हैं।
विधि ExitWrite() एक ara::core::Future<ara::core::Vector<ara::core::Byte>> लौटाती है। सफल समापन पर, इसमें मौजूद डेटा को सर्विस-ID के बाद सकारात्मक UDS प्रतिक्रिया संदेश में transferResponseParameterRecord के रूप में डाला जाता है [SWS_DM_01547]।
अनुक्रम आरेख: ट्रांसफ़र सत्र के दौरान Write और ExitWrite ऑपरेशनों का कॉल अनुक्रम। स्रोत: [SWS_DM_01546], [SWS_DM_01547]।
त्रुटि परिदृश्य
डेटा प्रोसेसिंग और ट्रांसफ़र के दौरान त्रुटियों को मानकीकृत रिटर्न मानों और निरस्तीकरण तंत्रों के माध्यम से प्रबंधित किया जाता है:
यदि किसी डेटा ब्लॉक को लिखना या ट्रांसफ़र समाप्त करना विफल हो जाता है, तो संबंधित Future को DiagUdsNrcErrc से ara::core::ErrorCode के साथ प्रदान किया जाता है [SWS_DM_01546], [SWS_DM_01547]। इससे क्लाइंट को एक संबंधित नकारात्मक UDS प्रतिक्रिया (ISO 14229-1 के अनुसार NRC) उत्पन्न होती है।
दोनों विधियाँ एक CancellationHandler प्रदान करती हैं। अनुप्रयोग cancellationHandler.IsCanceled() के माध्यम से जाँच कर सकता है कि क्या बातचीत निरस्त कर दी गई थी, या cancellationHandler.SetNotifier() का उपयोग करके एक अधिसूचना फ़ंक्शन पंजीकृत कर सकता है जो बातचीत के निरस्त होने पर निष्पादित होता है [SWS_DM_01546], [SWS_DM_01547]।
यदि इंस्टेंस ExitWrite() को कॉल करने से पहले नष्ट हो जाता है, तो यह निर्दिष्ट जीवन चक्र नियम का उल्लंघन है [SWS_DM_01541], जिससे संभवतः अपरिभाषित सिस्टम स्थिति और अपूर्ण फ़ाइलें उत्पन्न होती हैं। प्रश्न Q-cc032c11ac89a5b1 (खुला) इसके अलावा, असुरक्षित समवर्ती पहुँच डेटा विसंगतियों की ओर ले जाती है, क्योंकि इंटरफ़ेस स्पष्ट रूप से थ्रेड-सुरक्षित नहीं है।
यह गाइड AUTOSAR R25-11 पर आधारित एक AI क्यूरेशन सहायक द्वारा बनाई गई थी।
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 459b3563e8d0उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
उपयोग
वर्चुअल सदस्य फ़ंक्शन ara::diag::DataTransferWriteHandler::ExitWrite राइट एक्सेस के लिए चल रहे डेटा ट्रांसफ़र सत्र को समाप्त करता है [SWS_DM_01547] (AUTOSAR_AP_SWS_Diagnostics §8.10.6.1.3.1 “ExitWrite”, हेडर #include "ara/diag/data_transfer.h")। कॉल पैरामीटरों में शामिल हैं:
exitType: सत्र समाप्त करने का कारण निर्धारित करता है [SWS_DM_01547]।
transferRequestParameterRecord: डेटा ट्रांसफ़र के समर्थन के लिए वाहन निर्माता-विशिष्ट पैरामीटर; स्पैन की वैधता तब तक बनी रहनी चाहिए जब तक संबंधित Promise पूरा न हो जाए या ऑपरेशन रद्द न हो जाए [SWS_DM_01547]।
cancellationHandler: cancellationHandler.IsCanceled() के माध्यम से रद्दीकरण स्थिति की जांच करने के साथ-साथ cancellationHandler.SetNotifier() के माध्यम से Notifier के पंजीकरण को सक्षम बनाता है [SWS_DM_01547]।
यह फ़ंक्शन अतुल्यकालिक रूप से कार्य करता है और ara::core::Future<ara::core::Vector<ara::core::Byte>> लौटाता है, जिसका परिणाम डेटा सफलता की स्थिति में धनात्मक प्रतिक्रिया संदेश में SID के पीछे transferResponseParameterRecord के रूप में सम्मिलित किया जाता है [SWS_DM_01547]।
त्रुटि प्रबंधन
यदि समाप्ति विफल हो जाती है, तो Future को ISO 14229-1 के अनुसार DiagUdsNrcErrc के माध्यम से एक उपयुक्त Negative Response Code (NRC) के साथ प्रदान किया जाना चाहिए [SWS_DM_01547]। फ़ंक्शन को noexcept और अपवाद-सुरक्षित (exception safe) के रूप में निर्दिष्ट किया गया है [SWS_DM_01547]।
समवर्तीता और परस्पर क्रिया
कार्यान्वयन थ्रेड-सुरक्षित नहीं (not thread-safe) है [SWS_DM_01547]। ऑब्जेक्ट जीवनचक्र के संबंध में एक सख्त क्रम शर्त है: हैंडलर वर्ग के एक इंस्टेंस को केवल ExitWrite() को कॉल किए जाने के बाद ही नष्ट किया जा सकता है [SWS_DM_01541]।
यह उपयोग नोट रिलीज़ R25-11 के लिए AUTOSAR विनिर्देशों के आधार पर स्वचालित रूप से बनाया गया था।
This parameter record contains parameter(s), which are required 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.
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.
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.
एआई-जनितअसत्यापितमॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: a81be0f54500उद्गमखुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल
इंटरफ़ेस ara::diag::DataTransferWriteHandler की विधि Write UDS फ़ाइल ट्रांसफ़र के दौरान प्राप्त डेटा ब्लॉक्स को अनुप्रयोग के मेमोरी क्षेत्र में जोड़ने का काम करती है [SWS_DM_01546]। यह कॉल Diagnostic Server इंस्टेंस द्वारा तब की जाती है, जब RequestFileTransfer (0x38) द्वारा शुरू की गई प्रक्रिया के तहत एक UDS अनुरोध TransferData (0x36) प्राप्त होता है [SWS_DM_01317]।
पैरामीटर और सिमेंटिक्स
लिखी जाने वाली फ़ाइल सामग्री requestData के माध्यम से ara::core::Span<ara::core::Byte> के रूप में पास की जाती है; संदर्भित बफ़र तब तक मान्य रहता है जब तक संबंधित Promise पूरा नहीं हो जाता या प्रोसेसिंग रद्द नहीं हो जाती [SWS_DM_01546]। पैरामीटर metaInfo निदान अनुरोध की मेटा-जानकारी प्रदान करता है। cancellationHandler के माध्यम से IsCanceled का उपयोग करके वर्तमान रद्दीकरण स्थिति जांची जा सकती है या SetNotifier के माध्यम से एक अधिसूचना कॉलबैक पंजीकृत किया जा सकता है [SWS_DM_01546]।
त्रुटि हैंडलिंग और समवर्तीता
परिणाम अतुल्यकालिक (asynchronous) रूप से ara::core::Future<void> के रूप में वापस किया जाता है। सफलता की स्थिति में, Future खाली पूरा होता है; त्रुटियों के मामले में, इसे ISO 14229-1 के अनुसार DiagUdsNrcErrc से उपयुक्त Negative Response Code (NRC) के साथ पूरा किया जाना चाहिए [SWS_DM_01546]। फ़ंक्शन को exception safe, लेकिन स्पष्ट रूप से not thread-safe के रूप में निर्दिष्ट किया गया है [SWS_DM_01546]; इसलिए Diagnostic Server द्वारा उसी सत्र के लिए अनुक्रमिक कॉलों की गारंटी दी जानी चाहिए। प्रश्न Q-e60d55fe09b9a2c5 (खुला)
परस्पर क्रिया और प्रवाह
राइट-हैंडलर को DataTransferWriteSession के भीतर टेम्पलेट कंस्ट्रक्टरों के माध्यम से पंजीकृत किया जाता है [SWS_DM_01317]। जैसे ही ट्रांसफ़र RequestTransferExit (0x37) के साथ पूरा हो जाता है, सर्वर उसी हैंडलर की Exit विधि को कॉल करता है [SWS_DM_01318]। यह तत्व DID-संबंधित राइट विधियों से भिन्न है, जैसा कि वे [SWS_DM_00598] या [SWS_DM_00637] में परिभाषित हैं।
यह पाठ स्वचालित रूप से तैयार किया गया था। तकनीकी विवरण विनिर्देश संदर्भों द्वारा समर्थित हैं।
The first or subsequent file content chunk received from the UDS client to be written into the file. 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.
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल