DEENESPTFRRUARHIKOZHNL

PDU Router (PduR)

ModulPduR (PDU Router)
BSW-Modul-ID51
Standard-Header#include "PduR.h"
SWS-SpezifikationAUTOSAR_SWS_PDURouter.pdf
ClusterCommunication Services

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

स्टैटिक रूटिंग टेबल के माध्यम से I-PDUs को ऊपरी और निचले संचार मॉड्यूल के बीच अपरिवर्तित मध्यस्थता करता है।
एआई-जनित असत्यापित मॉडल: claude-opus-5-5 · प्रयास: high · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 3a20c4ee9a26 उद्गम खुले प्रश्न (1)
कारणात्मक एंकर: R20-11 R20-11 से मान्य इस विनिर्देश संस्करण के लिए नए सिरे से संश्लेषित।
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

स्टैटिक रूटिंग टेबल के माध्यम से I-PDUs को ऊपरी और निचले संचार मॉड्यूल के बीच अपरिवर्तित मध्यस्थता करता है।

PDU Router ऊपरी मॉड्यूल जैसे कि Com और DCM, Communication Interfaces और ट्रांसपोर्ट प्रोटोकॉल के बीच I-PDUs की मध्यस्थता करता है। ऐसा करते समय यह कॉन्फ़िगर किए गए रूटिंग पाथों के साथ केवल I-PDU-IDs का रूपांतरण करता है और सामग्री को परिवर्तित नहीं करता [SWS_PduR_00160]। इसके कार्यों में ट्रांसमिशन, रिसेप्शन, TriggerTransmit, खंडित TP ट्रांसमिशन और वैकल्पिक FIFO बफ़र वाले गेटवे शामिल हैं। रूटिंग केवल सफल PduR_Init [SWS_PduR_00328] के बाद PDUR_ONLINE स्थिति में की जाती है। रनटाइम पर PduR_EnableRouting और PduR_DisableRouting के माध्यम से रूटिंग पाथ समूहों को स्विच किया जा सकता है।

PDU Router ऊपरी मॉड्यूल जैसे कि Com और DCM, CanIf, FrIf और LinIf जैसे Communication Interfaces तथा ट्रांसपोर्ट प्रोटोकॉल के बीच I-PDUs की मध्यस्थता करता है। इस प्रक्रिया में यह I-PDUs को परिवर्तित नहीं करता [SWS_PduR_00160] और केवल कॉन्फ़िगर किए गए रूटिंग पाथों के साथ रूट करता है [SWS_PduR_00162]। इसका मुख्य कार्य ट्रांसमिशन पाथ के साथ-साथ पुष्टिकरण और इंडिकेशन पाथ पर I-PDU-IDs का रूपांतरण करना है [SWS_PduR_00766]। इंटरफ़ेस जेनेरिक हैं; प्लेसहोल्डर <Up>, <Lo> और <LoTp> कॉन्फ़िगरेशन PduRBswModules [SWS_PduR_00504] से प्राप्त होते हैं।

kontext cluster_oben Obere Module (<Up>) cluster_if Communication Interfaces (<Lo>) cluster_tp Transportprotokolle (<LoTp>) Com Com PduR PduR Routing-Tabellen, I-PDU-ID-Umsetzung, Gateway-Puffer Com->PduR PduR_ComTransmit Dcm Dcm Dcm->PduR PduR_<User:Up>Transmit BswM BswM BswM->PduR PduR_EnableRouting, PduR_DisableRouting PduR->Com Com_RxIndication, Com_TxConfirmation, Com_TriggerTransmit PduR->Dcm Dcm_StartOfReception, Dcm_CopyRxData, Dcm_CopyTxData, Dcm_TpRxIndication, Dcm_TpTxConfirmation Det Det PduR->Det डेवलपमेंट और रनटाइम त्रुटियाँ CanIf CanIf PduR->CanIf <Lo>_Transmit FrIf FrIf PduR->FrIf LinIf LinIf PduR->LinIf CanTp CanTp PduR->CanTp <LoTp>_Transmit FrTp FrTp PduR->FrTp LinTp LinTp (in LinIf) PduR->LinTp CanIf->PduR PduR_<User:Lo>RxIndication, TxConfirmation, TriggerTransmit CanTp->PduR PduR_<User:LoTp>StartOfReception, CopyRxData, CopyTxData, RxIndication, TxConfirmation

संदर्भ आरेख: PduR ऊपरी मॉड्यूल और IF- अथवा TP-मॉड्यूल के बीच स्थित है; BswM पाथ समूहों को स्विच करता है, त्रुटियाँ DET को भेजी जाती हैं। स्रोत: [SWS_PduR_00504], SWS PDU Router पृ. 16

PduR केवल PDUR_UNINIT और PDUR_ONLINE [SWS_PduR_00324] स्थितियों को जानता है। रूटिंग विशेष रूप से PDUR_ONLINE [SWS_PduR_00328] में की जाती है। यह PduR_Init(ConfigPtr) [SWS_PduR_00334] के माध्यम से वहाँ पहुँचता है। इससे पहले, PduR_Init और PduR_GetVersionInfo को छोड़कर सभी फ़ंक्शन त्रुटि PDUR_E_UNINIT की रिपोर्ट करते हैं, बशर्ते त्रुटि पहचान सक्रिय हो [SWS_PduR_00119]।

zustaende Powerup Powerup UNINIT PDUR_UNINIT कोई रूटिंग नहीं; PduR_Init और PduR_GetVersionInfo के अलावा अन्य APIs PDUR_E_UNINIT रिपोर्ट करते हैं (PduRDevErrorDetect होने पर) Powerup->UNINIT immediate ONLINE PDUR_ONLINE रूटिंग तालिकाओं के अनुसार रूटिंग UNINIT->ONLINE PduR_Init(ConfigPtr) बिना किसी त्रुटि के: बफ़र मुक्त करें, डिफ़ॉल्ट मान सेट करें, कॉन्फ़िगरेशन के अनुसार रूटिंग पथ समूहों को सक्रिय करें ONLINE->ONLINE erneuter PduR_Init: PDUR_E_UNINIT an DET

स्थिति आरेख: पावर-अप PDUR_UNINIT की ओर ले जाता है; केवल त्रुटि-रहित PduR_Init ही PDUR_ONLINE की ओर ले जाता है। स्रोत: [SWS_PduR_00325], [SWS_PduR_00326], SWS PDU Router चित्र 7.2 पृ. 53

ऑपरेशन में PduR निम्नलिखित प्रक्रियाओं को संभालता है:

  • यह ट्रांसमिशन अनुरोधों को प्रत्येक इंटरफ़ेस गंतव्य पर अग्रेषित करता है [SWS_PduR_00625]।
  • यह TriggerTransmit अनुरोधों को ऊपरी परत पर अग्रेषित करता है [SWS_PduR_00430]।
  • TP मल्टीकास्ट के मामले में यह प्रत्येक गंतव्य के लिए TP_CONFPENDING या TP_DATARETRY के साथ समान डेटा का अनुरोध करता है [SWS_PduR_00631] [SWS_PduR_00632] और एक समेकित पुष्टिकरण की रिपोर्ट करता है [SWS_PduR_00765]।
  • एक गेटवे के रूप में यह आवश्यकतानुसार FIFO [SWS_PduR_00785] में बफ़र करता है। यह TP-I-PDUs को एक सीमा से ठीक एक गंतव्य पर ऑन-द-फ़्लाई आगे भेज सकता है [SWS_PduR_00317] [SWS_PduR_00708]।

रनटाइम पर PduR_EnableRouting और PduR_DisableRouting संपूर्ण रूटिंग पाथ समूहों [SWS_PduR_00615] [SWS_PduR_00617] को स्विच करते हैं, जो आमतौर पर BswM द्वारा नियंत्रित होते हैं। किसी निष्क्रिय पाथ पर कॉल E_NOT_OK [SWS_PduR_00717] के साथ समाप्त होते हैं। PDUR_E_PDU_ID_INVALID जैसी डेवलपमेंट त्रुटियों की रिपोर्ट PduR DET [SWS_PduR_00100] को करता है। FIFO हानियों को यह PDUR_E_PDU_INSTANCES_LOST [SWS_PduR_00670] के रूप में रिपोर्ट करता है। इंटरफ़ेस पाथों पर कोई समर्पित त्रुटि प्रबंधन नहीं है; रिटर्न मान स्रोत SWS PDU Router पृ. 46 को भेजे जाते हैं।

भूमिका और सिस्टम सीमा: ऊपरी मॉड्यूल, इंटरफ़ेस और ट्रांसपोर्ट प्रोटोकॉल के बीच I-PDU मध्यस्थता

PDU Router (PduR) क्लासिक संचार स्टैक का केंद्रीय मध्यस्थता नोड है। यह स्रोत मॉड्यूल से I-PDUs स्वीकार करता है और उन्हें अपरिवर्तित और सुसंगत रूप से एक या अधिक गंतव्य मॉड्यूल [SWS_PduR_00160] में स्थानांतरित करता है। रूटिंग केवल कॉन्फ़िगर किए गए रूटिंग पाथों के साथ की जाती है [SWS_PduR_00162]। एक पाथ दो विशिष्ट विवरणों द्वारा विशिष्ट रूप से निर्धारित होता है: PduR कॉन्फ़िगरेशन से स्रोत I-PDU-ID और कॉल किए गए गंतव्य मॉड्यूल के कॉन्फ़िगरेशन से गंतव्य I-PDU-IDs [SWS_PduR_00161]। इसलिए PduR का मुख्य कार्य I-PDU-IDs का रूपांतरण है। यह ट्रांसमिशन पाथ के साथ-साथ पुष्टिकरण और इंडिकेशन पाथ पर भी लागू होता है [SWS_PduR_00766]। प्रत्येक मॉड्यूल अपने हैंडल-IDs का चयन स्वयं करता है; कॉन्फ़िगरेशन उन्हें “ग्लोबल” Pdu ECU Configuration चित्र 3.13 पृ. 192 के माध्यम से लिंक करता है।

PduR के ऊपर Com और DCM जैसे मॉड्यूल स्थित हैं। इसके नीचे CanIf, FrIf और LinIf जैसे Communication Interfaces और CanTp, FrTp और LinTp SWS PDU Router पृ. 24 जैसे ट्रांसपोर्ट प्रोटोकॉल स्थित हैं। इंटरफ़ेस जेनेरिक रूप से परिभाषित हैं। प्लेसहोल्डर्स <Up>, <Lo> और <LoTp> को PduRBswModules में संदर्भित मॉड्यूल कॉन्फ़िगरेशन के माध्यम से प्रतिस्थापित किया जाता है, CDDs के मामले में उनके apiServicePrefix [SWS_PduR_00504] SWS PDU Router चित्र 10.2 पृ. 95 के माध्यम से। यदि कोई निचला मॉड्यूल TP और IF दोनों का समर्थन करता है, तो इनफ़िक्स Tp और If जुड़ जाते हैं [SWS_PduR_00800]।

kontext cluster_oben Obere Module (<Up>) cluster_if Communication Interfaces (<Lo>) cluster_tp Transportprotokolle (<LoTp>) Com Com PduR PduR Routing-Tabellen, I-PDU-ID-Umsetzung, Gateway-Puffer Com->PduR PduR_ComTransmit Dcm Dcm Dcm->PduR PduR_<User:Up>Transmit BswM BswM BswM->PduR PduR_EnableRouting, PduR_DisableRouting PduR->Com Com_RxIndication, Com_TxConfirmation, Com_TriggerTransmit PduR->Dcm Dcm_StartOfReception, Dcm_CopyRxData, Dcm_CopyTxData, Dcm_TpRxIndication, Dcm_TpTxConfirmation Det Det PduR->Det डेवलपमेंट और रनटाइम त्रुटियाँ CanIf CanIf PduR->CanIf <Lo>_Transmit FrIf FrIf PduR->FrIf LinIf LinIf PduR->LinIf CanTp CanTp PduR->CanTp <LoTp>_Transmit FrTp FrTp PduR->FrTp LinTp LinTp (in LinIf) PduR->LinTp CanIf->PduR PduR_<User:Lo>RxIndication, TxConfirmation, TriggerTransmit CanTp->PduR PduR_<User:LoTp>StartOfReception, CopyRxData, CopyTxData, RxIndication, TxConfirmation

संदर्भ आरेख: PduR ऊपरी मॉड्यूल और निचले IF- अथवा TP-मॉड्यूल के बीच स्थित है; BswM रूटिंग पाथ समूहों को स्विच करता है, त्रुटियाँ DET को भेजी जाती हैं। स्रोत: [SWS_PduR_00504], [SWS_PduR_00615], [SWS_PduR_00119], SWS PDU Router पृ. 16

यदि PduRZeroCostOperation सेट है और सभी रूटिंग पाथ Pre-Compile हैं, तो पड़ोसी मॉड्यूल एक-दूसरे को सीधे कॉल कर सकते हैं [SWS_PduR_00287]। यदि कम से कम एक पाथ Pre-Compile नहीं है, तो जनरेटर को एक त्रुटि रिपोर्ट करनी चाहिए [SWS_PduR_00619] SWS PDU Router पृ. 56। जनरेटर को अप्रयुक्त सुविधाओं को ऑप्टिमाइज़ करके हटा देना चाहिए, यानी TP, IF, गेटवे और FIFO [SWS_PduR_00764]।

लाइफ़साइकिल: PDUR_UNINIT से PduR_Init के माध्यम से PDUR_ONLINE तक

PduR में ठीक एक स्टेट मशीन होती है [SWS_PduR_00644]। इसमें PduR_StateType [SWS_PduR_00324] [SWS_PduR_00742] से PDUR_UNINIT और PDUR_ONLINE अवस्थाएँ होती हैं। पावर ऑन होने के बाद मॉड्यूल PDUR_UNINIT [SWS_PduR_00325] में होता है। सफल PduR_Init के बाद यह PDUR_ONLINE [SWS_PduR_00326] में बदल जाता है। रूटिंग केवल PDUR_ONLINE [SWS_PduR_00328] में होती है; PDUR_UNINIT में कुछ भी रूट नहीं किया जाता है [SWS_PduR_00330] SWS PDU Router चित्र 7.2 पृ. 53। एक पुराना आरेख त्रुटिपूर्ण इनिशियलाइज़ेशन SWS PDU Router (alt) पृ. 30 के बाद अतिरिक्त रूप से एक स्थिति PDUR_REDUCED दिखाता है। R20-11 के लिए यह स्थिति मान्य नहीं है, क्योंकि यहाँ केवल दो अवस्थाएँ हैं।

zustaende Powerup Powerup UNINIT PDUR_UNINIT कोई रूटिंग नहीं; PduR_Init और PduR_GetVersionInfo के अलावा अन्य APIs PDUR_E_UNINIT रिपोर्ट करते हैं (PduRDevErrorDetect होने पर) Powerup->UNINIT immediate ONLINE PDUR_ONLINE रूटिंग तालिकाओं के अनुसार रूटिंग UNINIT->ONLINE PduR_Init(ConfigPtr) बिना किसी त्रुटि के: बफ़र मुक्त करें, डिफ़ॉल्ट मान सेट करें, कॉन्फ़िगरेशन के अनुसार रूटिंग पथ समूहों को सक्रिय करें ONLINE->ONLINE erneuter PduR_Init: PDUR_E_UNINIT an DET

स्थिति आरेख: पावर-अप के बाद PduR PDUR_UNINIT में होता है और रूट नहीं करता; केवल त्रुटि-रहित PduR_Init के बाद ही यह PDUR_ONLINE में रूट करता है। स्रोत: [SWS_PduR_00325], [SWS_PduR_00326], [SWS_PduR_00119], [SWS_PduR_00100], SWS PDU Router चित्र 7.2 पृ. 53

PduR_Init(ConfigPtr) समकालिक और नॉन-रीएंट्रेंट है [SWS_PduR_00334]। यह फ़ंक्शन तीन कार्य करता है:

  • यह सभी बफ़र मुक्त करता है [SWS_PduR_00645]।
  • यह ट्रांसमिशन बफ़र्स के कॉन्फ़िगर किए गए डिफ़ॉल्ट मान सेट करता है [SWS_PduR_00308]।
  • यह Enable-at-start पैरामीटर [SWS_PduR_00709] के अनुसार रूटिंग पाथ समूहों को सक्रिय करता है। बाद के संस्करण इस पैरामीटर को PduRIsEnabledAtInit SWS PDU Router पृ. 131 कहते हैं।

इनिशियलाइज़ेशन से पहले, PduR_Init और PduR_GetVersionInfo को छोड़कर सभी फ़ंक्शन त्रुटि PDUR_E_UNINIT की रिपोर्ट करते हैं, बशर्ते PduRDevErrorDetect सक्रिय हो [SWS_PduR_00119]। PduR_GetVersionInfo [SWS_PduR_00338] को PduRVersionInfoApi के माध्यम से सक्षम किया जाता है System Template पृ. 656।

Post-Build डेटा PduR_PBConfigType में स्थित होता है और PduR_PBcfg.c में कार्यान्वित होता है [SWS_PduR_00241] [SWS_PduR_00743]। वे PduRConfigurationId के माध्यम से विशिष्ट रूप से पहचाने जाते हैं [SWS_PduR_00281]। यह पहचानकर्ता PduR_GetConfigurationId [SWS_PduR_00341] [SWS_PduR_00280] को uint16-आधारित PduR_PBConfigIdType के रूप में प्रदान करता है; एक ECU में कई चयन योग्य कॉन्फ़िगरेशन शामिल हो सकते हैं [SWS_PduR_00771]। रूटिंग तालिकाओं को Post-Build समय पर अपडेट किया जा सकता है [SWS_PduR_00295], हालाँकि केवल गैर-प्रारंभीकृत (uninitialized) स्थिति में [SWS_PduR_00296]। नई कॉन्फ़िगरेशन के साथ मेमोरी की आवश्यकता बढ़ सकती है और इसलिए डिज़ाइन समय पर इसकी योजना बनाई जानी चाहिए SWS PDU Router पृ. 160।

Communication Interface पाथ: Transmit, TriggerTransmit और पुष्टिकरण

यदि कोई ऊपरी मॉड्यूल PduR_<User:Up>Transmit को कॉल करता है [SWS_PduR_00406], तो PduR प्रत्येक गंतव्य [SWS_PduR_00625] के लिए <Lo>_Transmit को कॉल करता है। ऐसा करते समय यह बफ़र नहीं करता [SWS_PduR_00629]। रिटर्न मान के लिए निम्नलिखित लागू होता है:

  • सिंगलकास्ट के मामले में रिटर्न मान अपरिवर्तित आगे भेज दिया जाता है [SWS_PduR_00432] [SWS_PduR_00626]।
  • Multicast के मामले में E_OK [SWS_PduR_00218] के लिए एक सफल गंतव्य पर्याप्त होता है।

मल्टीकास्ट के गंतव्य या तो सभी इंटरफ़ेस होते हैं या सभी ट्रांसपोर्ट प्रोटोकॉल, कभी भी मिश्रित नहीं [SWS_PduR_00633]।

CanIf डेटा को सीधे Transmit SWS PDU Router चित्र 9.5 पृ. 100 पर कॉपी करता है। इसके विपरीत, FrIf और LinIf इसे बाद में PduR_<User:Lo>TriggerTransmit [SWS_PduR_00369] के माध्यम से पुनर्प्राप्त करते हैं। PduR इस कॉल को <Up>_TriggerTransmit [SWS_PduR_00430] पर अग्रेषित करता है और इसका रिटर्न मान वापस देता है [SWS_PduR_00661] SWS PDU Router चित्र 9.6 पृ. 101। PduR_<User:Lo>TxConfirmation [SWS_PduR_00365] को परिणाम सहित <Up>_TxConfirmation [SWS_PduR_00627] पर अग्रेषित किया जाता है। मल्टीकास्ट के मामले में यह अंतिम पुष्टिकरण [SWS_PduR_00589] के बाद ही होता है।

Communication Interfaces के माध्यम से I-PDU भेजनाComPduRCanIfFrIfPduR_ComTransmit(TxPduId, PduInfoPtr)Quell-I-PDU-ID in Ziel-I-PDU-ID umsetzenaltप्रत्यक्ष डेटा प्रावधान वाला गंतव्य (CanIf)CanIf_Transmit(PduId, PduInfoPtr)copy data()Std_ReturnTypeTriggerTransmit वाला गंतव्य (FrIf, LinIf)FrIf_Transmit(PduId, PduInfoPtr)set flag()Std_ReturnTypeरिटर्न मान (सिंगलकास्ट अपरिवर्तित)Use Case: बाद में: FlexRay चक्र में ट्रांसमिशन समयPduR_<User:Lo>TriggerTransmit(TxPduId, PduInfoPtr)Com_TriggerTransmit(TxPduId, PduInfoPtr)copy buffer()E_OK, SduLengthरिटर्न मान अपरिवर्तितUse Case: ट्रांसमिशन के बादPduR_<User:Lo>TxConfirmation(TxPduId, result)Com_TxConfirmation(TxPduId, result)CanIf के माध्यम से पुष्टिकरण समान रूप से आगे बढ़ता है;मल्टीकास्ट के मामले में केवल अंतिम पुष्टिकरण के बाद

अनुक्रम आरेख: सीधे डेटा प्रावधान (CanIf) के साथ या TriggerTransmit (FrIf) के माध्यम से विलंबित डेटा पुनर्प्राप्ति के साथ Com से ट्रांसमिशन, प्रत्येक के बाद पुष्टिकरण सहित। स्रोत: [SWS_PduR_00625], [SWS_PduR_00430], [SWS_PduR_00627], SWS PDU Router चित्र 9.5 पृ. 100, SWS PDU Router चित्र 9.6 पृ. 101

रिसेप्शन पर PduR_<User:Lo>RxIndication [SWS_PduR_00362] प्रत्येक ऊपरी गंतव्य [SWS_PduR_00621] के लिए <Up>_RxIndication का कॉल करता है; 1:n समर्थित है [SWS_PduR_00164] SWS PDU Router चित्र 9.1 पृ. 97। PduR लंबाई की जांच न तो स्थानीय रिसेप्शन [SWS_PduR_00744] पर करता है और न ही स्थानीय ट्रांसमिशन [SWS_PduR_00745] पर।

ट्रांसपोर्ट प्रोटोकॉल पाथ: DCM और TP मॉड्यूल के बीच खंडित I-PDUs

TP ट्रांसमिशन के दौरान PduR प्रत्येक गंतव्य के लिए <LoTp>_Transmit को कॉल करता है [SWS_PduR_00634]। TP मॉड्यूल PduR_<User:LoTp>CopyTxData के माध्यम से डेटा को खंडों में प्राप्त करता है [SWS_PduR_00518]। PduR प्रत्येक अनुरोध को <Up>_CopyTxData पर अग्रेषित करता है [SWS_PduR_00299] और रिटर्न मान को [SWS_PduR_00676] SWS PDU Router चित्र 9.9 पृ. 104 के ज़रिए पास करता है।

मल्टीकास्ट के मामले में ऊपरी लेयर को वही डेटा कई बार प्रदान करना पड़ता है। पहले गंतव्य का अनुरोध TP_CONFPENDING के साथ ऊपरी लेयर को जाता है [SWS_PduR_00631], अन्य सभी TP_DATARETRY के साथ [SWS_PduR_00632]। अंतिम पुष्टिकरण के बाद ऊपरी लेयर को एक एकल <Up>_TpTxConfirmation प्राप्त होती है। यह E_OK रिपोर्ट करती है, यदि कम से कम एक गंतव्य ने E_OK रिपोर्ट किया हो [SWS_PduR_00765] SWS PDU Router चित्र 9.10 पृ. 83।

Dcm से TP-मल्टीकास्ट ट्रांसमिशनDcmPduRCanTpFrTpPduR_<User:Up>Transmit(TxPduId, PduInfoPtr)CanTp_Transmit(PduId, PduInfoPtr)Std_ReturnTypeFrTp_Transmit(PduId, PduInfoPtr)Std_ReturnTypeStd_ReturnTypeloopट्रांसमिशन की प्रत्येक स्थिति के लिएPduR_<User:LoTp>CopyTxData(id, info, retry, availableDataPtr)Dcm_CopyTxData(…)TpDataState = TP_CONFPENDINGBufReq_ReturnTypeBufReq_ReturnTypePduR_<User:LoTp>CopyTxData(id, info, retry, availableDataPtr)Dcm_CopyTxData(…)TpDataState = TP_DATARETRYBufReq_ReturnTypeBufReq_ReturnTypePduR_<User:LoTp>TxConfirmation(id, result)PduR_<User:LoTp>TxConfirmation(id, result)अंतिम पुष्टिकरण के बाद:E_OK, यदि कम से कम एक गंतव्य ने E_OK रिपोर्ट कियाDcm_TpTxConfirmation(id, result)

अनुक्रम आरेख (Sequence diagram): DCM से TP मल्टीकास्ट के दौरान PduR प्रत्येक गंतव्य के लिए TP_CONFPENDING या TP_DATARETRY के साथ उसी डेटा की क्वेरी करता है और पुष्टिकरणों को संयोजित करता है। स्रोत: [SWS_PduR_00634], [SWS_PduR_00631], [SWS_PduR_00632], [SWS_PduR_00765], SWS PDU Router चित्र 9.10 पृ. 83

TP रिसेप्शन PduR_<User:LoTp>StartOfReception से शुरू होता है [SWS_PduR_00507]। PduR इसे <Up>_StartOfReception पर अग्रेषित करता है [SWS_PduR_00549] और इसके रिटर्न मान को अपरिवर्तित लौटाता है [SWS_PduR_00623]। इसके बाद दो अग्रेषण होते हैं:

SduLength 0 के साथ एक कॉल उपलब्ध बफ़र या उपलब्ध डेटा की क्वेरी करता है [SWS_PduR_00740] SWS PDU Router चित्र 9.4 पृ. 99। PduR निरस्तीकरण (aborts) को प्रत्येक गंतव्य तक अग्रेषित करता है। PduR_<User:Up>CancelTransmit की वजह से <Lo>_CancelTransmit या <LoTp>_CancelTransmit होता है [SWS_PduR_00769] [SWS_PduR_00723] [SWS_PduR_00724]। PduR_<User:Up>CancelReceive की वजह से <LoTp>_CancelReceive होता है [SWS_PduR_00727]।

TP-Empfang von CanTp an DcmCanTpPduRDcmPduR_<User:LoTp>StartOfReception(id, info, TpSduLength, bufferSizePtr)Dcm_StartOfReception(…)BUFREQ_OK, bufferSizePtrरिटर्न मान अपरिवर्तितloopप्रत्येक अतिरिक्त सेगमेंट के लिएPduR_<User:LoTp>CopyRxData(id, info, bufferSizePtr)Dcm_CopyRxData(…)copy data()BufReq_ReturnTypeBufReq_ReturnTypePduR_<User:LoTp>RxIndication(id, result)Dcm_TpRxIndication(id, result)

अनुक्रम आरेख: CanTp से DCM तक TP रिसेप्शन के दौरान PduR StartOfReception, CopyRxData लूप और RxIndication को 1:1 पास करता है। स्रोत: [SWS_PduR_00549], [SWS_PduR_00428], [SWS_PduR_00429], SWS PDU Router चित्र 9.4 पृ. 99

गेटवे संचालन: तत्काल अग्रेषण, FIFO बफ़र और ऑन-द-फ़्लाई TP

Communication Interfaces के बीच PduR 1:n [SWS_PduR_00436] रूट करता है और तत्काल अग्रेषण के साथ, यानी बिना किसी अपनी दर निर्माण (rate generation) के [SWS_PduR_00437]। केवल IF↔IF या TP↔TP को गेटवे किया जाता है [SWS_PduR_00638]। आगे भेजी गई लंबाई के लिए निम्नलिखित लागू होता है:

  • बिना बफ़रिंग के PduR प्राप्त लंबाई और कॉन्फ़िगर की गई गंतव्य लंबाई का न्यूनतम मान आगे भेजता है [SWS_PduR_00783]।
  • बफ़रिंग के साथ वह अधिकतम PduRPduMaxLength कॉपी करता है और शेष को निरस्त कर देता है [SWS_PduR_00746]।

एक I-PDU एक साथ स्थानीय रूप से Com पर जा सकती है और दूसरे CAN पर अग्रेषित की जा सकती है SWS PDU Router चित्र 9.14 पृ. 114।

गंतव्य को डेटा कैसे मिलता है, यह PduRDestPduDataProvision द्वारा निर्धारित होता है:

  • PDUR_DIRECT के मामले में गंतव्य ट्रांसमिट के समय स्वयं डेटा कॉपी करता है [SWS_PduR_00303]।
  • PDUR_TRIGGERTRANSMIT के मामले में PduR बफ़र करता है और TriggerTransmit की प्रतीक्षा करता है [SWS_PduR_00306] SWS PDU Router चित्र 9.13 पृ. 108।

प्रति गंतव्य I-PDU एक FIFO कॉन्फ़िगर करने योग्य है [SWS_PduR_00307]। FIFO व्यवहार PduRQueueDepth के 1 से अधिक होने पर लागू होता है [SWS_PduR_00785]। गतिविधि आरेख (Activity diagram) इनपुट और आउटपुट नियमों को सारांशित करता है [SWS_PduR_00665] [SWS_PduR_00666]।

gateway_fifo rx बफ़र किए गए गेटवे पाथ पर PduR_<SrcLo>RxIndication prov PduRDestPduDataProvision? rx->prov dleer क्या FIFO खाली है और कोई TxConfirmation लंबित नहीं है? prov->dleer PDUR_DIRECT tleer FIFO leer? prov->tleer PDUR_TRIGGERTRANSMIT ddirekt <DstLo>_Transmit direkt aufrufen; FIFO bleibt leer dleer->ddirekt हाँ voll FIFO voll? dleer->voll नहीं tkopie I-PDU in FIFO kopieren, <DstLo>_Transmit aufrufen tleer->tkopie हाँ tleer->voll नहीं flush FIFO खाली करें, DET को PDUR_E_PDU_INSTANCES_LOST; नई I-PDU को खाली FIFO की तरह संभालें voll->flush हाँ einreihen I-PDU को नवीनतम प्रविष्टि के रूप में कतारबद्ध करें voll->einreihen नहीं tt PduR_<DstLo>TriggerTransmit ttleer FIFO leer? tt->ttleer ttnok E_NOT_OK लौटाएं ttleer->ttnok हाँ ttok सबसे पुरानी प्रविष्टि को कॉपी करें और हटाएं; FIFO खाली नहीं है: सबसे पुरानी I-PDU के साथ <DstLo>_Transmit ttleer->ttok नहीं conf PduR_<DstLo>TxConfirmation (direkte Datenbereitstellung) confnext FIFO खाली नहीं है: सबसे पुरानी I-PDU के साथ <DstLo>_Transmit, उसके बाद हटाएं conf->confnext

गतिविधि आरेख: डेटा उपलब्धता और FIFO भरण स्तर (fill level) के आधार पर एक गेटवे की गई I-PDU तुरंत भेजी जाती है, कतारबद्ध की जाती है या ओवरफ़्लो के बाद फिर से शुरू की जाती है; TriggerTransmit और TxConfirmation FIFO को खाली करते हैं। स्रोत: [SWS_PduR_00665], [SWS_PduR_00793], [SWS_PduR_00786], [SWS_PduR_00787], [SWS_PduR_00255], [SWS_PduR_00669], [SWS_PduR_00666], [SWS_PduR_00667], [SWS_PduR_00662]

TP गेटवे के लिए दो विधियाँ हैं। Direct Gatewaying में <DstLoTp>_Transmit, E_OK के साथ RxIndication में शुरू होता है [SWS_PduR_00551]। On-the-fly-Gatewaying में अग्रेषण (forwarding) पहले ही शुरू हो जाता है, जैसे ही PduRTpThreshold पूरा हो जाता है [SWS_PduR_00317]। उस स्थिति में केवल एक गंतव्य की अनुमति होती है [SWS_PduR_00708], और पहले से भेजे गए डेटा को दोहराया नहीं जाता है [SWS_PduR_00707] SWS PDU Router पृ. 58। PduR बफ़र का चयन आकार के आधार पर करता है:

  • यदि संदेश PduRPduMaxLength में फ़िट बैठता है, तो वह समर्पित बफ़र का उपयोग करता है [SWS_PduR_00797]।
  • अन्यथा वह गतिशील रूप से PduRTxBuffer से एक बफ़र प्राप्त करता है [SWS_PduR_00798]।

TxConfirmation के साथ वह बफ़र को मुक्त करता है [SWS_PduR_00637]। यदि I-PDU को अतिरिक्त रूप से स्थानीय रूप से प्राप्त किया जाना है, तो PduR <UpTp>_StartOfReception, <UpTp>_CopyRxData और <UpTp>_RxIndication को इसी क्रम में कॉल करता है [SWS_PduR_00789]। इसके लिए उसे बफ़र करना पड़ता है, क्योंकि DCM को गेटवे के बारे में कुछ पता नहीं होता SWS PDU Router पृ. 112।

CAN1 से CAN2 तक TP-I-PDU का ऑन-द-फ़्लाई गेटवेCanTp (CAN1, Quelle)PduRCanTp (CAN2, Ziel)PduR_<User:LoTp>StartOfReception(id, info, TpSduLength, bufferSizePtr)बफ़र चुनें: TpSduLength ≤ PduRPduMaxLength होने पर समर्पित,अन्यथा PduRTxBuffer से गतिशील रूप सेBUFREQ_OK (बफ़र के बिना: BUFREQ_E_OVFL)loopbis PduRTpThreshold erreichtPduR_<User:LoTp>CopyRxData(id, info, bufferSizePtr)copy data()BUFREQ_OKCanTp_Transmit(PduId, PduInfoPtr)Std_ReturnTypeloopशेष सेगमेंट्स, इंटरलीव्डPduR_<User:LoTp>CopyRxData(…)BUFREQ_OKPduR_<User:LoTp>CopyTxData(id, info, retry, availableDataPtr)BUFREQ_OKPduR_<User:LoTp>RxIndication(id, result)PduR_<User:LoTp>TxConfirmation(id, result)इस गंतव्य के लिए बफ़र मुक्त करेंकेवल एक गंतव्य-TP-मॉड्यूल अनुमत है;पहले से भेजे जा चुके डेटा का कोई पुनः प्रेषण नहीं

अनुक्रम आरेख: दो CAN नेटवर्क के बीच ऑन-द-फ़्लाई गेटवे में आगे ट्रांसमिशन सीमा तक पहुँचने पर ही शुरू हो जाता है; रिसेप्शन और ट्रांसमिशन इंटरलीव्ड चलते हैं। स्रोत: [SWS_PduR_00317], [SWS_PduR_00708], [SWS_PduR_00797], [SWS_PduR_00799], [SWS_PduR_00637], SWS PDU Router चित्र 9.15 पृ. 110

रूटिंग पाथ समूह: रनटाइम पर रूटिंग स्विच करना

रूटिंग पाथ समूह नेटवर्क या PDU प्रकार के अनुसार पाथ्स को बंडल करते हैं। इन्हें आमतौर पर BswM द्वारा स्विच किया जाता है SWS PDU Router पृ. 69। इसके लिए PduR_EnableRouting(id) [SWS_PduR_00615] और PduR_DisableRouting(id, initialize) [SWS_PduR_00617] का उपयोग किया जाता है; पहचानकर्ता प्रकार uint16 का है [SWS_PduR_00654]। सक्रियण तुरंत प्रभावी होता है [SWS_PduR_00715]। निष्क्रिय करते समय निम्नलिखित नियम लागू होते हैं:

  • initialize तय करता है कि क्या एकल बफ़र्स को डिफ़ॉल्ट मान पर रीसेट किया जाए [SWS_PduR_00617]।
  • रोके गए पाथ्स के FIFOs खाली कर दिए जाते हैं, और PduR PDUR_E_PDU_INSTANCES_LOST रिपोर्ट करता है [SWS_PduR_00663]।
  • APIs, जिन्हें किसी निष्क्रिय पाथ की I-PDU-ID के साथ कॉल किया जाता है, बिना किसी आगे की कार्रवाई के E_NOT_OK लौटाते हैं [SWS_PduR_00717] [SWS_PduR_00710] [SWS_PduR_00726]।

बाद के संस्करण प्रभावित फ़ंक्शंस को स्पष्ट रूप से सूचीबद्ध करते हैं SWS PDU Router पृ. 69।

routinggruppen aufruf PduR_EnableRouting(id) अथवा PduR_DisableRouting(id, initialize) exist Routing-Pfadgruppe id existiert? aufruf->exist det PduRDevErrorDetect aktiv? exist->det नहीं art Aufruf? exist->art हाँ meld PDUR_E_ROUTING_PATH_GROUP_ID_INVALID melden det->meld हाँ keine बिना किसी कार्रवाई के वापसी det->keine नहीं meld->keine ein समूह को तुरंत सक्रिय करें: बाद के ट्रांसमिट को सीधे पूरा किया जाएगा art->ein EnableRouting aus Gruppe deaktivieren art->aus DisableRouting fifo FIFO युक्त पथ (PduRQueueDepth > 1): FIFO रिक्त करें, PDUR_E_PDU_INSTANCES_LOST aus->fifo init initialize = TRUE: एकल बफ़र को डिफ़ॉल्ट मान पर सेट करें initialize = FALSE: वर्तमान मान बनाए रखें fifo->init gesperrt निष्क्रिय किए गए पथ की I-PDU-ID वाले APIs: बिना किसी अतिरिक्त कार्रवाई के E_NOT_OK init->gesperrt

गतिविधि आरेख: अज्ञात समूह-ID के मामले में कॉल बिना किसी कार्रवाई के वापस आ जाता है (संभवतः DET संदेश के साथ); अन्यथा समूह को FIFO को खाली करने और बफ़र प्रबंधन के साथ तुरंत सक्रिय या निष्क्रिय कर दिया जाता है। स्रोत: [SWS_PduR_00647], [SWS_PduR_00648], [SWS_PduR_00716], [SWS_PduR_00649], [SWS_PduR_00715], [SWS_PduR_00663], [SWS_PduR_00717]

Mode Management Guide उन I-PDUs के लिए पाथ समूहों की अनुशंसा करता है जिनमें Com-I-PDU समूह नहीं होता, जैसे कि LdCom के लिए। स्विचिंग BswM नियमों के माध्यम से की जाती है, उदाहरण के लिए Partial-Network स्थिति के आधार पर Mode Management Guide पृ. 50। BswM एक्शन BswMPduRouterControl इसके लिए PduR_EnableRouting या PduR_DisableRouting को कॉल करता है SWS BSW Mode Manager पृ. 145। स्थानीय मॉड्यूल पर n:1 रूटिंग के मामले में रनटाइम पर अधिकतम एक पाथ सक्रिय हो सकता है System Template पृ. 736 [SWS_PduR_00615]।

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

विकास त्रुटियों (development errors) को [SWS_PduR_00100] परिभाषित करता है। वे केवल तभी रिपोर्ट की जाती हैं जब PduRDevErrorDetect सक्रिय हो [SWS_PduR_00119] [SWS_PduR_00221]। PduR उत्पादन त्रुटियों की रिपोर्ट नहीं करता है SWS PDU Router पृ. 60।

त्रुटि कोडमानट्रिगर
PDUR_E_INIT_FAILED0x00अमान्य कॉन्फ़िगरेशन पॉइंटर
PDUR_E_UNINIT0x01आरंभीकरण (initialization) से पहले API या PDUR_UNINIT के बाहर PduR_Init
PDUR_E_PDU_ID_INVALID0x02अमान्य PDU पहचानकर्ता
PDUR_E_ROUTING_PATH_GROUP_ID_INVALID0x08Enable/Disable के दौरान अज्ञात समूह [SWS_PduR_00648] [SWS_PduR_00649]
PDUR_E_PARAM_POINTER0x09तर्क (argument) के रूप में नल पॉइंटर

रनटाइम त्रुटि PDUR_E_PDU_INSTANCES_LOST तीन मामलों में उत्पन्न होती है:

  • अगले रिसेप्शन पर एक भरा हुआ FIFO खाली कर दिया जाता है [SWS_PduR_00255] [SWS_PduR_00670]।
  • FIFO पाथ पर <DstLo>_Transmit प्राप्त होता है E_NOT_OK। फिर प्रविष्टि को हटा दिया जाता है और अगला भेजा जाता है [SWS_PduR_00788] [SWS_PduR_00807]।
  • FIFO वाला एक पाथ रोक दिया जाता है [SWS_PduR_00663]।

इसके लिए अनिवार्य इंटरफ़ेस के रूप में PduR Det_ReportRuntimeError का उपयोग करता है [SWS_PduR_91001]।

IF पाथ्स पर PduR त्रुटियों को स्वयं हैंडल नहीं करता है। वह रिटर्न मानों को स्रोत तक पास करता है [SWS_PduR_00626] SWS PDU Router पृ. 46 और किसी ट्रांसमिशन को नहीं दोहराता है [SWS_PduR_00256]। TP पाथ्स पर भी त्रुटियाँ रिटर्न मान के माध्यम से ऊपरी लेयर को जाती हैं [SWS_PduR_00700] SWS PDU Router पृ. 49। एकाधिक गंतव्यों के मामले में E_OK केवल तभी लागू होता है जब सभी गंतव्य E_OK लौटाते हैं [SWS_PduR_00701]। यह नियम TP मल्टीकास्ट से संबंधित माना जा सकता है, जबकि IF मल्टीकास्ट के लिए [SWS_PduR_00218] लागू होता है। त्रुटिपूर्ण TP-RxIndications को PduR केवल अग्रेषित करता है [SWS_PduR_00207]। प्रश्न Q-4bd42fd8dc77ccf2 (खुला)

TP गेटवे के लिए विशिष्ट नियम लागू होते हैं:

  • यदि RxIndication E_OK की रिपोर्ट नहीं करता है, तो PduR प्रोसेसिंग रोक देता है [SWS_PduR_00689]।
  • यदि ऑन-द-फ़्लाई गेटवे में बफ़र स्पेस की कमी होती है, तो वह BUFREQ_E_NOT_OK प्रदान करता है और निरस्त कर देता है [SWS_PduR_00687]।
  • यदि बिल्कुल कोई बफ़र उपलब्ध नहीं है, तो वह BUFREQ_E_OVFL प्रदान करता है [SWS_PduR_00799]।
  • यदि कोई एक गंतव्य विफल हो जाता है, तो शेष चालू रहते हैं [SWS_PduR_00803]। यदि सभी विफल हो जाते हैं, तो वह रिसेप्शन पक्ष को रोक देता है [SWS_PduR_00804]।
  • यदि स्थानीय रिसेप्शन विफल रहता है, तो वह ऊपरी लेयर के साथ सत्र समाप्त करता है [SWS_PduR_00790] या RxIndication के माध्यम से E_NOT_OK रिपोर्ट करता है [SWS_PduR_00791] [SWS_PduR_00792]।

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

निम्नलिखित संदर्भ इस गाइड के कथनों का समर्थन करते हैं। विनिर्देश के अध्याय 9 में अनुक्रम इन्हें स्पष्ट करते हैं, जैसे SWS PDU Router चित्र 9.5 पृ. 100।

SWS PDU Router (R20-11) की आवश्यकताओं और संबंधित दस्तावेज़ अनुभागों पर आधारित AI-जनित गाइड; केवल लिंक की गई आवश्यकताएँ ही प्रामाणिक हैं। कृपया व्याख्या के रूप में चिह्नित कथनों को विनिर्देश के आधार पर सत्यापित करें।

PDU Router (PduR)

The PDU Router routes I-PDUs between communication interfaces, transport protocols, and upper layers without payload inspection.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

फ़ंक्शन PduR_Init [SWS_PduR_00334] 📄 PDF

void PduR_Init (const PduR_PBConfigType* ConfigPtr);

Initializes the PDU Router

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 8eca52c90f1c उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग

सिंक्रोनस और नॉन-रीएंट्रेंट फ़ंक्शन PduR_Init PDU राउटर को प्रारंभ करता है [SWS_PduR_00334]। पैरामीटर के रूप में, यह ConfigPtr के साथ मॉड्यूल के पोस्ट-बिल्ड कॉन्फ़िगरेशन (PduR_PBConfigType) के लिए एक पॉइंटर स्वीकार करता है और कोई रिटर्न मान नहीं देता है [SWS_PduR_00334]। आरंभीकरण के भाग के रूप में, PduR_Init सभी PDU ट्रांसमिट बफ़र्स को कॉन्फ़िगर किए गए डिफ़ॉल्ट मानों से पहले से भर देता है [SWS_PduR_00308]।

परस्पर क्रिया और अनुक्रम शर्तें

पावर ऑन होने के बाद, मॉड्यूल प्रारंभ में स्थिति PDUR_UNINIT में होता है [SWS_PduR_00325]। मॉड्यूल के अन्य सभी फ़ंक्शनों से पहले PduR_Init को कॉल किया जाना चाहिए, क्योंकि अन्य इंटरफ़ेस - PduR_GetVersionInfo के अपवाद के साथ - अन-आरंभीकृत स्थिति में DET के माध्यम से त्रुटि PDUR_E_UNINIT की रिपोर्ट करते हैं, बशर्ते कि PduRDevErrorDetect सक्रिय हो [SWS_PduR_00119]।

त्रुटि हैंडलिंग और समवर्तीता

यदि PduR_Init को PDUR_UNINIT के अलावा किसी अन्य स्थिति में कॉल किया जाता है, तो इसे PDUR_E_UNINIT के रूप में माना जाता है [SWS_PduR_00100]। किसी अमान्य कॉन्फ़िगरेशन पॉइंटर या शून्य पॉइंटर पास करने की स्थिति में, त्रुटि कोड क्रमशः PDUR_E_INIT_FAILED या PDUR_E_PARAM_POINTER लागू होते हैं [SWS_PduR_00100]। रीएंट्रेंसी की कमी के कारण, इनिशियलाइज़ेशन रूटीन का कोई समानांतर कॉल नहीं होना चाहिए [SWS_PduR_00334]।

यह पाठ AUTOSAR विशिष्टता R20-11 के आधार पर एक AI द्वारा तैयार किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन PduR_EnableRouting [SWS_PduR_00615] 📄 PDF

void PduR_EnableRouting (PduR_RoutingPathGroupIdType id);

Enables a routing path group.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: e3aad02fdb37 उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

तुल्यकालिक फ़ंक्शन PduR_EnableRouting (Service-ID 0xf3) PDU राउटर में एक परिभाषित रूटिंग पाथ समूह के लक्षित सक्रियण का कार्य करता है ([SWS_PduR_00615])। एकमात्र पैरामीटर के रूप में यह प्रकार PduR_RoutingPathGroupIdType का समूह पहचानकर्ता id लेता है, जो PDU राउटर के कॉन्फ़िगरेशन में संबंधित रूटिंग पाथ समूह को संबोधित करता है ([SWS_PduR_00615])। कॉल का कोई रिटर्न मान नहीं होता है और यह हेडर फ़ाइल PduR.h के माध्यम से उपलब्ध है ([SWS_PduR_00615])।

त्रुटिरहित उपयोग के लिए सिस्टम स्थितियाँ और पैरामीटर सीमाएं निर्णायक हैं: कॉल से पहले PduR मॉड्यूल पूरी तरह से प्रारंभ होना चाहिए, क्योंकि अप्रारंभीकृत स्थिति में निष्पादन त्रुटि PDUR_E_UNINIT को ट्रिगर करता है ([SWS_PduR_00100])। यदि फ़ंक्शन PduR_EnableRouting को कोई अमान्य रूटिंग टेबल या पाथ समूह पहचानकर्ता पास किया जाता है, तो यह त्रुटि मान 0x08 के साथ त्रुटि PDUR_E_ROUTING_PATH_GROUP_ID_INVALID की ओर ले जाता है ([SWS_PduR_00100])।

समवर्तीता के संबंध में, इंटरफ़ेस को रीएंट्रेंट घोषित किया गया है ([SWS_PduR_00615]), जिससे पाथ समूहों को नियंत्रित करने के लिए समानांतर कॉल्स की सैद्धांतिक रूप से अनुमति है। समग्र प्रणाली में, फ़ंक्शन संचार संबंधों के गतिशील सक्रियण का कार्य करता है; संभवतः यह सेवा आमतौर पर मोड मैनेजर जैसे उच्च-स्तरीय उदाहरणों द्वारा रनटाइम पर सिस्टम या नेटवर्क स्थितियों के आधार पर रूटिंग पाथ को सक्रिय करने के लिए ट्रिगर की जाती है। प्रश्न Q-365f4b81f59f3511 (खुला)

AUTOSAR Classic विनिर्देश (रिलीज़ R20-11) के आधार पर स्वचालित रूप से जनरेट किया गया उपयोग निर्देश।

फ़ंक्शन PduR_DisableRouting [SWS_PduR_00617] 📄 PDF

void PduR_DisableRouting (PduR_RoutingPathGroupIdType id, boolean initialize);

Disables a routing path group.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 79b319e1f13b उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

सिंक्रोनस फ़ंक्शन PduR_DisableRouting कॉन्फ़िगर किए गए रूटिंग पाथ समूह ([SWS_PduR_00617]) को निष्क्रिय करने का कार्य करता है। इसे reentrant डिज़ाइन किया गया है और इसका कोई रिटर्न मान नहीं होता है ([SWS_PduR_00617])।

पैरामीटर और व्यवहार

  • id (PduR_RoutingPathGroupIdType): निष्क्रिय किए जाने वाले रूटिंग पाथ समूह की पहचान, जैसा कि PDU-राउटर के कॉन्फ़िगरेशन में परिभाषित किया गया है ([SWS_PduR_00617])।
  • initialize (boolean): निष्क्रिय करते समय बफ़र व्यवहार को नियंत्रित करता है। true पास करने पर, सिंगल-बफ़र अपने डिफ़ॉल्ट मान पर आरंभ होते हैं; false पर, सिंगल-बफ़र अपना वर्तमान मान बनाए रखते हैं ([SWS_PduR_00617])।

त्रुटि प्रबंधन और सीमा शर्तें

त्रुटि की स्थिति में, त्रुटि तालिका के अनुसार विशिष्ट त्रुटि कोड परिभाषित हैं ([SWS_PduR_00100]):

  • यदि फ़ंक्शन को मॉड्यूल के आरंभ हुए बिना कॉल किया जाता है, तो त्रुटि कोड PDUR_E_UNINIT (0x01) निर्धारित है ([SWS_PduR_00100])।
  • यदि PduR_DisableRouting को कोई अमान्य रूटिंग तालिका या समूह-ID पास की जाती है, तो त्रुटि PDUR_E_ROUTING_PATH_GROUP_ID_INVALID (0x08) निर्दिष्ट है ([SWS_PduR_00100])।

यह फ़ंक्शन हेडर PduR.h के माध्यम से उपलब्ध है ([SWS_PduR_00617])।

यह उपयोग नोट विनिर्देश आवश्यकताओं के आधार पर स्वचालित रूप से उत्पन्न किया गया था।

टाइप PduR_PBConfigType [SWS_PduR_00743] 📄 PDF

Data structure containing post-build-time configuration data of the PDU Router.

टाइप PduR_PBConfigIdType [SWS_PduR_00771] 📄 PDF

Identification of the post-build configuration currently used for routing I-PDUs. An ECU may contain several configurations (post-build selectable), each have unique Id.

टाइप PduR_StateType [SWS_PduR_00742] 📄 PDF

States of the PDU Router

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 9763b14fa079 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

गणना प्रकार (enumeration type) PduR_StateType, [SWS_PduR_00742] के अनुसार PDU राउटर की स्थितियों को निर्दिष्ट करता है। डेटा प्रकार हेडर फ़ाइल PduR.h के माध्यम से उपलब्ध कराया जाता है और PDU राउटर में मॉड्यूल के भीतर और साथ ही कॉल करने वाले घटकों के लिए संबंधित इनिशियलाइज़ेशन स्थिति का प्रतिनिधित्व करने के लिए एक औपचारिक टाइप किए गए आधार के रूप में कार्य करता है।

आवश्यकता [SWS_PduR_00324] के अनुसार, PDU राउटर मॉड्यूल में ठीक दो परिचालन स्थितियाँ होती हैं, जो PduR_StateType के गणना मानों द्वारा निर्धारित की जाती हैं। [SWS_PduR_00742] के अनुसार परिभाषित मान सीमा में निम्नलिखित मान शामिल हैं:

  • PDUR_UNINIT: उस स्थिति को इंगित करता है जिसमें PDU राउटर प्रारंभ नहीं किया गया है ([SWS_PduR_00742])।
  • PDUR_ONLINE: संकेत देता है कि PDU राउटर सफलतापूर्वक प्रारंभ हो गया है और संचालन के लिए तैयार है ([SWS_PduR_00742])।

विनिर्देश आवश्यकताओं के परस्पर क्रिया के भाग के रूप में, PduR_StateType PDU राउटर के आंतरिक और बाहरी स्थिति मॉडल के लिए एक बाध्यकारी परिभाषा के रूप में कार्य करता है ([SWS_PduR_00324])। चूंकि [SWS_PduR_00742] के अनुसार मान सीमा विशेष रूप से PDUR_UNINIT और PDUR_ONLINE तक सीमित है, विनिर्देश यहाँ अन-आरंभीकृत प्रारंभिक स्थिति और सफल आरंभीकरण के बाद की स्थिति के बीच कड़ाई से अंतर करता है। PduR_StateType की मान सीमा में अतिरिक्त मध्यवर्ती चरण, आंशिक परिचालन मोड या विशिष्ट त्रुटि स्थितियाँ प्रदान नहीं की गई हैं।

AUTOSAR विनिर्देश के आधार पर स्वचालित रूप से जनरेट किया गया उपयोग संबंधी निर्देश।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_PduR
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_PduR@rel:R20-11#87d18008
Content hash
87d18008
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_PDURouter.pdf#nameddest=SWS_PduR_00334

विषय मानचित्र

विवरण दृश्य

रूपरेखा में कोई प्रविष्टि चुनें।

आरंभीकरण और स्थिति

PduR_GetVersionInfo फ़ंक्शन

Returns the version information of this module.

void PduR_GetVersionInfo (Std_VersionInfoType* versionInfo);
PduR_Init फ़ंक्शन

Initializes the PDU Router

void PduR_Init (const PduR_PBConfigType* ConfigPtr);

सेवाएँ

PduR_DisableRouting फ़ंक्शन

Disables a routing path group.

void PduR_DisableRouting (PduR_RoutingPathGroupIdType id, boolean initialize);
PduR_EnableRouting फ़ंक्शन

Enables a routing path group.

void PduR_EnableRouting (PduR_RoutingPathGroupIdType id);
PduR_GetConfigurationId फ़ंक्शन

Returns the unique identifier of the post-build time configuration of the PDU Router

PduR_PBConfigIdType PduR_GetConfigurationId (void);

टाइप

PduR_PBConfigIdType टाइप

Identification of the post-build configuration currently used for routing I-PDUs. An ECU may contain several configurations (post-build selectable), each have unique Id.

PduR_PBConfigType टाइप

Data structure containing post-build-time configuration data of the PDU Router.

Identification of a Routing Table

PduR_StateType टाइप

States of the PDU Router