मॉड्यूल ara::tsync — Time Synchronization
मॉड्यूल गाइडएआई जनित
वाहन-व्यापी सिंक्रोनाइज़्ड समय आधार प्रदान करता है और अनुप्रयोगों को सटीक समय पूछताछ और स्थिति निगरानी करने में सक्षम बनाता है।
वाहन-व्यापी सिंक्रोनाइज़्ड समय आधार प्रदान करता है और अनुप्रयोगों को सटीक समय पूछताछ और स्थिति निगरानी करने में सक्षम बनाता है।
कार्यात्मक क्लस्टर Time Synchronization, AUTOSAR Adaptive Platform को सुसंगत और नेटवर्क-व्यापी सिंक्रोनाइज़्ड समय आधार (time bases) प्रदान करता है (AUTOSAR_AP_SWS_TimeSynchronization पृ. 16)। मानकीकृत इंटरफ़ेस के माध्यम से, एडेप्टिव अनुप्रयोग परमाणु (atomic) समय अवस्थाएँ प्राप्त करते हैं या सक्रिय टाइमर (time master) के रूप में संपूर्ण सिस्टम में नए समय और दर सुधार प्रविष्ट करते हैं। इसके साथ ही, पंजीकृत Notifier कॉलबैक अंतर्निहित घड़ियों के अवस्था परिवर्तनों और समय छलांगों (time jumps) की निरंतर निगरानी करते हैं ([SWS_TS_01009])। मापन डेटा और फ्रेशनेस मानों के सत्यापन के लिए उन्नत तंत्र ट्रांसमिशन त्रुटियों और हेरफेर के विरुद्ध अस्थायी अखंडता (temporal integrity) की सुरक्षा करते हैं।
कार्यात्मक क्लस्टर Time Synchronization (tsync), AUTOSAR Adaptive Platform पर सुसंगत और नेटवर्क-व्यापी सिंक्रोनाइज़्ड समय आधार प्रदान करता है (AUTOSAR_AP_SWS_TimeSynchronization पृ. 16)। डेमन-आधारित बैकग्राउंड सेवा के रूप में, यह हार्डवेयर- और बस-विशिष्ट सिंक्रोनाइज़ेशन तंत्रों (जैसे IEEE 802.1AS gPTP) को एब्स्ट्रैक्ट करता है और मानकीकृत इंटरफ़ेस (AUTOSAR_AP_EXP_SWArchitecture पृ. 83) के माध्यम से Log and Trace, Intrusion Detection System Manager (IdsM) तथा अपडेट सेवाओं जैसे कोर क्लस्टरों को डेटा की आपूर्ति करता है।
संदर्भ आरेख (Context diagram): AUTOSAR Adaptive Platform में डेमन-आधारित Time Synchronization क्लस्टर का एम्बेडिंग और उपभोग करने वाले क्लस्टरों व अनुप्रयोगों के साथ इसके इंटरफ़ेस संबंध। स्रोत: AUTOSAR_AP_SWS_TimeSynchronization पृ. 16, AUTOSAR_AP_EXP_SWArchitecture पृ. 83, AUTOSAR_AP_EXP_SWArchitecture पृ. 83
रीड एक्सेस के लिए अनुप्रयोग इंटरफ़ेस SynchronizedTimeBaseConsumer का उपयोग करते हैं ([SWS_TS_01001])। मेथड GetTimeWithStatus(), SynchronizedTimeBaseStatus प्रकार का एक परमाणु स्नैपशॉट लौटाता है, जिससे वैश्विक समय, स्थानीय स्थिर निर्माण समय (local monotonic creation time), सिंक्रोनाइज़ेशन स्थिति तथा प्राप्त UserData प्राप्त किए जा सकते हैं ([SWS_TS_01009], [SWS_TS_01055], [SWS_TS_14176])। पोलिंग से बचने के लिए, अनुप्रयोग स्थिति परिवर्तन और समय छलांगों के लिए Notifier कॉलबैक के माध्यम से पंजीकरण करते हैं ([SWS_TS_01010], [SWS_TS_01014])।
अनुक्रम आरेख (Sequence diagram): उपभोक्ता इंटरफ़ेस के माध्यम से एक सिंक्रोनस समय क्वेरी और परमाणु स्नैपशॉट विशेषताओं को पढ़ने का प्रवाह। स्रोत: [SWS_TS_01009], [SWS_TS_01055], [SWS_TS_14176], AUTOSAR_AP_EXP_SWArchitecture पृ. 225
समय प्रदाता अनुप्रयोग SynchronizedTimeBaseProvider के माध्यम से सिस्टम व्यवहार को नियंत्रित करते हैं: SetTime() तत्काल बस ट्रांसमिशन को ट्रिगर करता है, जबकि UpdateTime() शुरुआत में घड़ी को स्थानीय रूप से समायोजित करता है ([SWS_TS_01101], [SWS_TS_01107], [SWS_TS_01108])। सहवर्ती तंत्र जैसे Time Validation ([SWS_TS_00420], [SWS_TS_00421]) और मूल Freshness Value Management (FVM) ड्रिफ्ट और रीप्ले त्रुटियों से सुरक्षा प्रदान करते हैं ([SWS_TS_14198])। त्रुटि की स्थिति में, TsyncErrc कोड (उदा. kDaemonConnectionLost) कनेक्शन टूटने का संकेत देते हैं, जबकि सिंक्रोनाइज़ेशन संदेशों की अनुपस्थिति को स्थिति ऑब्जेक्ट में kTimeOut के रूप में प्रदर्शित किया जाता है ([SWS_TS_00901], [SWS_TS_01050])।
कार्यात्मक क्लस्टर Time Synchronization (tsync), AUTOSAR Adaptive Platform पर समन्वित, नेटवर्क-व्यापी सिंक्रोनाइज़्ड समय आधार प्रदान करता है और अनुप्रयोग प्रक्रियाओं को हार्डवेयर- तथा बस-विशिष्ट समय सिंक्रोनाइज़ेशन प्रोटोकॉल से अलग करता है (AUTOSAR_AP_SWS_TimeSynchronization पृ. 16)। यह सिस्टम वितरित प्रणालियों (distributed systems) के लिए सूचना प्रौद्योगिकी की नींव बनाता है, जहाँ नियंत्रण इकाई (ECU) सीमाओं के पार सुसंगत घटना क्रम, पुनरुत्पादक ट्रेस प्रोटोकॉल और नियतात्मक (deterministic) गणना चक्र सुनिश्चित होने चाहिए (AUTOSAR_AP_EXP_SWArchitecture पृ. 83)।
संदर्भ आरेख (Context diagram): AUTOSAR Adaptive Platform में डेमन-आधारित Time Synchronization क्लस्टर का एम्बेडिंग और उपभोग करने वाले क्लस्टरों व अनुप्रयोगों के साथ इसके इंटरफ़ेस संबंध। स्रोत: AUTOSAR_AP_SWS_TimeSynchronization पृ. 16, AUTOSAR_AP_EXP_SWArchitecture पृ. 83, AUTOSAR_AP_EXP_SWArchitecture पृ. 83
सिस्टम सीमाएँ और डेमन-आधारित Time Synchronization क्लस्टर की भूमिका
Time Synchronization का कार्यात्मक आर्किटेक्चर एक डेमन-आधारित क्लस्टर (daemon-based) के रूप में कार्यान्वित किया गया है, जो पृष्ठभूमि में एक केंद्रीय प्लेटफ़ॉर्म सेवा के रूप में कार्य करता है (AUTOSAR_AP_SWS_TimeSynchronization पृ. 16)। यह डेमन सीधे अंतर्निहित ऑपरेटिंग सिस्टम के इंटरफ़ेस के साथ इंटरैक्ट करता है और नेटवर्क-आधारित समय सिंक्रोनाइज़ेशन डेटा जैसे gPTP (IEEE 802.1AS) या क्लासिक बस समय सिंक्रोनाइज़ेशन को संसाधित करता है (AUTOSAR_FO_PRS_TimeSyncProtocol पृ. 68)। अनुप्रयोग संदर्भ के विपरीत, क्लस्टर हार्डवेयर घड़ियों के गणितीय ड्रिफ्ट और ऑफ़सेट मुआवज़े (drift and offset compensation) को पूरी तरह से समाहित (encapsulate) करता है।
Adaptive Platform के कई मुख्य कार्यात्मक क्लस्टर मानकीकृत सेवा इंटरफ़ेस के माध्यम से tsync तक पहुँचते हैं (AUTOSAR_AP_EXP_SWArchitecture पृ. 83)। उदाहरण के लिए, Log and Trace सिस्टम-व्यापी लॉग और DLT घटनाओं को विश्वसनीय वैश्विक टाइमस्टैम्प प्रदान करने के लिए सिंक्रोनाइज़्ड समय आधार पर निर्भर करता है (AUTOSAR_AP_EXP_SWArchitecture पृ. 59; AUTOSAR_AP_SWS_LogAndTrace पृ. 15)। सुरक्षा-संबंधित मॉड्यूल जैसे Intrusion Detection System Manager (IdsM) और अपडेट सेवाएँ (UCM और Vehicle UCM) भी नियंत्रण इकाई सीमाओं के पार फ़ॉरेंसिक रूप से पुख्ता रिपोर्ट और सुसंगत अपडेट लेनदेन को नियंत्रित करने के लिए अनिवार्य रूप से SynchronizedTimeBaseConsumer के C++ इंटरफ़ेस पर निर्भर करते हैं (AUTOSAR_AP_EXP_SWArchitecture पृ. 125; AUTOSAR_AP_SWS_UpdateAndConfigurationManagement पृ. 16; AUTOSAR_AP_SWS_VehicleUpdateAndConfigurationManagement पृ. 11)।
उपभोक्ता इंटरफ़ेस और स्टेटफुल समय क्वेरी
सिंक्रोनाइज़्ड समय आधार तक रीड एक्सेस के लिए, अनुप्रयोग इंटरफ़ेस क्लास SynchronizedTimeBaseConsumer का उपयोग करते हैं ([SWS_TS_01001])। यह क्लास मूव सेमेंटिक्स (move semantics) को लागू करती है ([SWS_TS_01003], [SWS_TS_01004]), लेकिन किसी भी कॉपी करने को स्पष्ट रूप से बाहर करती है ([SWS_TS_01005], [SWS_TS_01006])। रनटाइम पर, GetRateDeviation() घड़ी के वर्तमान आवृत्ति विचलन को सीधे पढ़ने की अनुमति देता है ([SWS_TS_01008])।
प्रत्येक सिंक्रोनस क्वेरी का केंद्रीय तत्व ऑपरेशन GetTimeWithStatus() है ([SWS_TS_01009])। अलग-थलग कच्चे समय मान लौटाने के बजाय, यह मेथड प्रकार SynchronizedTimeBaseStatus का एक आंतरिक रूप से सुसंगत स्नैपशॉट उत्पन्न करता है (EXP_SWArchitecture पृ. 81)। यह स्नैपशॉट वैश्विक समय ([SWS_TS_01055]) में और साथ ही GetCreationLocalTime() के माध्यम से स्थानीय स्थिर समय में सटीक निर्माण समय को स्थिर (freeze) कर देता है ([SWS_TS_14176])। यहाँ समय बिंदुओं को std::int64_t के आधार पर नैनोसेकंड रिज़ॉल्यूशन वाले मानकीकृत C++ Chrono प्रकार Timestamp में मैप किया जाता है ([SWS_TS_01251], [SWS_TS_01261], [SWS_TS_01262])।
समय के अलावा, स्नैपशॉट से GetSynchronizationStatus() ([SWS_TS_01053]) के माध्यम से संचार और सिंक्रोनाइज़ेशन स्थिति, GetLeapJump() ([SWS_TS_01054]) के माध्यम से संभावित रूप से हुई समय छलांग, और GetUserData() ([SWS_TS_01056]) के माध्यम से अनुप्रयोग-विशिष्ट उपयोगकर्ता डेटा निर्धारित किया जा सकता है। स्थिति ऑब्जेक्ट के लिए कोई डिफ़ॉल्ट कंस्ट्रक्टर मौजूद नहीं है ([SWS_TS_01061]), जबकि मूव और कॉपी कंस्ट्रक्टर कॉलिंग अनुप्रयोग रूटीन में इसके थ्रेड-सुरक्षित स्थानांतरण को सुनिश्चित करते हैं ([SWS_TS_01057], [SWS_TS_01058])।
अनुक्रम आरेख (Sequence diagram): उपभोक्ता इंटरफ़ेस के माध्यम से एक सिंक्रोनस समय क्वेरी और परमाणु स्नैपशॉट विशेषताओं को पढ़ने का प्रवाह। स्रोत: [SWS_TS_01009], [SWS_TS_01055], [SWS_TS_14176], AUTOSAR_AP_EXP_SWArchitecture पृ. 225
इवेंट-संचालित सूचनाएँ और सिंक्रोनाइज़ेशन निगरानी
पोलिंग लूप से बचने के लिए, SynchronizedTimeBaseConsumer Notifier कॉलबैक के माध्यम से एक इवेंट-संचालित ऑब्जर्वर पैटर्न प्रदान करता है (AUTOSAR_AP_EXP_SWArchitecture पृ. 226)। अनुप्रयोग विशिष्ट स्थिति परिवर्तनों के लिए प्रकार-सुरक्षित (type-safe) कॉलबैक के साथ पंजीकरण करते हैं ([SWS_TS_14221], [SWS_TS_14222])। प्रत्येक नए पंजीकरण पर, नया Notifier पहले से पंजीकृत हैंडलर को अधिलेखित (overwrite) कर देता है ([SWS_TS_01010])।
एकत्रित स्थिति परिवर्तनों के लिए RegisterStatusChangeNotifier() मौजूद है ([SWS_TS_01010]), जिसे UnregisterStatusChangeNotifier() ([SWS_TS_01011]) द्वारा पूरक किया गया है। यदि कोई अनुप्रयोग मुख्य रूप से सिंक्रोनाइज़ेशन स्थिति के परिवर्तन (उदा. ग्रैंडमास्टर कनेक्शन का नुकसान) पर प्रतिक्रिया करता है, तो RegisterSynchronizationStateChangeNotifier() ([SWS_TS_01012]) का उपयोग किया जाता है। भविष्य (kTimeLeapFuture) या अतीत (kTimeLeapPast) में समय छलांग जो एक कॉन्फ़िगर की गई सीमा से अधिक होती हैं, RegisterTimeLeapNotifier() के माध्यम से रिपोर्ट की जाती हैं ([SWS_TS_01014], [SWS_TS_01051])।
मेकाट्रॉनिक उच्च-सटीक अनुप्रयोगों के लिए RegisterTimePrecisionMeasurementNotifier() भी उपलब्ध है ([SWS_TS_01018])। यह कॉलबैक एक संरचना TimePrecisionMeasurement पास करता है, जिसमें सिंक्रोनाइज़ेशन से ठीक पहले (locSeconds, locNanoSeconds) और बाद (glbSeconds, glbNanoSeconds) के सटीक सेकंड और नैनोसेकंड मान, गणना किया गया पथ विलंब pathDelay तथा बिटमास्क timeBaseStatus शामिल होते हैं ([SWS_TS_01401], [SWS_TS_01403], [SWS_TS_01406], [SWS_TS_01408])। Time Synchronization क्लस्टर यहाँ कोई कतार प्रबंधन (queuing) नहीं करता है; यदि आवश्यक हो तो अनुप्रयोग कॉलबैक के भीतर बफरिंग लागू की जानी चाहिए ([SWS_TS_01018])।
अनुक्रम आरेख (Sequence diagram): सिंक्रोनाइज़ेशन परिवर्तनों और समय छलांगों पर पंजीकरण और एसिंक्रोनस अधिसूचना प्रवाह। स्रोत: [SWS_TS_01010], [SWS_TS_01012], [SWS_TS_01014], AUTOSAR_AP_EXP_SWArchitecture पृ. 226
स्थिति आरेख (State diagram): SWS_TS_01050 के अनुसार एक समय आधार की सिंक्रोनाइज़ेशन स्थिति का जीवनचक्र। स्रोत: [SWS_TS_01050], AUTOSAR_SWS_TimeSync पृ. 25
प्रदाताओं द्वारा समय आधारों का प्रावधान और आवृत्ति समायोजन
यदि कोई Adaptive Application एक सक्रिय टाइमर (Time Master) के रूप में कार्य करता है — उदाहरण के लिए किसी GNSS रिसीवर या बाहरी संदर्भ घड़ी से जुड़कर — तो वह क्लास SynchronizedTimeBaseProvider का उपयोग करता है ([SWS_TS_01101])। यह इंटरफ़ेस दो अलग-अलग सेमेंटिक्स के माध्यम से नए समय मानों को स्पष्ट रूप से सेट करने की अनुमति देता है: SetTime() और UpdateTime() (EXP_SWArchitecture पृ. 80)।
SetTime() का कॉल न केवल आंतरिक घड़ी की स्थिति को रीसेट करता है, बल्कि वाहन बस पर अद्यतन सिंक्रोनाइज़ेशन संदेशों के तत्काल प्रसारण को भी बाध्य करता है ([SWS_TS_01107])। इसके विपरीत, UpdateTime() शुरुआत में समय को केवल स्थानीय रूप से अपडेट करता है; बस पर ट्रांसमिशन समय ट्रांसमिशन प्रोटोकॉल के नियमित अनुवर्ती चक्र में विलंबित होता है ([SWS_TS_01108])। दोनों मेथड टाइमस्टैम्प के अलावा नेटवर्क-व्यापी सिंक्रोनाइज़ेशन-संबंधित अतिरिक्त जानकारी वितरित करने के लिए संरचित UserData स्वीकार करते हैं ([SWS_TS_01112], [SWS_TS_01113])।
क्वार्ट्ज ऑसिलेटर के सटीक समायोजन और अचानक चरण छलांग (phase jumps) से बचने के लिए, SetRateCorrection() एक सापेक्ष आवृत्ति सुधार कारक को लागू करने में सक्षम बनाता है ([SWS_TS_01110])। इसके अतिरिक्त, GetRateDeviation() वर्तमान में लागू क्लॉक विचलन प्रदान करता है ([SWS_TS_01111]), जबकि GetCurrentTime() वर्तमान सिंक्रोनाइज़ेशन स्थिति की परवाह किए बिना घड़ी के पूर्ण समय मान को पढ़ता है ([SWS_TS_01109])।
Time Validation और Freshness Value Management के माध्यम से अखंडता आश्वासन
सुरक्षा-महत्वपूर्ण और अत्यधिक स्वचालित ड्राइविंग वातावरण में, केवल समय मानों को स्वीकार करना पर्याप्त नहीं है; टाइमस्टैम्प की शुद्धता और छेड़छाड़-प्रतिरोध को लगातार मान्य किया जाना चाहिए (AUTOSAR_AP_SWS_TimeSynchronization पृ. 38)। इसके लिए, tsync Time Validation के लिए कॉलबैक इंटरफ़ेस प्रदान करता है: उपभोक्ता RegisterTimeValidationNotification() ([SWS_TS_01016]) के माध्यम से पंजीकरण करते हैं, प्रदाता प्रदाता-विशिष्ट विधि ([SWS_TS_01114]) के माध्यम से समान रूप से पंजीकरण करते हैं।
सत्यापन इंटरफ़ेस ConsumerTimeBaseValidationNotification और ProviderTimeBaseValidationNotification विस्तृत मापन डेटा सेट विशेष निगरानी अनुप्रयोगों को सौंपते हैं ([SWS_TS_01300], [SWS_TS_01301])। मास्टर स्टेशन पर, SetMasterTimingData() प्रेषित सिंक फ़्रेम ([SWS_TS_00421], [SWS_TS_14141], [SWS_TS_14142]) का इग्रेस टाइमस्टैम्प (egress timestamp) (syncEgressTimestamp) और अनुक्रम संख्या (sequenceId) प्रदान करता है। स्लेव स्तर पर, SetSlaveTimingData() संबंधित इनग्रेस टाइमस्टैम्प (ingress timestamp) (syncIngressTimestamp), प्राप्त सुधार फ़ील्ड (correctionField) और मापा गया पथ विलंब (pDelay) पास करता है ([SWS_TS_00420], [SWS_TS_14152], [SWS_TS_14153], [SWS_TS_14155])। पीयर-टू-पीयर विलंब मापन के लिए, SetPdelayInitiatorData() और SetPdelayResponderData() अनुरोध और प्रतिक्रिया पैकेट के इनपुट और आउटपुट समय को पूरी तरह से उपलब्ध कराते हैं ([SWS_TS_00422], [SWS_TS_00423], [SWS_TS_14160], [SWS_TS_14170])।
रीप्ले हमलों से सुरक्षा और प्रेषित समय संदेशों को सुरक्षित करने के लिए, प्लेटफ़ॉर्म नेमस्पेस apext::tsync ([SWS_TS_14198], EXP_SWArchitecture पृ. 83) में नेटिव इंटरफ़ेस के माध्यम से Freshness Value Management (FVM) को एकीकृत करता है। बूट होने पर, Initialize() संबंधित FVM प्लगइन को प्रारंभ करता है ([SWS_TS_14200])। भेजने से पहले, ताज़ा काउंटर मान प्राप्त करने के लिए स्टैक GetTxFreshness() को कॉल करता है ([SWS_TS_14199]), जबकि प्राप्त करने पर सत्यापन और प्रमाणीकरण के लिए GetRxFreshness() का उपयोग किया जाता है ([SWS_TS_14198])। डेटा यहाँ मानकीकृत FVContainer के माध्यम से ले जाया जाता है ([SWS_TS_14195], [SWS_TS_14196])।
अनुक्रम आरेख (Sequence diagram): मास्टर, स्लेव और बाहरी सत्यापनकर्ता अनुप्रयोग के बीच टाइमिंग मापन डेटा का सत्यापन प्रवाह। स्रोत: [SWS_TS_00420], [SWS_TS_00421], AUTOSAR_AP_SWS_TimeSynchronization पृ. 38
कॉन्फ़िगरेशन, प्रोसेस बाइंडिंग और मैनिफ़ेस्ट मॉडलिंग
क्लस्टर का आवंटन और कार्यात्मक बाइंडिंग AUTOSAR मॉडल मैनिफ़ेस्ट (AUTOSAR_AP_TPS_ManifestSpecification पृ. 590) में घोषणात्मक रूप से की जाती है। Machine Manifest में, प्लेटफ़ॉर्म डेमन को एक विशिष्ट Machine पर मेटा-मॉडल तत्व TimeSyncModuleInstantiation के माध्यम से इंस्टैंशिएट किया जाता है और वहाँ भौतिक और वर्चुअल TimeBaseResource ऑब्जेक्ट्स का प्रबंधन करता है (AUTOSAR_AP_TPS_ManifestSpecification पृ. 590)।
अनुप्रयोग स्तर पर, प्रक्रियाएँ पोर्ट प्रोटोटाइप (उपभोक्ताओं के लिए RPortPrototype या प्रदाताओं के लिए PPortPrototype) के माध्यम से समय आधारों के लिए अपनी आवश्यकता की घोषणा करती हैं (AUTOSAR_AP_TPS_ManifestSpecification पृ. 599)। मेटा-मॉडल निर्माण TimeSyncPortPrototypeToTimeBaseMapping इन पोर्टों को व्यक्तिगत रूप से मशीन पर परिभाषित समय आधारों से जोड़ता है (TPS_ManifestSpecification पृ. 599; AUTOSAR_AP_TPS_ManifestSpecification पृ. 600)। रनटाइम पर, कोड में इंस्टैंशिएशन प्रकार-सुरक्षित ara::core::InstanceSpecifier के माध्यम से किया जाता है, जिसके द्वारा स्टैक सही कॉन्फ़िगर किए गए समय आधार को बांधता है ([SWS_TS_01001], [SWS_TS_01101])।
त्रुटि की स्थिति में व्यवहार
Time Synchronization क्लस्टर में त्रुटि स्थितियों को Adaptive Platform (ara::core::Result और ara::core::ErrorCode) के मानकीकृत त्रुटि मॉडल के माध्यम से संकेतित किया जाता है ([SWS_TS_00910])। नियमित समय आधार संचालन के लिए, गणन (enumeration) TsyncErrc त्रुटि कोड को परिभाषित करता है ([SWS_TS_00901])। उदाहरण के लिए, यदि प्लेटफ़ॉर्म डेमन के साथ इंटर-प्रोसेस संचार बाधित होता है, तो त्रुटि कोड kDaemonConnectionLost लौटाया जाता है ([SWS_TS_00901])।
वैश्विक त्रुटि डोमेन TsyncErrorDomain के माध्यम से त्रुटि कोड का निरीक्षण किया जा सकता है ([SWS_TS_00905], [SWS_TS_00906], [SWS_TS_00907]) या सक्रिय C++ अपवादों के साथ ThrowAsException() के माध्यम से TsyncException के रूप में फेंका जा सकता है ([SWS_TS_00903], [SWS_TS_00908], [SWS_TS_00909])। Freshness Value Management के लिए गणन TsyncFvmErrc ([SWS_TS_14201], [SWS_TS_14202]) के साथ एक स्वतंत्र त्रुटि डोमेन TsyncFvmErrorDomain मौजूद है। यदि आरंभीकरण विफल हो जाता है, तो Initialize() त्रुटि kFVInitializeFailed लौटाता है ([SWS_TS_14200]), जबकि प्रमाणीकरण जांच के लिए काउंटर अनुपलब्ध होने पर kFVNotAvailable की सूचना दी जाती है ([SWS_TS_14202])।
कार्यात्मक स्तर पर, क्लस्टर अनिवार्य रूप से सिंक्रोनस API त्रुटियों के माध्यम से समय संदेशों के नुकसान का संकेत नहीं देता है, बल्कि स्थिति ऑब्जेक्ट में समय आधार को संचार स्थिति kTimeOut ([SWS_TS_01050]) के साथ चिह्नित करता है या timeBaseStatus ([SWS_TS_01403]) में संबंधित बिट सेट करता है। व्याख्या: इसलिए, सुरक्षा-महत्वपूर्ण नियंत्रण लूपों के लिए मापन मानों का उपयोग करने से पहले, GetTimeWithStatus() के बाद स्नैपशॉट की वैधता स्थिति की सक्रिय रूप से जांच करने का दायित्व हमेशा अनुप्रयोग का होना चाहिए। प्रश्न Q-0cd9bb48452ae3db (खुला)
आगे विस्तृत साक्ष्य
मॉड्यूल tsync की मुख्य आवश्यकताओं और विनिर्देश बिंदुओं को निम्नलिखित मुख्य क्षेत्रों में समूहीकृत किया जा सकता है:
- उपभोक्ताओं और प्रदाताओं के लिए रनटाइम इंटरफ़ेस: जीवनचक्र और पुनर्प्राप्ति संचालन [SWS_TS_01001] से [SWS_TS_01019] के साथ-साथ प्रदाता फ़ंक्शन [SWS_TS_01101] से [SWS_TS_01115] (EXP_SWArchitecture पृ. 80, EXP_SWArchitecture पृ. 81) पर आधारित हैं।
- स्थिति संरचनाएँ और समय निरूपण: [SWS_TS_01050] से [SWS_TS_01062] के अनुसार
SynchronizedTimeBaseStatus,SynchronizationStatusऔरLeapJumpकी परिभाषा तथा [SWS_TS_01251] से [SWS_TS_01265] के अनुसार मानक Chrono प्रकार। - Time Validation और मापन डेटा अधिग्रहण: [SWS_TS_00420] से [SWS_TS_00423] तथा [SWS_TS_14140] से [SWS_TS_14174] (AUTOSAR_AP_SWS_TimeSynchronization पृ. 38) के अनुसार मापन संरचनाओं और सूचना कॉलबैक्स की परिभाषा।
- सुरक्षा विस्तार FVM: इंटरफ़ेस [SWS_TS_14195] से [SWS_TS_14213] (AUTOSAR_AP_EXP_SWArchitecture पृ. 83) के माध्यम से प्रमाणीकरण और नवीनता सत्यापन (freshness verification)।
- मैनिफ़ेस्ट मॉडलिंग: AUTOSAR_AP_TPS_ManifestSpecification पृ. 590 और AUTOSAR_AP_TPS_ManifestSpecification पृ. 599 के अनुसार प्रक्रियाओं और पोर्ट प्रोटोटाइप्स का समय आधारों के साथ घोषणात्मक कॉन्फ़िगरेशन और मैपिंग।
यह मॉड्यूल गाइड AUTOSAR Adaptive विनिर्देश R25-11 के आधार पर स्वचालित रूप से जनरेट की गई थी।
function: 70 variable: 37 type alias: 12 class: 10 struct: 8 enumeration: 4
क्लासें
ConsumerTimeBaseValidationNotificationFVContainerFVMPdelayInitiatorMeasurementTypePdelayResponderMeasurementTypeProviderTimeBaseValidationNotificationSynchronizedTimeBaseConsumerSynchronizedTimeBaseProviderSynchronizedTimeBaseStatusTimeBaseTimeMasterMeasurementTypeTimePrecisionMeasurementTimeSlaveMeasurementTypeTsyncErrorDomainTsyncExceptionTsyncFvmErrorDomainTsyncFvmExceptionUserDataफ़ंक्शन
GetTsyncErrorDomainGetTsyncFvmErrorDomainMakeErrorCodeMakeErrorCode (ara::tsync)टाइप
SynchronizationNotifierSynchronizedTimeBaseNotifierTimePrecisionNotifierTimestampएन्यूमरेशन
LeapJumpSynchronizationStatusTsyncErrcTsyncFvmErrcविषय मानचित्र
ara::tsync
23इस रिलीज़ के लिए कोई तत्व डेटा उपलब्ध नहीं
apext::tsync
A freshness value container to hold the length of freshness value in bits and the freshness value itself as vector.
A freshness value management interface for ara::tsync.
Defines a class representing the Freshness Value Manager error domain.
से इनहेरिट करता है ara::core::ErrorDomain
Defines a class for exceptions to be thrown by the Freshness Value Manager.
से इनहेरिट करता है ara::core::Exception
Returns a reference to the global apext::tsync::TsyncFvmErrorDomain object.
constexpr const ara::core::ErrorDomain & GetTsyncFvmErrorDomain () noexcept;Creates an instance of ara::core::ErrorCode.
constexpr ara::core::ErrorCode MakeErrorCode (TsyncFvmErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;The enumeration class defines the error codes for the apext::tsync:: TsyncFvmErrorDomain.
enum class TsyncFvmErrc : ara::core::ErrorDomain::CodeType {...};ara::tsync
Callback interface to notify Consumer Application about the availability of a new data block recorded for the Time Base
Structure with detailed timing data for the pDelay Initiator .
Structure with detailed timing data for the pDelay Responder .
Callback interface to notify (Validator) Application about the availability of a new data block recorded for the Time Base
Class SynchronizedTimeBaseConsumer is the access to the synchronized timebase referenced by the InstanceSpecifier
Class SynchronizedTimeBaseProvider is the access to the synchronized timebase referenced by the IntstanceSpecifier
This class represents a snapshot of a time point including his states
The class TimeBase is a pseudo-clock
Structure with detailed data for validation of the Time Master .
Structure with detailed data for precision measurement of the Time Slave .
Structure with detailed data for validation of the Time Slave .
Defines a class representing the Time Synchronization error domain.
से इनहेरिट करता है ara::core::ErrorDomain
Defines a class for exceptions to be thrown by the Time Synchronization.
से इनहेरिट करता है ara::core::Exception
Structure to define user data
Returns a reference to the global TsyncErrorDomain object.
const ara::core::ErrorDomain & GetTsyncErrorDomain () noexcept;Creates an instance of ErrorCode.
ara::core::ErrorCode MakeErrorCode (ara::tsync::TsyncErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept;Enumeration that is used to express the leap jump of a time base. .
enum class LeapJump : std::uint32_t {...};Enumeration that is used to express the communication state of a time base. .
enum class SynchronizationStatus : std::uint32_t {...};Defines an enumeration class for the Time Synchronization error codes.
enum class TsyncErrc : ara::core::ErrorDomain::CodeType {...};Notifier function .
using SynchronizationNotifier = std::function<void(const SynchronizationStatus&)>;Notifier function .
using SynchronizedTimeBaseNotifier = std::function<void(const SynchronizedTimeBaseStatus&)>;Notifier function .
using TimePrecisionNotifier = std::function<void(const TimePrecision Measurement&)>;Standard timestamp type as alias of a generic time_point .
using Timestamp = std::chrono::time_point<TimeBase, std::chrono::nanoseconds>;नेमस्पेस
- apext::tsync 4 Klassen, 2 freie Funktionen
- ara::tsync 14 Klassen, 2 freie Funktionen
मॉड्यूल का 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 · जर्मन मूल