मॉड्यूल ara::com — Communication Management
मॉड्यूल गाइडएआई जनित
सेवा-उन्मुख संचार के लिए टाइप किए गए इंटरफ़ेस प्रदान करता है और परिवहन प्रोटोकॉल को सारगर्भित (abstract) करता है।
सेवा-उन्मुख संचार के लिए टाइप किए गए इंटरफ़ेस प्रदान करता है और परिवहन प्रोटोकॉल को सारगर्भित (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])।
अनुक्रम आरेख: 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)।
संदर्भ आरेख: 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])।
अनुक्रम आरेख: 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)।
अनुक्रम आरेख: 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)।
अनुक्रम आरेख: 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)।
गतिविधि आरेख: आने वाले संदेशों की 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)।
स्थिति आरेख: प्रोवाइडर की उपलब्धता परिवर्तनों के दौरान प्रॉक्सी इंस्टेंस का जीवनचक्र और कनेक्शन स्थितियां। स्रोत: [SWS_CM_00310], [SWS_CM_00316], ARAComAPI पृ. 32
आगे विस्तृत साक्ष्य
आवश्यक आवश्यकताएं और सिस्टम इंटरफेस AUTOSAR विनिर्देशों में निम्नानुसार संरचित हैं:
- सेवा जीवनचक्र और डिस्कवरी: सेवा प्रावधान और खोज तंत्र [SWS_CM_00101], [SWS_CM_00111], [SWS_CM_00122] और [SWS_CM_00123] पर आधारित हैं, जिनका सॉफ़्टवेयर आर्किटेक्चर गाइड (ARAComAPI पृ. 103) में विस्तार से वर्णन किया गया है।
- इंटरैक्शन प्रतिमान: तरीके और एसिंक्रोनस भविष्य के मान [SWS_CM_00191] और [SWS_CM_00196] में मानकीकृत हैं; इवेंट सब्सक्रिप्शन और सैंपल ट्रांसमिशन [SWS_CM_00141], [SWS_CM_00701] और [SWS_CM_90437] (SWS_CommunicationManagement पृ. 67) का पालन करते हैं।
- सुरक्षा और क्रमांकन: E2E ([SWS_CM_90420]), SecOC ([SWS_CM_90108], [SWS_CM_11288]) और सिग्नल-टू-सर्विस ट्रांसलेशन ([SWS_CM_10174]) के लिए सुरक्षा अवधारणाएं सिस्टम-व्यापी डेटा विनिमय को नियंत्रित करती हैं (SWS_CommunicationManagement पृ. 146, SWS_CommunicationManagement पृ. 222)।
- मैनिफ़ेस्ट और प्रकार परिभाषाएं: संरचित डेटा प्रकारों, वैकल्पिक फ़ील्ड्स और इंस्टेंस विनिर्दिष्टकर्ताओं का मैपिंग मैनिफ़ेस्ट विनिर्देश में निहित है (TPS_ManifestSpecification पृ. 161, TPS_ManifestSpecification पृ. 458)।
यह मार्गदर्शिका AUTOSAR Adaptive Release R25-11 के आधार पर एक AI क्यूरेशन सहायक द्वारा तैयार की गई थी।
<SI-Namespace>::proxy::methods
<FnFMethod><Method><SI-Namespace>::proxy::triggers
<Trigger><SI>Skeleton<SI-Namespace>::skeleton::fields
<Field> (<SI-Namespace>::skeleton::fields)<SI-Namespace>::skeleton::triggers
<Trigger> (<SI-Namespace>::skeleton::triggers)ComSecOcFvmErrorDomainComSecOcFvmExceptionFVContainerFVMGetComSecOcFvmErrorDomainMakeErrorCodeComSecOcFvmErrcComErrorDomainComExceptionFindServiceHandleInstanceIdentifierSamplePtrServiceIdentifierTypeServiceVersionTypeGetComErrorDomainMakeErrorCode (ara::com)ComErrcMethodCallProcessingModeServiceStateSubscriptionStateEventReceiveHandlerFieldReceiveHandlerFindServiceHandlerInstanceIdentifierContainerSampleAllocateePtrServiceHandleContainerServiceStateHandlerSubscriptionStateChangeHandlerTriggerReceiveHandlerComE2EErrorDomainComE2EExceptionGetComE2EErrorDomainMakeErrorCode (ara::com::e2e)ComE2EErrcProfileCheckStatusSMStateTransportFaultConditionTransportFaultConditionHandlerResolveInstanceIDsसेवा इंटरफ़ेस
VerificationStatusVerificationStatusConfigurationByDataIdVerificationStatusConfigurationByFreshnessIdक्लासें
<Field><Field> (<SI-Namespace>::skeleton::fields)<FnFMethod><Method><SI>Proxy<SI>Skeleton<Trigger><Trigger> (<SI-Namespace>::skeleton::triggers)ComE2EErrorDomainComE2EExceptionComErrorDomainComExceptionComSecOcFvmErrorDomainComSecOcFvmExceptionFindServiceHandleFVContainerFVMInstanceIdentifierSamplePtrServiceIdentifierTypeServiceVersionTypeफ़ंक्शन
GetComE2EErrorDomainGetComErrorDomainGetComSecOcFvmErrorDomainMakeErrorCodeMakeErrorCode (ara::com)MakeErrorCode (ara::com::e2e)ResolveInstanceIDsटाइप
EventReceiveHandlerFieldReceiveHandlerFindServiceHandlerInstanceIdentifierContainerSampleAllocateePtrServiceHandleContainerServiceStateHandlerSubscriptionStateChangeHandlerTransportFaultConditionHandlerTriggerReceiveHandlerएन्यूमरेशन
ComE2EErrcComErrcComSecOcFvmErrcMethodCallProcessingModeProfileCheckStatusServiceStateSMStateSubscriptionStateTransportFaultConditionसेवा इंटरफ़ेस
VerificationStatusVerificationStatusConfigurationByDataIdVerificationStatusConfigurationByFreshnessIdविषय मानचित्र
ara::com
22इस रिलीज़ के लिए कोई तत्व डेटा उपलब्ध नहीं
<SI-Namespace>::proxy
Service Interface Proxy
<SI-Namespace>::proxy::fields
Service proxy Field class, one for each Field defined in the ServiceInterface in the role field.
<SI-Namespace>::proxy::methods
Service proxy fire-and-forget method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget==TRUE) defined in the S
Service proxy method class, one for each ClientServerOperation ( ClientServerOperation.fireAndForget ==FALSE) defined in the ServiceInterfac
<SI-Namespace>::proxy::triggers
Service proxy Trigger class, one for each Trigger defined in the ServiceInterface in the role trigger.
<SI-Namespace>::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
Defines a class representing the SecOc Freshness Value Manager error domain
से इनहेरिट करता है ara::core::ErrorDomain
Defines a class for exceptions to be thrown by the SecOc Freshness Value Manager
से इनहेरिट करता है ara::core::Exception
A container to hold the length of freshness value in bits and the freshness value itself
A freshness value management interface to be implemented by the OEM/stack vendor
Returns a reference to the apext::com::secoc::ComSecOcFvmErrorDomain object
constexpr const ara::core::ErrorDomain & GetComSecOcFvmErrorDomain () noexcept;Creates an instance of ara::core::ErrorCode
constexpr ara::core::ErrorCode MakeErrorCode (apext::com::secoc::Com SecOcFvmErrc errorCode, ara::core::ErrorDomain::SupportDataType data) noexcept;Defines the error codes for the apext::com::secoc::ComSecOcFvmErrorDomain
enum class ComSecOcFvmErrc : ara::core::ErrorDomain::CodeType {...};ara::com
Defines a class representing the Communication error domain.
से इनहेरिट करता है ara::core::ErrorDomain
Defines a class for exceptions to be thrown by the API.
से इनहेरिट करता है ara::core::Exception
The exact definition of ara::com::FindServiceHandle is Communication Management implementation specific
Unique identifier of a specific AdaptivePlatformServiceInstance, to distinguish different instances of exactly the same service
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
Specifies a Service Identifier The exact type may be overridden by the Communication Management software provider
Specifies a Service Version
Returns a reference to the ara::com::ComErrorDomain object
constexpr const ara::core::ErrorDomain & GetComErrorDomain () noexcept;Creates an instance of ara::core::ErrorCode
constexpr ara::core::ErrorCode MakeErrorCode (ara::com::ComErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;Defines the error codes for the ara::com::ComErrorDomain
enum class ComErrc : ara::core::ErrorDomain::CodeType {...};Processing modes for the service implementation.
enum class MethodCallProcessingMode : std::uint8_t {...};The state of the service from GetServiceState()
enum class ServiceState : std::uint8_t {...};The subscription state of an event.
enum class SubscriptionState : std::uint8_t {...};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()>;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()>;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)>;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>;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>;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>;Functor used as input arguments for any of the SetServiceStateChangeHandler() methods: • [SWS_CM_01074] • [SWS_CM_01076]
using ServiceStateHandler = std::function<void(ServiceState)>;Callback function invoked if ara::com::SubscriptionState of an event has changed.
using SubscriptionStateChangeHandler = std::function<void(Subscription State)>;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
Defines a class representing the E2E error domain
से इनहेरिट करता है ara::core::ErrorDomain
Defines a class for exceptions to be thrown by the E2E APIs
से इनहेरिट करता है ara::core::Exception
Returns a reference to the ara::com::e2e::ComE2EErrorDomain object
constexpr const ara::core::ErrorDomain & GetComE2EErrorDomain () noexcept;Creates an instance of ara::core::ErrorCode
constexpr ara::core::ErrorCode MakeErrorCode (ara::com::e2e::ComE2 EErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;Defines the error codes for the ara::com::e2e::ComE2EErrc
enum class ComE2EErrc : ara::core::ErrorDomain::CodeType {...};The result of the check of a single ara::com::SamplePtr
enum class ProfileCheckStatus : std::uint8_t {...};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 {...};Defines the TransportFaultCondition which represent a single transport-related fault event
enum class TransportFaultCondition : std::uint8_t {...};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
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;सेवा इंटरफ़ेस
Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).
Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).
Als ara::com-Dienst modellierte Schnittstelle; Methoden/Felder werden über generierte Proxies/Skeletons aufgerufen (Parameterrichtung IN/OUT).
Verwandte Komponenten in anderen Universen
function: 179 class: 20 type alias: 20 variable: 13 enumeration: 10 struct: 4 service method: 2 header file: 1 service event: 1
नेमस्पेस
- <SI-Namespace>::proxy 1 Klassen, 0 freie Funktionen
- <SI-Namespace>::proxy::fields 1 Klassen, 0 freie Funktionen
- <SI-Namespace>::proxy::methods 2 Klassen, 0 freie Funktionen
- <SI-Namespace>::proxy::triggers 1 Klassen, 0 freie Funktionen
- <SI-Namespace>::skeleton 1 Klassen, 0 freie Funktionen
- <SI-Namespace>::skeleton::fields 1 Klassen, 0 freie Funktionen
- <SI-Namespace>::skeleton::triggers 1 Klassen, 0 freie Funktionen
- apext::com::secoc 4 Klassen, 2 freie Funktionen
- ara::com 7 Klassen, 2 freie Funktionen
- ara::com::e2e 2 Klassen, 2 freie Funktionen
- ara::com::runtime 0 Klassen, 1 freie Funktionen
सेवा इंटरफ़ेस (ara::com द्वारा मॉडलित)
- VerificationStatus 1 Mitglieder
- VerificationStatusConfigurationByDataId 1 Mitglieder
- VerificationStatusConfigurationByFreshnessId 1 Mitglieder
मॉड्यूल का UML क्लास आरेख
Abgerundete Rahmen = Namespaces; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = modulfremde bzw. externe Basisklassen. Klicken öffnet die Klassenseite.
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल