DEENESPTFRRUARHIKOZHNL

मॉड्यूल ara::com — Communication Management

मॉड्यूल गाइडएआई जनित

सेवा-उन्मुख संचार के लिए टाइप किए गए इंटरफ़ेस प्रदान करता है और परिवहन प्रोटोकॉल को सारगर्भित (abstract) करता है।
एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 45902037e92f उद्गम खुले प्रश्न (2)
कारणात्मक एंकर: R25-11 R25-11 से मान्य इस विनिर्देश संस्करण के लिए नए सिरे से संश्लेषित।
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

सेवा-उन्मुख संचार के लिए टाइप किए गए इंटरफ़ेस प्रदान करता है और परिवहन प्रोटोकॉल को सारगर्भित (abstract) करता है।

Functional Cluster Communication Management (ara::com) मानकीकृत प्रॉक्सी और कंकाल (skeleton) इंटरफ़ेस (SWS_CommunicationManagement पृ. 55, ARAComAPI पृ. 1) के माध्यम से Adaptive अनुप्रयोगों के बीच सेवा-उन्मुख इंटरैक्शन को सक्षम बनाता है। यह OfferService() और FindService() ([SWS_CM_00101], [SWS_CM_00122]) का उपयोग करके गतिशील सेवा खोज को नियंत्रित करता है और एकीकृत E2E- और SecOC सुरक्षा ([SWS_CM_00141], [SWS_CM_90420]) के साथ सिंक्रोनस और एसिंक्रोनस विधियों, घटनाओं और फ़ील्ड्स को उपलब्ध कराता है। किसी सेवा के अस्थायी नुकसान के मामले में, मिडलवेयर कनेक्शन रुकावटों को संभालता है और पुनः उपलब्धता के बाद मौजूदा प्रॉक्सी ऑब्जेक्ट्स को स्वचालित रूप से अपडेट करता है (ARAComAPI पृ. 32)।

Functional Cluster Communication Management (ara::com) AUTOSAR Adaptive Platform में सेवा-उन्मुख आर्किटेक्चर (SOA) की रीढ़ बनता है और प्रॉक्सी-स्केलेटन पैटर्न के माध्यम से एप्लिकेशन लॉजिक को ठोस ट्रांसमिशन प्रोटोकॉल से अलग करता है (SWS_CommunicationManagement पृ. 55, ARAComAPI पृ. 1)। उपभोक्ता पक्ष पर औपचारिक इंटरफ़ेस विवरणों से उत्पन्न प्रॉक्सी वर्ग और प्रदाता पक्ष पर स्केलेटन वर्ग प्रकार-सुरक्षित (type-safe) C++ APIs के माध्यम से विधियाँ, इवेंट्स और फ़ील्ड्स प्रदान करते हैं ([SWS_CM_00130], [SWS_CM_00131])।

सेवाओं का प्रावधान और गतिशील खोज Service Discovery (SWS_CommunicationManagement पृ. 67) के माध्यम से नियंत्रित की जाती है। एक प्रदाता OfferService() ([SWS_CM_00101]) के माध्यम से अपनी सेवा प्रदान करता है, जबकि उपभोक्ता FindService() के माध्यम से सिंक्रोनस रूप से या StartFindService() ([SWS_CM_00122], [SWS_CM_00123]) का उपयोग करके एसिंक्रोनस रूप से उपयुक्त इंस्टेंसेस निर्धारित करते हैं। इस प्रक्रिया में, इंस्टेंसेस को मॉडल-आधारित रूप से ara::core::InstanceSpecifier के माध्यम से संबोधित किया जा सकता है और रनटाइम पर ठोस ara::com::InstanceIdentifier में हल किया जा सकता है ([SWS_CM_00118], [SWS_CM_00622])।

सर्विस-डिस्कवरी और Proxy-प्रारंभीकरणConsumer AppProxyara::com MiddlewareSkeletonProvider AppOfferService()Registriere Service-Instanz (SOME/IP SD / IPC)StartFindService(Handler, InstanceSpecifier)Handler-Callback(ServiceHandleContainer)Proxy::Create(handle)Proxy-इंस्टेंस (संचार के लिए तैयार)

अनुक्रम आरेख: Service Offering, एसिंक्रोनस खोज और प्रॉक्सी निर्माण की प्रक्रिया। स्रोत: [SWS_CM_00101], [SWS_CM_00123], [SWS_CM_10438], AUTOSAR_EXP_SensorInterfaces पृ. 16

डेटा ट्रांसमिशन के लिए, ara::com ara::core::Future ([SWS_CM_00191], [SWS_CM_00196]) के माध्यम से रिक्वेस्ट-रिस्पॉन्स विधियों के साथ-साथ इवेंट्स और फ़ील्ड्स (AUTOSAR_EXP_ARAComAPI पृ. 68) के लिए पब्लिश-सब्सक्राइब पैटर्न का समर्थन करता है। ग्राहक Subscribe() ([SWS_CM_00141]) के माध्यम से पंजीकरण करते हैं और GetNewSamples() ([SWS_CM_00701]) के माध्यम से आने वाले डेटा को पढ़ते हैं। प्रदर्शन बढ़ाने के लिए, प्रदाता Allocate() के माध्यम से डेटा प्रदान करता है और Send() ([SWS_CM_90437], [SWS_CM_90438]) के माध्यम से ज़ीरो-कॉपी द्वारा स्वामित्व स्थानांतरित करता है।

ट्रांसमिशन को सुरक्षित करने के लिए, प्लेटफ़ॉर्म एंड-टू-एंड सुरक्षा (E2E), Freshness Value Management (FVM) के माध्यम से क्रिप्टोग्राफ़िक प्रमाणीकरण (SecOC) और क्लासिक नेटवर्क के लिए सिग्नल-टू-सर्विस ट्रांसलेशन को एकीकृत करता है ([SWS_CM_90420], [SWS_CM_11288], [SWS_CM_10174], SWS_CommunicationManagement पृ. 222)। त्रुटि स्थितियों को ComErrorDomain और ComE2EErrorDomain जैसे प्रकार-सुरक्षित त्रुटि डोमेन के माध्यम से मानकीकृत रूप से संकेतित किया जाता है ([SWS_CM_10432], [SWS_CM_10474])। यदि किसी सेवा का कनेक्शन टूट जाता है, तो प्रॉक्सी की स्थिति kSubscriptionPending में बदल जाती है; पुनः उपलब्धता के बाद, मिडलवेयर आंतरिक एड्रेसिंग को पारदर्शी रूप से अपडेट करता है, ताकि प्रॉक्सी को फिर से इंस्टेंटिएट किए बिना संचार जारी रहे (ARAComAPI पृ. 32)।

सेवा-उन्मुख संचार की भूमिका और सिस्टम आर्किटेक्चर

Functional Cluster Communication Management (ara::com) AUTOSAR Adaptive Platform की सूचना प्रौद्योगिकी रीढ़ बनता है और पृथक एप्लिकेशन प्रक्रियाओं के बीच और नियंत्रण इकाई (ECU) सीमाओं के पार सेवा-उन्मुख संचार (Service-Oriented Architecture, SOA) का एहसास करता है (SWS_CommunicationManagement पृ. 55)। मुख्य सिद्धांत सख्त प्रॉक्सी-स्केलेटन डिज़ाइन पैटर्न (ARAComAPI पृ. 1) है: औपचारिक सॉफ़्टवेयर इंटरफ़ेस विवरणों (Service Interfaces) से, एक मॉडल-आधारित कोड जनरेटर सेवा उपभोक्ताओं के लिए टाइप किए गए प्रॉक्सी वर्ग और सेवा प्रदाताओं के लिए स्केलेटन वर्ग उत्पन्न करता है ([SWS_CM_00130], [SWS_CM_00131])। एप्लिकेशन लॉजिक विशेष रूप से इन अमूर्तताओं के साथ इंटरैक्ट करता है, जबकि SOME/IP, IPC या DDS जैसे प्रोटोकॉल-विशिष्ट बाइंडिंग और उनके क्रमांकन (serialization) केवल एकीकरण और परिनियोजन समय पर जुड़े होते हैं (AUTOSAR_AP_EXP_ARAComAPI पृ. 124)।

प्लेटफ़ॉर्म आवश्यकताओं को पूरा करने के लिए, ara::com अन्य कार्यात्मक क्लस्टरों (SWS_CommunicationManagement पृ. 34) के साथ मिलकर काम करता है। रनटाइम पर, Execution Management प्रक्रिया जीवनचक्र की निगरानी करता है, जबकि Identity and Access Management (IAM) नीति-आधारित पहुँच जाँच (Policy Decision Point) के माध्यम से विधि, इवेंट और फ़ील्ड स्तर पर अनधिकृत इंटरैक्शन को रोकता है (SWS_CommunicationManagement पृ. 215)। इसके अलावा, सुरक्षा घटनाओं की सूचना सीधे Intrusion Detection System Manager (IdSM) के EventReporter को दी जाती है (SWS_CommunicationManagement पृ. 34)।

ComArchitecture ConsumerApp Adaptive Application (Konsument) Proxy ara::com Proxy (Fassade) ConsumerApp->Proxy Methodenaufruf / Subscribe BindingClient Communication Binding (Client-Stack) Proxy->BindingClient Serialisierung Network Netzwerk / IPC Transport (SOME/IP, DDS, SHM) BindingClient->Network Datagramm / IPC BindingServer Communication Binding (Server-Stack) Network->BindingServer Empfang Skeleton ara::com Skeleton (Basisklasse) BindingServer->Skeleton Deserialisierung ProviderApp Adaptive Application (Provider) Skeleton->ProviderApp Method Dispatch / Events

संदर्भ आरेख: ara::com का एम्बेडिंग और बाइंडिंग्स के माध्यम से एप्लिकेशन परतों का डीकपलिंग। स्रोत: SWS_CommunicationManagement पृ. 55, ARAComAPI पृ. 1

प्रॉक्सी और स्केलेटन के माध्यम से सेवा खोज और इंस्टेंटिएशन

गतिशील सेवा खोज (Service Discovery) स्थानीय और वितरित संचार संबंधों (SWS_CommunicationManagement पृ. 67) की स्थापना को नियंत्रित करती है। एक सेवा प्रदाता स्केलेटन पर OfferService() को कॉल करके अपनी उपलब्धता का संकेत देता है ([SWS_CM_00101])। यदि सेवा समाप्त हो जाती है या प्रावधान वापस ले लिया जाता है, तो StopOfferService() ऑफ़र वापस ले लेता है ([SWS_CM_00111])। उपभोक्ता FindService() के माध्यम से सिंक्रोनस रूप से या StartFindService() ([SWS_CM_00122], [SWS_CM_00123], ARAComAPI पृ. 103) के माध्यम से एसिंक्रोनस रूप से उपयुक्त सेवा इंस्टेंसेस निर्धारित करते हैं। बाद वाला एक FindServiceHandler पंजीकृत करता है, जिसे इंस्टेंस परिदृश्य में प्रत्येक परिवर्तन पर सूचित किया जाता है, जब तक कि खोज स्पष्ट रूप से StopFindService() ([SWS_CM_00125], [SWS_CM_00383]) का उपयोग करके समाप्त नहीं हो जाती।

स्रोत कोड को निश्चित नेटवर्क और इंस्टेंस आईडी से अलग करने के लिए, इंटरफ़ेस ara::core::InstanceSpecifier ([SWS_CM_00622], [SWS_CM_00623], AUTOSAR_AP_EXP_ARAComAPI पृ. 124) का उपयोग करके अमूर्त मॉडल पथों के माध्यम से एड्रेसिंग की अनुमति देता है। मिडलवेयर संग्रहीत Service Instance Manifest के माध्यम से इन विनिर्दिष्टकर्ताओं को ठोस ara::com::InstanceIdentifier में हल करता है ([SWS_CM_00118], [SWS_CM_11520], ARAComAPI पृ. 1)। खोजी गई सेवा को ServiceHandleContainer ([SWS_CM_10383], AUTOSAR_EXP_SensorInterfaces पृ. 16) में एक टाइप किए गए डिस्क्रिप्टर (HandleType) के रूप में प्रदान किया जाता है। स्थिर फ़ैक्टरी विधि Proxy::Create() या कंस्ट्रक्टर के माध्यम से, उपभोक्ता आगे के कार्यात्मक उपयोग के लिए एक बाध्य प्रॉक्सी इंस्टेंस बनाता है ([SWS_CM_10438], [SWS_CM_00131])।

सर्विस-डिस्कवरी और Proxy-प्रारंभीकरणConsumer AppProxyara::com MiddlewareSkeletonProvider AppOfferService()Registriere Service-Instanz (SOME/IP SD / IPC)StartFindService(Handler, InstanceSpecifier)Handler-Callback(ServiceHandleContainer)Proxy::Create(handle)Proxy-इंस्टेंस (संचार के लिए तैयार)

अनुक्रम आरेख: Service Offering, एसिंक्रोनस खोज और प्रॉक्सी निर्माण की प्रक्रिया। स्रोत: [SWS_CM_00101], [SWS_CM_00123], [SWS_CM_10438], AUTOSAR_EXP_SensorInterfaces पृ. 16

इंटरैक्शन पैटर्न: विधि कॉल और एसिंक्रोनस प्रसंस्करण

विधि कॉल सिंक्रोनस और एसिंक्रोनस रिक्वेस्ट-रिस्पॉन्स प्रतिमान का प्रतिनिधित्व करते हैं। क्लाइंट प्रॉक्सी पर फ़ंक्शन कॉल ऑपरेटर operator() के माध्यम से विधियों को ट्रिगर करता है ([SWS_CM_00196])। रिटर्न प्रकार मानक के रूप में ara::core::Future कार्य करता है, जो परिणाम या त्रुटि स्थिति को समाहित करता है ([SWS_CM_00191], ARAComAPI पृ. 1)। उपभोक्ता लचीले ढंग से सिंक्रोनाइज़ेशन पर निर्णय लेता है: get() के माध्यम से ब्लॉकिंग पुनर्प्राप्ति द्वारा, wait_for() या wait_until() के माध्यम से समय-निगरानी वाले प्रतीक्षा द्वारा या then() (ARAComAPI पृ. 1) का उपयोग करके घटना-आधारित कॉलबैक रूटीन पंजीकृत करके। बिना किसी प्रतिक्रिया के शुद्ध एकदिशात्मक सूचनाओं के लिए, void रिटर्न के साथ फ़ायर-एंड-फ़ॉरगेट विधियाँ मौजूद हैं ([SWS_CM_90434], [SWS_CM_90435])।

प्रदाता पक्ष पर, MethodCallProcessingMode आने वाली कॉलों के लिए निष्पादन रणनीति को परिभाषित करता है ([SWS_CM_00301], [SWS_CM_00130])। इवेंट-संचालित मोड (kEvent या kEventSingleThread) में, विधि कॉल तुरंत मिडलवेयर द्वारा प्रबंधित एक वर्कर थ्रेड (AUTOSAR_SWS_CommunicationManagement पृ. 60) के भीतर होती है। पोलिंग मोड (kPoll) में, एप्लिकेशन नियमित रूप से ProcessNextMethodCall() ([SWS_CM_00199], EXP_SWArchitecture पृ. 68) को कॉल करके प्रसंस्करण समय को नियतात्मक (deterministisch) रूप से स्वयं नियंत्रित करता है। विधि कार्यान्वयन आंतरिक रूप से ara::core::Promise के माध्यम से परिणाम उत्पन्न करता है और संबद्ध Future वापस लौटाता है (ARAComAPI पृ. 1)।

मेथड कॉल और डिस्पैचिंग मोडConsumer AppProxyara::com TransportSkeletonProvider Appoperator()(args)ara::core::Future वापसीRequest PDU sendenRequest empfangenaltMethodCallProcessingMode::kEventAsynchroner Methodenaufruf (Worker-Thread)MethodCallProcessingMode::kPollProcessNextMethodCall()एप्लिकेशन थ्रेड में सिंक्रोनस मेथड कॉलपरिणाम Promise को सौंपा गयाResponse PDU sendenResponse empfangenFuture::get() परिणाम देता है

अनुक्रम आरेख: kPoll और kEvent डिस्पैचिंग के तहत प्रॉक्सी और स्केलेटन के बीच विधि कॉल। स्रोत: [SWS_CM_00196], [SWS_CM_00199], AUTOSAR_SWS_CommunicationManagement पृ. 60

पब्लिश-सब्सक्राइब पैटर्न में इवेंट और फ़ील्ड संचार

निरंतर डेटा धाराओं और स्थिति परिवर्तनों का वितरण पब्लिश-सब्सक्राइब पैटर्न (SWS_CommunicationManagement पृ. 67) में इवेंट्स और फ़ील्ड्स के माध्यम से होता है। एक सक्रिय सब्सक्राइबर अधिकतम बनाए रखे जाने वाले सैंपल्स की संख्या (maxSampleCount) निर्दिष्ट करते हुए Subscribe() के माध्यम से अपनी प्राप्त करने की रुचि दर्ज करता है ([SWS_CM_00141], [SWS_CM_12002])। सदस्यता की स्थिति को GetSubscriptionState() के माध्यम से क्वेरी किया जाता है या SetSubscriptionStateChangeHandler() ([SWS_CM_00310], [SWS_CM_00316], [SWS_CM_01110]) के माध्यम से कॉलबैक द्वारा एसिंक्रोनस रूप से मॉनिटर किया जाता है। सदस्यता की समाप्ति Unsubscribe() ([SWS_CM_00151]) के माध्यम से होती है।

डेटा रिसेप्शन SetReceiveHandler() के माध्यम से इवेंट-संचालित हो सकता है या रिसेप्शन बफर के आवधिक पठन द्वारा हो सकता है ([SWS_CM_00181], [SWS_CM_11356])। GetNewSamples() के साथ, उपभोक्ता एक फ़ंक्शन ऑब्जेक्ट (लैम्ब्डा) पास करता है, जिसे प्रत्येक आए हुए सैंपल के लिए एक टाइप किए गए SamplePtr के साथ कॉल किया जाता है ([SWS_CM_00701], [SWS_CM_11610])। कॉपी करने के प्रयास (Zero-Copy) से बचने के लिए, स्केलेटन Allocate() के माध्यम से मेमोरी प्रदान करता है और पूर्ण स्वामित्व हस्तांतरण के तहत टाइप किए गए पॉइंटर SampleAllocateePtr को Send() के माध्यम से ट्रांसमिशन परत पर भेजता है ([SWS_CM_90438], [SWS_CM_90437], [SWS_CM_00308], AUTOSAR_EXP_ARAComAPI पृ. 63, ARAComAPI पृ. 1)।

एक Field इवेंट अवधारणा को Getter और Setter सिमेंटिक्स (AUTOSAR_EXP_ARAComAPI पृ. 68) के साथ विस्तारित करता है। उपभोक्ता Field को Get() के माध्यम से पढ़ते हैं या Set() के माध्यम से इसे लिखते हैं ([SWS_CM_00112], [SWS_CM_00113])। सर्वर साइड पर, इन अनुरोधों को क्रमशः RegisterGetHandler() या RegisterSetHandler() द्वारा प्रोसेस किया जाता है ([SWS_CM_00114], [SWS_CM_00116])। यदि सर्वर Update() के माध्यम से स्थिति को अपडेट करता है, तो Field स्वचालित रूप से एक Notifier के रूप में कार्य करता है और सभी पंजीकृत सब्सक्राइबर्स को परिवर्तन वितरित करता है ([SWS_CM_00119], ARAComAPI पृ. 1)।

ज़ीरो-कॉपी आवंटन के साथ पब्लिश-सब्सक्राइब प्रक्रियाProvider AppSkeletonMiddleware / BufferProxyConsumer AppSubscribe(maxSampleCount)Abonnement registrierenSetReceiveHandler(callback)Allocate()SampleAllocateePtrSend(std::move(ptr))बफ़र में सैंपल डालें / ट्रांसमिट करेंNotify receiveHandlerCallback aufrufenGetNewSamples(lambda)SamplePtr के साथ लैम्ब्डा निष्पादित किया गया

अनुक्रम आरेख: Zero-Copy आवंटन, इवेंट पब्लिशिंग, सब्सक्रिप्शन और GetNewSamples उपभोग। स्रोत: [SWS_CM_00141], [SWS_CM_00701], [SWS_CM_90437], AUTOSAR_EXP_ARAComAPI पृ. 63

सुरक्षा, सेवा अनुवाद और प्लेटफ़ॉर्म एकीकरण

सुरक्षा-प्रासंगिक और नियतात्मक डेटा प्रवाहों के लिए, ara::com AUTOSAR मानकों के अनुसार एंड-टू-एंड सुरक्षा (E2E) और प्रमाणीकरण को एकीकृत करता है (AUTOSAR_AP_TR_SystemTests पृ. 132)। GetProfileCheckStatus() और GetE2EStateMachineState() के माध्यम से, उपभोक्ता प्राप्त डेटा की अखंडता और सत्यापन स्थिति की जांच कर सकते हैं ([SWS_CM_90420], [SWS_CM_90421], [SWS_CM_11554])। सर्वर साइड पर, विधि स्तर पर E2E और ट्रांसपोर्ट दोषों पर मानकीकृत तरीके से प्रतिक्रिया देने के लिए एप्लिकेशन SetTransportFaultConditionHandler() के माध्यम से त्रुटि हैंडलिंग रूटीन पंजीकृत करता है ([SWS_CM_00093], [SWS_CM_00094], [SWS_CM_00100], EXP_SWArchitecture पृ. 68)।

बाहरी संदेशों की क्रिप्टोग्राफ़िक अखंडता और प्रामाणिकता Secure Onboard Communication (SecOC) द्वारा सुनिश्चित की जाती है (SWS_CommunicationManagement पृ. 222)। इसके लिए, मिडलवेयर एक विनिमेय Freshness Value Management लाइब्रेरी (FVM) को शामिल करता है, जो GetRxFreshness(), GetTxFreshness() और Initialize() के माध्यम से Freshness मानों का प्रबंधन करती है ([SWS_CM_11288], [SWS_CM_11289], [SWS_CM_11290], SWS_CommunicationManagement पृ. 226)। डायग्नोस्टिक और सुरक्षा फ़ंक्शन SetVerificationStatus() जैसे विशिष्ट इंटरफेस के माध्यम से सत्यापन की निगरानी या नियंत्रण करते हैं ([SWS_CM_19999], AUTOSAR_AP_EXP_SWArchitecture पृ. 70)।

AUTOSAR Classic Platform के साथ अंतर-संचालनीयता के लिए, ara::com सिग्नल-आधारित संचार (सिग्नल-टू-सर्विस ट्रांसलेशन) का समर्थन करता है (SWS_CommunicationManagement पृ. 146, TPS_ManifestSpecification पृ. 476)। [SWS_CM_10174] और [SWS_CM_80001] के अनुसार, पारंपरिक सिग्नल-IPDU और SOME/IP संदेशों को एक ही सॉकेट पर ले जाया जा सकता है। यदि कोई सिग्नल-आधारित SecOC कॉन्फ़िगरेशन मौजूद है, तो मिडलवेयर सीधे मैनिफ़ेस्ट के PDU ट्रिगरिंग से सुरक्षा पैरामीटर पढ़ता है ([SWS_CM_11346], SWS_CommunicationManagement पृ. 228)।

SecurityPipeline IncomingPdu Eingehende Nachricht (SOME/IP / Signal-PDU) SecOcCheck SecOC-सत्यापन (Authenticator / MAC) IncomingPdu->SecOcCheck SecOC konfiguriert E2eCheck E2E-सत्यापन (CRC, Counter, Data ID) IncomingPdu->E2eCheck Kein SecOC FreshnessCheck FVM: Freshness Value Verifikation SecOcCheck->FreshnessCheck Authenticator मान्य FaultHandler TransportFaultConditionHandler / ErrorDomain SecOcCheck->FaultHandler MAC अमान्य है FreshnessCheck->E2eCheck Freshness मान्य FreshnessCheck->FaultHandler Freshness अमान्य DispatchApp एप्लिकेशन / Skeleton को सौंपना E2eCheck->DispatchApp E2E OK (ProfileCheckStatus::kOk) E2eCheck->FaultHandler E2E-Fehler (kRepeated, kWrongSequence)

गतिविधि आरेख: आने वाले संदेशों की E2E और SecOC सुरक्षा पाइपलाइन। स्रोत: [SWS_CM_90420], [SWS_CM_11288], SWS_CommunicationManagement पृ. 222

त्रुटि की स्थिति में व्यवहार

ara::com का त्रुटि प्रबंधन AUTOSAR कोर फ़्रेमवर्क के प्रकार-सुरक्षित (type-safe) त्रुटि डोमेन और रिटर्न कोड पर आधारित है ([SWS_CM_11334], [SWS_CM_11335])। सामान्य संचार परत की त्रुटियों को ComErrorDomain में समूहीकृत किया जाता है और इन्यूमरेटर ComErrc के माध्यम से कोडित किया जाता है ([SWS_CM_10432])। E2E सत्यापन त्रुटियों के मामले में, ComE2EErrorDomain गणना मान ComE2EErrc के माध्यम से विशिष्ट सत्यापन त्रुटियों, जैसे चेकसम विचलन या अमान्य काउंटरों का संकेत देता है ([SWS_CM_10474], [SWS_CM_12510], [SWS_CM_12511])। SecOC Freshness त्रुटियों के लिए, ComSecOcFvmErrc के साथ ComSecOcFvmErrorDomain समरूप रूप से मौजूद है ([SWS_CM_12521], [SWS_CM_12522])।

यदि रनटाइम के दौरान कनेक्शन टूट जाता है, तो प्रॉक्सी की सब्सक्रिप्शन स्थिति kSubscribed से kSubscriptionPending में बदल जाती है ([SWS_CM_00310], [SWS_CM_00316], ARAComAPI पृ. 32)। इस चरण के दौरान मेथड कॉल एक त्रुटि के साथ विफल हो जाते हैं। यदि सर्विस प्रोवाइडर बाद में Service Discovery के माध्यम से वापस आता है, तो मिडलवेयर प्रॉक्सी के आंतरिक एड्रेसिंग को पारदर्शी रूप से अपडेट करता है, बिना उपभोक्ता द्वारा प्रॉक्सी ऑब्जेक्ट को पुनः इंस्टेंटिएट किए; सफल पुन: तुल्यकालन के बाद, स्थिति स्वचालित रूप से kSubscribed पर वापस आ जाती है (ARAComAPI पृ. 32)। सिस्टम विनिर्देश के अनुसार, समय सीमा और डेडलाइन मॉनिटरिंग (Deadline Monitoring) के लिए एप्लिकेशन सॉफ़्टवेयर स्वयं ज़िम्मेदार है (TPS_ManifestSpecification पृ. 504)।

ProxyRecovery Initial Proxy erzeugt (kSubscribed) ServiceDown सेवा उपलब्ध नहीं है (kSubscriptionPending) Initial->ServiceDown Service geht offline / SD-Timeout Reconnected Dienst wiederhergestellt (kSubscribed) ServiceDown->Reconnected Service sendet OfferService() / Adress-Update Reconnected->ServiceDown Erneuter Verbindungsausfall

स्थिति आरेख: प्रोवाइडर की उपलब्धता परिवर्तनों के दौरान प्रॉक्सी इंस्टेंस का जीवनचक्र और कनेक्शन स्थितियां। स्रोत: [SWS_CM_00310], [SWS_CM_00316], ARAComAPI पृ. 32

आगे विस्तृत साक्ष्य

आवश्यक आवश्यकताएं और सिस्टम इंटरफेस AUTOSAR विनिर्देशों में निम्नानुसार संरचित हैं:

यह मार्गदर्शिका AUTOSAR Adaptive Release R25-11 के आधार पर एक AI क्यूरेशन सहायक द्वारा तैयार की गई थी।

<SI-Namespace>::proxy

<SI>Proxy क्लास

Service Interface Proxy

<SI-Namespace>::proxy::fields

<Field> क्लास

Service proxy Field class, one for each Field defined in the ServiceInterface in the role field.

<SI-Namespace>::proxy::methods

<FnFMethod> क्लास

Service proxy fire-and-forget method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget==TRUE) defined in the S

<Method> क्लास

Service proxy method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget ==FALSE) defined in the ServiceInterfac

<SI-Namespace>::proxy::triggers

<Trigger> क्लास

Service proxy Trigger class, one for each Trigger defined in the ServiceInterface in the role trigger.

<SI-Namespace>::skeleton

<SI>Skeleton क्लास

Service skeleton class

<SI-Namespace>::skeleton::fields

Service skeleton Field class, one for each Field defined in the ServiceInterface in the role field.

<SI-Namespace>::skeleton::triggers

Service skeleton Trigger class, one for each Trigger defined in the ServiceInterface in the role trigger.

apext::com::secoc

ComSecOcFvmErrorDomain क्लास

Defines a class representing the SecOc Freshness Value Manager error domain

से इनहेरिट करता है ara::core::ErrorDomain

ComSecOcFvmException क्लास

Defines a class for exceptions to be thrown by the SecOc Freshness Value Manager

से इनहेरिट करता है ara::core::Exception

FVContainer क्लास

A container to hold the length of freshness value in bits and the freshness value itself

FVM क्लास

A freshness value management interface to be implemented by the OEM/stack vendor

GetComSecOcFvmErrorDomain फ़ंक्शन

Returns a reference to the apext::com::secoc::ComSecOcFvmErrorDomain object

constexpr const ara::core::ErrorDomain & GetComSecOcFvmErrorDomain () noexcept;
MakeErrorCode फ़ंक्शन

Creates an instance of ara::core::ErrorCode

constexpr ara::core::ErrorCode MakeErrorCode (apext::com::secoc::Com SecOcFvmErrc errorCode, ara::core::ErrorDomain::SupportDataType data) noexcept;
ComSecOcFvmErrc एन्यूमरेशन

Defines the error codes for the apext::com::secoc::ComSecOcFvmErrorDomain

enum class ComSecOcFvmErrc : ara::core::ErrorDomain::CodeType {...};

ara::com

ComErrorDomain क्लास

Defines a class representing the Communication error domain.

से इनहेरिट करता है ara::core::ErrorDomain

ComException क्लास

Defines a class for exceptions to be thrown by the API.

से इनहेरिट करता है ara::core::Exception

FindServiceHandle क्लास

The exact definition of ara::com::FindServiceHandle is Communication Management implementation specific

InstanceIdentifier क्लास

Unique identifier of a specific AdaptivePlatformServiceInstance, to distinguish different instances of exactly the same service

SamplePtr क्लास

Emulates a std::unique_ptr to an event sample. The ara::com::SamplePtr behaves as a std::unique_ptr as long as the event/ field is subscrib ≙ std::unique_ptr

ServiceIdentifierType क्लास

Specifies a Service Identifier The exact type may be overridden by the Communication Management software provider

ServiceVersionType क्लास

Specifies a Service Version

GetComErrorDomain फ़ंक्शन

Returns a reference to the ara::com::ComErrorDomain object

constexpr const ara::core::ErrorDomain & GetComErrorDomain () noexcept;
MakeErrorCode (ara::com) फ़ंक्शन

Creates an instance of ara::core::ErrorCode

ComErrc एन्यूमरेशन

Defines the error codes for the ara::com::ComErrorDomain

enum class ComErrc : ara::core::ErrorDomain::CodeType {...};
MethodCallProcessingMode एन्यूमरेशन

Processing modes for the service implementation.

enum class MethodCallProcessingMode : std::uint8_t {...};
ServiceState एन्यूमरेशन

The state of the service from GetServiceState()

enum class ServiceState : std::uint8_t {...};
SubscriptionState एन्यूमरेशन

The subscription state of an event.

enum class SubscriptionState : std::uint8_t {...};
EventReceiveHandler टाइप उपनाम

Callback function invoked if new event data arrives for an event. The event receiver must provide the function implementation which is not required to be re-entrant. Usage of std::function is recommended but not mandatory. ≙ std::function

using EventReceiveHandler = std::function<void()>;
FieldReceiveHandler टाइप उपनाम

Callback function invoked if a new notification arrives for a field. The field receiver must provide the function implementation which is not required to be re-entrant. Usage of std::function is recommended but not mandatory. ≙ std::function

using FieldReceiveHandler = std::function<void()>;
FindServiceHandler टाइप उपनाम

Callback function invoked if service availability changes. It takes as input parameter a handle container containing handles for all matching service instances and a ara::com:: FindServiceHandle which can be used to invoke StopFindService() from within the ara::com::FindServiceHandler.

using FindServiceHandler = std::function<void(ServiceHandle Container<T>, FindServiceHandle)>;
InstanceIdentifierContainer टाइप उपनाम

Holds a list of ara::com::InstanceIdentifiers. The assigned data type is allowed to be changed by the Communication Management software provider, but must adhere to [container.requirements.general] and [sequence.reqmts] requirements as per [30] A ara::core::Vector ([SWS_CORE_01301]) for example fulfills these requirements.

using InstanceIdentifierContainer = ara::core::Vector<Instance Identifier>;
SampleAllocateePtr टाइप उपनाम

Pointer to an allocated (by Communication Management) data sample. The implementation is allowed to be changed by the Communication Management software provider.

using SampleAllocateePtr = std::unique_ptr<T>;
ServiceHandleContainer टाइप उपनाम

Holds a list of service handles and is used as a return value of any of the FindService() methods) • [SWS_CM_00122] • [SWS_CM_00622] . The assigned data type is allowed to be changed by the Communication Management software provider, but must adhere to [container.requirements.general] and [sequence.reqmts] requirements as per [30]. A ara::core::Vector ([SWS_CORE_ 01301]) for example fulfills these requirements.

using ServiceHandleContainer = ara::core::Vector<T>;
ServiceStateHandler टाइप उपनाम

Functor used as input arguments for any of the SetServiceStateChangeHandler() methods: • [SWS_CM_01074] • [SWS_CM_01076]

using ServiceStateHandler = std::function<void(ServiceState)>;
SubscriptionStateChangeHandler टाइप उपनाम

Callback function invoked if ara::com::SubscriptionState of an event has changed.

using SubscriptionStateChangeHandler = std::function<void(Subscription State)>;
TriggerReceiveHandler टाइप उपनाम

A function wrapper for the handler function that gets called in case a new trigger arrives for an event. The trigger receiver must provide the function implementation which is not required to be re-entrant. Usage of std::function is recommended but not mandatory. ≙ std::function

using TriggerReceiveHandler = std::function<void()>;

ara::com::e2e

ComE2EErrorDomain क्लास

Defines a class representing the E2E error domain

से इनहेरिट करता है ara::core::ErrorDomain

ComE2EException क्लास

Defines a class for exceptions to be thrown by the E2E APIs

से इनहेरिट करता है ara::core::Exception

GetComE2EErrorDomain फ़ंक्शन

Returns a reference to the ara::com::e2e::ComE2EErrorDomain object

constexpr const ara::core::ErrorDomain & GetComE2EErrorDomain () noexcept;
MakeErrorCode (ara::com::e2e) फ़ंक्शन

Creates an instance of ara::core::ErrorCode

constexpr ara::core::ErrorCode MakeErrorCode (ara::com::e2e::ComE2 EErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;
ComE2EErrc एन्यूमरेशन

Defines the error codes for the ara::com::e2e::ComE2EErrc

enum class ComE2EErrc : ara::core::ErrorDomain::CodeType {...};
ProfileCheckStatus एन्यूमरेशन

The result of the check of a single ara::com::SamplePtr

enum class ProfileCheckStatus : std::uint8_t {...};
SMState एन्यूमरेशन

The state of the E2E supervision after the most recent check of a received sample of the event. If ara::com::e2e::SMState == kValid, and the ara::com::SamplePtr:: GetProfileCheckStatus did not result in an Error then, the last checked sample can be used.

enum class SMState : std::uint8_t {...};
TransportFaultCondition एन्यूमरेशन

Defines the TransportFaultCondition which represent a single transport-related fault event

enum class TransportFaultCondition : std::uint8_t {...};
TransportFaultConditionHandler टाइप उपनाम

Handler type to be called when one or more (determined by the value of the std::size_t) fault conditions are detected ≙ std::size_t

using TransportFaultConditionHandler = std::function<void(Transport FaultCondition, std::size_t)>;

ara::com::runtime

ResolveInstanceIDs फ़ंक्शन

Translates an ara::core::InstanceSpecifier to a ara::com:: InstanceIdentifierContainer. The length/size of the ara::com:: InstanceIdentifierContainer is relative to the number of matches.

ara::core::Result< ara::com::InstanceIdentifierContainer > Resolve InstanceIDs (ara::core::InstanceSpecifier metaModelIdentifier) noexcept;

सेवा इंटरफ़ेस

VerificationStatus सेवा इंटरफ़ेस

Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).

VerificationStatusConfigurationByDataId सेवा इंटरफ़ेस

Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).

VerificationStatusConfigurationByFreshnessId सेवा इंटरफ़ेस

Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).

Verwandte Komponenten in anderen Universen

Spezifikation: AUTOSAR_AP_SWS_CommunicationManagement.pdf (R25-11) · 250 API-Records

function: 179 class: 20 type alias: 20 variable: 13 enumeration: 10 struct: 4 service method: 2 header file: 1 service event: 1

नेमस्पेस

सेवा इंटरफ़ेस (ara::com द्वारा मॉडलित)

मॉड्यूल का UML क्लास आरेख

Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.

G cluster_1 <SI-Namespace>::proxy cluster_2 <SI-Namespace>::proxy::<SI>Proxy cluster_3 <SI-Namespace>::proxy::fields cluster_4 <SI-Namespace>::proxy::methods cluster_5 <SI-Namespace>::proxy::methods::<Method> cluster_6 <SI-Namespace>::proxy::triggers cluster_7 <SI-Namespace>::skeleton cluster_8 <SI-Namespace>::skeleton::<SI>Skeleton cluster_9 <SI-Namespace>::skeleton::fields cluster_10 <SI-Namespace>::skeleton::triggers cluster_11 apext::com::secoc cluster_12 ara::com cluster_13 ara::com::e2e n_SI_Namespace___proxy___SI_Proxy329 <SI>Proxy n_SI_Namespace___proxy___SI_Proxy__HandleType349 HandleType n_SI_Namespace___proxy__fields___Field_138 <Field> n_SI_Namespace___proxy__methods___FnFMethod_122 <FnFMethod> n_SI_Namespace___proxy__methods___Method_320 <Method> n_SI_Namespace___proxy__methods___Method___Output157 «struct» Output n_SI_Namespace___proxy__triggers___Trigger_725 <Trigger> n_SI_Namespace___skeleton___SI_Skeleton453 <SI>Skeleton n_SI_Namespace___skeleton___SI_Skeleton___Method_Output373 «struct» <Method>Output n_SI_Namespace___skeleton__fields___Field_667 <Field> n_SI_Namespace___skeleton__triggers___Trigger_907 <Trigger> napext__com__secoc__ComSecOcFvmErrorDomain756 ComSecOcFvmErrorDomain nara__core__ErrorDomain335 ara::core::ErrorDomain napext__com__secoc__ComSecOcFvmErrorDomain756->nara__core__ErrorDomain335 napext__com__secoc__ComSecOcFvmException158 ComSecOcFvmException nara__core__Exception792 ara::core::Exception napext__com__secoc__ComSecOcFvmException158->nara__core__Exception792 napext__com__secoc__FVContainer961 «struct» FVContainer napext__com__secoc__FVM451 FVM nara__com__ComErrorDomain658 ComErrorDomain nara__com__ComErrorDomain658->nara__core__ErrorDomain335 nara__com__ComException152 ComException nara__com__ComException152->nara__core__Exception792 nara__com__FindServiceHandle138 «struct» FindServiceHandle nara__com__InstanceIdentifier581 InstanceIdentifier nara__com__SamplePtr589 SamplePtr nara__com__ServiceIdentifierType24 ServiceIdentifierType nara__com__ServiceVersionType743 ServiceVersionType nara__com__e2e__ComE2EErrorDomain501 ComE2EErrorDomain nara__com__e2e__ComE2EErrorDomain501->nara__core__ErrorDomain335 nara__com__e2e__ComE2EException703 ComE2EException nara__com__e2e__ComE2EException703->nara__core__Exception792