DEENESPTFRRUARHIKOZHNL

AUTOSAR COM

ModulCom (AUTOSAR COM)
BSW-Modul-ID50
Standard-Header#include "Com.h"
SWS-SpezifikationAUTOSAR_SWS_COM.pdf
ClusterCommunication Services

Module guideAI-GENERATED

Maps signals of the RTE to I-PDUs and controls their transmission, reception, and monitoring via the PDU Router.
AI-GENERATED unreviewed Model: claude-opus-5-5 · Effort: high · Temperature: not controllable · Prompt: 8d7d9ac9befb Provenance Open questions (3)
Causal anchor: R20-11 Valid from R20-11 Synthesized for this specification release.
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Maps signals of the RTE to I-PDUs and controls their transmission, reception, and monitoring via the PDU Router.

COM packs signals and signal groups of the RTE into I-PDUs and passes them to the bus exclusively via the PDU Router. Conversely, it unpacks received I-PDUs from Com_RxIndication and notifies the RTE [SWS_Com_00123]. Transmission takes place according to configured transmission modes; cyclical portions are handled by Com_MainFunctionTx. Communication only takes place for I-PDUs whose I-PDU group is started, typically by the BswM [SWS_Com_91001]. Stopped groups lead to COM_SERVICE_NOT_AVAILABLE; deadline monitoring detects missing confirmations.

COM mediates between the signal-oriented RTE and the I-PDU-oriented communication stack. The RTE writes signals with Com_SendSignal and signal groups with Com_SendSignalGroup [SWS_Com_00197] [SWS_Com_00200]. Reading is performed via the corresponding receive APIs [SWS_Com_00198]. Downwards, the PDU Router is the only interface (RS COM p. 12). PduR calls Com_RxIndication, Com_TxConfirmation, and Com_TriggerTransmit [SWS_Com_00123] [SWS_Com_00124] [SWS_Com_00001].

kontext swc SW-Cs rte RTE (inkl. Transformer-Kette) swc->rte Rte_Write / Rte_Read com Com (Signale, Signalgruppen, I-PDUs, Signal-Gateway) rte->com Com_SendSignal / Com_SendSignalGroup(Array) Com_ReceiveSignal / Com_ReceiveSignalGroup(Array) bswm BswM bswm->com Com_IpduGroupStart / Com_IpduGroupStop Com_EnableReceptionDM / Com_DisableReceptionDM Com_SwitchIpduTxMode, Com_TriggerIPDUSend j1939rm J1939Rm j1939rm->com Com_TriggerIPDUSendWithMetaData com->rte Notifications (Rte_COMCbk_<signal>, Rte_COMCbkTAck_<signal>) det DET com->det Det_ReportError Det_ReportRuntimeError pdur PduR com->pdur PduR_ComTransmit pdur->com Com_RxIndication, Com_TxConfirmation, Com_TriggerTransmit pdur->com Com_StartOfReception, Com_CopyRxData, Com_TpRxIndication, Com_CopyTxData, Com_TpTxConfirmation ifmod CanIf / LinIf / FrIf pdur->ifmod <Lo>_Transmit tpmod CanTp / FrTp pdur->tpmod <LoTp>_Transmit ifmod->pdur RxIndication, TxConfirmation, TriggerTransmit tpmod->pdur StartOfReception, CopyRxData/CopyTxData, TpRxIndication/TpTxConfirmation

Context diagram: Embedding of COM between RTE, BswM, J1939Rm, and PduR. Sources: SWS PduR p. 24, SWS BswM p. 93

After Com_Init, inter-ECU communication is not yet enabled [SWS_Com_00432]. It is enabled via I-PDU groups, which are mostly controlled by the BswM with Com_IpduGroupStart and Com_IpduGroupStop [SWS_Com_91001] [SWS_Com_91002]. An I-PDU is active as long as at least one of its groups is started [SWS_Com_00771]. When stopping, COM discards outstanding transmit requests [SWS_Com_00777].

During transmission, the Transmission Mode Selection chooses between two configured modes (TPS SystemTemplate p. 274). Cyclical portions are handled by Com_MainFunctionTx [SWS_Com_00399]. On CAN, data is handed over directly; on FlexRay, FrIf retrieves the data via TriggerTransmit (SWS PduR p. 101). Upon reception, COM drops signals with an unset update bit as well as entire signal groups if a group signal is filtered out [SWS_Com_00802] [SWS_Com_00836]. For transformer chains, array access via Com_SendSignalGroupArray [SWS_Com_00851] is available.

Signalgruppe senden: CAN direkt, FlexRay per TriggerTransmitRTEComPduRCanIfFrIfUse Case: Signalgruppe aktualisierenloopFor each group signalCom_SendSignal(SignalId, SignalDataPtr)Com_SendSignalGroup(SignalGroupId)Update-Bit setzen,Transmission Mode SelectionTriggering point in time of PduR_ComTransmit depending on transmission modeDirectly or in Com_MainFunctionTx (interpretation)altCAN: direct transmissionPduR_ComTransmit(TxPduId, PduInfoPtr)CanIf_Transmit(TxPduId, PduInfoPtr)PduR_CanIfTxConfirmation(TxPduId, result)Com_TxConfirmation(TxPduId, result)FlexRay: TriggerTransmitPduR_ComTransmit(TxPduId, PduInfoPtr)FrIf_Transmit(TxPduId, PduInfoPtr)Flag setzen, Sendeslot abwartenPduR_FrIfTriggerTransmit(TxPduId, PduInfoPtr)Com_TriggerTransmit(TxPduId, PduInfoPtr)Copy I-PDU to SduDataPtrE_OKPduR_FrIfTxConfirmation(TxPduId, result)Com_TxConfirmation(TxPduId, result)Sende-Deadline-Timer abbrechenRte_COMCbkTAck_<signal>()(IMMEDIATE immediately, DEFERRED later)

Sequence diagram: Transmitting a signal group via CAN (direct) or FlexRay (TriggerTransmit), followed by confirmation to the RTE. Sources: SWS COM p. 87, SWS RTE p. 329

In case of an error, the following applies:

  • Development errors such as COM_E_UNINIT or COM_E_PARAM_POINTER go to DET [SWS_Com_00442] [SWS_Com_00804].
  • If the group is stopped, the APIs return COM_SERVICE_NOT_AVAILABLE [SWS_Com_00865].
  • If a transmit confirmation fails to appear, the transmit deadline monitoring reports this via ComTimeoutNotification [SWS_Com_00304].

Role of COM Between RTE and PDU Router

The AUTOSAR COM module mediates between the signal-oriented view of the RTE and the I-PDU-oriented view of the communication stack. Signals and signal groups are entered into I-PDUs via Com_SendSignal and Com_SendSignalGroup [SWS_Com_00197] [SWS_Com_00200]. They are read out again with Com_ReceiveSignal and Com_ReceiveSignalGroup [SWS_Com_00198] [SWS_Com_00201]. Downwards, the PDU Router is the only interface of COM (RS COM p. 12). COM calls PduR_ComTransmit there [SWS_Com_00669]. Conversely, COM provides the callbacks Com_RxIndication, Com_TxConfirmation, and Com_TriggerTransmit to PduR [SWS_Com_00123] [SWS_Com_00124] [SWS_Com_00001]. In doing so, PduR translates the I-PDU IDs between source and destination modules (SWS PduR p. 33).

In addition to the RTE, other basic software modules use the COM interfaces:

kontext swc SW-Cs rte RTE (inkl. Transformer-Kette) swc->rte Rte_Write / Rte_Read com Com (Signale, Signalgruppen, I-PDUs, Signal-Gateway) rte->com Com_SendSignal / Com_SendSignalGroup(Array) Com_ReceiveSignal / Com_ReceiveSignalGroup(Array) bswm BswM bswm->com Com_IpduGroupStart / Com_IpduGroupStop Com_EnableReceptionDM / Com_DisableReceptionDM Com_SwitchIpduTxMode, Com_TriggerIPDUSend j1939rm J1939Rm j1939rm->com Com_TriggerIPDUSendWithMetaData com->rte Notifications (Rte_COMCbk_<signal>, Rte_COMCbkTAck_<signal>) det DET com->det Det_ReportError Det_ReportRuntimeError pdur PduR com->pdur PduR_ComTransmit pdur->com Com_RxIndication, Com_TxConfirmation, Com_TriggerTransmit pdur->com Com_StartOfReception, Com_CopyRxData, Com_TpRxIndication, Com_CopyTxData, Com_TpTxConfirmation ifmod CanIf / LinIf / FrIf pdur->ifmod <Lo>_Transmit tpmod CanTp / FrTp pdur->tpmod <LoTp>_Transmit ifmod->pdur RxIndication, TxConfirmation, TriggerTransmit tpmod->pdur StartOfReception, CopyRxData/CopyTxData, TpRxIndication/TpTxConfirmation

Context diagram: COM is located between RTE, BswM, and J1939Rm above and PduR below. COM reaches interface and TP modules exclusively via PduR. Sources: RS COM p. 12, SWS PduR p. 24, SWS BswM p. 93

Lifecycle: Initialization, I-PDU Groups, and Status

Com_Init initializes the internal and external interfaces and variables with a configuration of type Com_ConfigType. Inter-ECU communication is not yet enabled afterwards [SWS_Com_00432] [SWS_Com_00825]. Com_GetStatus returns COM_UNINIT or COM_INIT; after a reset, COM_UNINIT applies [SWS_Com_00194] [SWS_Com_00819]. Com_DeInit stops all started I-PDU groups and returns the module to the uninitialized state [SWS_Com_00130].

Communication is enabled per I-PDU group:

  • Com_IpduGroupStart starts a group, optionally with re-initialization of the I-PDU data. Com_IpduGroupStop stops it again [SWS_Com_91001] [SWS_Com_91002].
  • An I-PDU is active as long as at least one of its groups is started [SWS_Com_00771].
  • I-PDUs without group assignment are already started by Com_Init, specifically as with initialize = true [SWS_Com_00840].
  • When stopping, COM discards outstanding transmit requests, including retries [SWS_Com_00777]. COM ignores subsequent transmit confirmations for the stopped I-PDU [SWS_Com_00800].

Typically, the BswM switches the groups via action BswMPduGroupSwitch. Its parameter BswMPduGroupSwitchReinit corresponds to argument initialize (SWS BswM p. 165). The cyclical transmission portion begins after the configured timeOffset starting from Com_IpduGroupStart (TPS SystemTemplate p. 268).

lebenszyklus cluster_init COM_INIT (Zustand je I-PDU) start Reset uninit COM_UNINIT start->uninit Default value after reset gestoppt I-PDU gestoppt uninit->gestoppt Com_Init(config): I-PDU with group assignment gestartet I-PDU started (at least one of its I-PDU groups active) uninit->gestartet Com_Init(config): I-PDU without group (like start with initialize = true) gestoppt->uninit Com_DeInit() gestoppt->gestartet Com_IpduGroupStart(IpduGroupId, initialize) gestartet->uninit Com_DeInit(): all groups stopped gestartet->gestoppt Com_IpduGroupStop of the last active group: pending transmit requests discarded

State diagram: Module state and activation of an I-PDU via its I-PDU groups. Sources: [SWS_Com_00432] [SWS_Com_00130] [SWS_Com_00771] [SWS_Com_00840] [SWS_Com_00777]

Transmission: From Signal to I-PDU on the Bus

Com_SendSignal operates asynchronously [SWS_Com_00197]. For data to be transmitted atomically, the RTE proceeds in two steps: First, it writes all group signals with Com_SendSignal. Afterwards, it triggers the transmission of the group with Com_SendSignalGroup (SWS RTE p. 329). In doing so, COM sets the update bit of the group [SWS_Com_00801].

When and how often an I-PDU is transmitted is determined by the transmission modes:

Com_MainFunctionTx handles all transmission activities that are not carried out directly in the functions called by the RTE [SWS_Com_00399]. If a ComPreparationNotification is configured, it calls Com_CbkTxPrep before I-PDU processing [SWS_Com_00886] [SWS_Com_91013]. A Com_TxIpduCallout can prevent further processing of an I-PDU with false [SWS_Com_00346].

The sequence differs depending on the bus system:

  • CAN: The I-PDU is passed directly via PduR_ComTransmit.
  • FlexRay: After PduR_ComTransmit, FrIf retrieves the data only at the transmission slot via Com_TriggerTransmit (SWS PduR p. 101).
  • LIN: Frames that are not sporadic frames are retrieved exclusively via TriggerTransmit according to the schedule (SWS PduR p. 88).

Com_TriggerTransmit copies nothing and returns E_NOT_OK if the provided buffer is too small or the I-PDU is stopped [SWS_Com_00869] [SWS_Com_00884]. With Com_TxConfirmation, COM aborts running transmit deadline timers [SWS_Com_00880]. Furthermore, it reports every successful transmission via the configured notification [SWS_Com_00883]. In the case of IMMEDIATE processing, this happens immediately; in the case of DEFERRED, it happens with a time delay via a flag (SWS COM p. 91).

Signalgruppe senden: CAN direkt, FlexRay per TriggerTransmitRTEComPduRCanIfFrIfUse Case: Signalgruppe aktualisierenloopFor each group signalCom_SendSignal(SignalId, SignalDataPtr)Com_SendSignalGroup(SignalGroupId)Update-Bit setzen,Transmission Mode SelectionTriggering point in time of PduR_ComTransmit depending on transmission modeDirectly or in Com_MainFunctionTx (interpretation)altCAN: direct transmissionPduR_ComTransmit(TxPduId, PduInfoPtr)CanIf_Transmit(TxPduId, PduInfoPtr)PduR_CanIfTxConfirmation(TxPduId, result)Com_TxConfirmation(TxPduId, result)FlexRay: TriggerTransmitPduR_ComTransmit(TxPduId, PduInfoPtr)FrIf_Transmit(TxPduId, PduInfoPtr)Flag setzen, Sendeslot abwartenPduR_FrIfTriggerTransmit(TxPduId, PduInfoPtr)Com_TriggerTransmit(TxPduId, PduInfoPtr)Copy I-PDU to SduDataPtrE_OKPduR_FrIfTxConfirmation(TxPduId, result)Com_TxConfirmation(TxPduId, result)Sende-Deadline-Timer abbrechenRte_COMCbkTAck_<signal>()(IMMEDIATE immediately, DEFERRED later)

Sequence diagram: Transmitting a signal group, handover to CAN (direct) or FlexRay (TriggerTransmit), and subsequent confirmation. Sources: SWS COM p. 87, SWS PduR p. 101, SWS RTE p. 329, [SWS_Com_00880]

Reception: Indication, Unpacking, and Notification

PduR calls Com_RxIndication with the I-PDU ID, length, data pointer, and MetaData [SWS_Com_00123]. The path is identical for CanIf, FrIf, and LinIf; PduR does not buffer in this process (SWS PduR p. 97). The I-PDU then undergoes the following checks:

  • A configured Com_RxIpduCallout is always called, specifically before counter handling and with the complete I-PDU [SWS_Com_00889] [SWS_Com_00816]. If it returns false, the I-PDU is not processed further [SWS_Com_00700].
  • COM drops signals with an unset update bit [SWS_Com_00802].
  • If the update bit is missing because the received I-PDU is shorter than expected, it is considered set [SWS_Com_00794].
  • If COM filters out a group signal, it drops the entire signal group [SWS_Com_00836].
rx_verarbeitung start Com_RxIndication(RxPduId, PduInfoPtr) callout Com_RxIpduCallout configured? Call with complete I-PDU start->callout verwerfen_pdu Do not process I-PDU further callout->verwerfen_pdu Return false zaehler I-PDU counter handling (in case of deviation Com_CbkCounterErr) callout->zaehler true / kein Callout update Update-Bit gesetzt? zaehler->update verwerfen_sig Signal verwerfen update->verwerfen_sig no filter Signal group: do all group signals pass the filter? update->filter Yes, or bit not received due to shorter I-PDU verwerfen_grp ganze Signalgruppe verwerfen filter->verwerfen_grp no speichern Accept value filter->speichern Yes (or single signal) modus Processing type of the I-PDU? speichern->modus sofort Notification sofort an RTE modus->sofort IMMEDIATE spaeter Set flag, notification later modus->spaeter DEFERRED

Activity diagram: Decisions during the processing of a received I-PDU up to notification. Sources: [SWS_Com_00889] [SWS_Com_00700] [SWS_Com_00802] [SWS_Com_00794] [SWS_Com_00836] [SWS_Com_00726]; the sequence of update bit before filter is an interpretation.

How COM notifies the RTE depends on the processing type. With IMMEDIATE, COM calls the RTE callbacks directly in the context of the indication. With DEFERRED, COM initially only sets a flag and copies the data (SWS COM p. 92). The check of this flag likely occurs in Com_MainFunctionRx, which handles the reception processing not done directly in Com_RxIndication [SWS_Com_00398]. Question Q-b13cce4402c7b858 (open) In the case of signal groups, COM only informs once all group signals have been unpacked. The RTE then calls Com_ReceiveSignalGroup exactly once and subsequently Com_ReceiveSignal per group signal (SWS RTE p. 329). COM stores received MetaData for the RTE [SWS_Com_00888].

Reception of an I-PDU with signal groupCanIf / LinIf / FrIfPduRComRTEPduR_<User:Lo>RxIndication(RxPduId, PduInfoPtr)Com_RxIndication(RxPduId, PduInfoPtr)Callout, counters, update bits, filtersaltIMMEDIATEAccept signalsRte_COMCbk_signalX()Rte_COMCbk_signalY()DEFERREDFlag setzen, Daten kopierenLater, presumably in Com_MainFunctionRx:Check flagRte_COMCbk_signalX() (falls Flag gesetzt)Use Case: Fetch by the RTECom_ReceiveSignalGroup(SignalGroupId)E_OKloopFor each group signalCom_ReceiveSignal(SignalId, SignalDataPtr)E_OK

Sequence diagram: Indication by PduR, IMMEDIATE versus DEFERRED notification, and retrieval of the signal group by the RTE. Sources: SWS COM p. 92, SWS RTE p. 329, [SWS_Com_00123]

Large I-PDUs, Signal Group Arrays, and Metadata

Large I-PDUs are transmitted via transport protocols. For this purpose, COM provides its own TP interface matching the upper TP interface of PduR (SWS PduR p. 24):

Several special rules apply to TP operation:

  • At TpSduLength = 0, COM reports the configured maximum length [SWS_Com_00874].
  • If a large I-PDU is triggered again while it is still being transmitted, COM discards the additional request [SWS_Com_00863].
  • If Com_TriggerIPDUSend triggers a transmission while the buffer is locked, COM queues the request and transmits later [SWS_Com_00867].
Segmented reception of a large I-PDU (simplified, without SecOC)CanTpPduRComPduR_CanTpStartOfReception(...)Com_StartOfReception(id, info, TpSduLength, bufferSizePtr)BUFREQ_OK, available bufferloopUntil all data is copiedPduR_CanTpCopyRxData(...)Com_CopyRxData(id, info, bufferSizePtr)BUFREQ_OKPduR_CanTpRxIndication(id, result)Com_TpRxIndication(id, result)altresult = E_OKProcess signals of the large I-PDUresult = E_NOT_OKComDataInvalidAction for allSignals and signal groups

Sequence diagram: Segmented reception of a large I-PDU via CanTp and PduR, simplified without SecOC. Sources: SWS SecOC p. 111, [SWS_Com_00691] [SWS_Com_00692] [SWS_Com_00650] [SWS_Com_00838]

For transformer chains, the RTE accesses signal groups as a byte array. Com_SendSignalGroupArray and Com_ReceiveSignalGroupArray [SWS_Com_00851] [SWS_Com_00854] are provided for this purpose. The corresponding rules:

  • Array scope: It begins at the byte offset of the group signal with the smallest ComBitPosition. It ends at the last byte of the group signal with the largest ComBitPosition [SWS_Com_00844] [SWS_Com_00845].
  • Processing: During transmission, COM treats the call with regard to transfer properties and Transmission Mode Selection like Com_SendSignalGroup [SWS_Com_00847]. Only a restricted set of filters is supported [SWS_Com_00848].
  • Prerequisites: The data must have a fixed size, be mapped byte-aligned, and must not contain any foreign signals [SWS_Com_00841]. For such groups, the single signal and group APIs are not permitted [SWS_Com_00843].

The COM Based Transformer serializes data in exactly the same way as COM itself would. Additional transformers then append CRC and sequence counter (SWS ComXf p. 14, EXP LSA p. 103).

Transformed transmission via Com_SendSignalGroupArraySW-CRTECOM Based Transformerweitere Transformer (z. B. E2E)ComRte_Write_<p>_<d>(x, y, z)Serialize according to communication matrixuint8 array (endianness, sign like COM)Add CRC and sequence countererweitertes uint8-ArrayCom_SendSignalGroupArray(SignalGroupId, SignalGroupArrayPtr)Array ab Startposition (kleinste ComBitPosition)Copy into the I-PDUTransmission Mode SelectionAs with Com_SendSignalGroupE_OK

Sequence diagram: The RTE executes the transformer chain and passes the result with a single call to Com_SendSignalGroupArray. Sources: SWS ComXf p. 14, [SWS_Com_00846] [SWS_Com_00847]

MetaData of a transmit I-PDU originate from the last transfer by the RTE or, if none is available, from ComMetaDataDefault. MetaData passed with Com_TriggerIPDUSendWithMetaData apply only to the transmission triggered thereby [SWS_Com_00887] [SWS_Com_00862].

Configuration, Scheduling, and Signal Gateway

COM has three types of main functions: Com_MainFunctionRx, Com_MainFunctionTx, and Com_MainFunctionRouteSignals. Each can be instantiated multiple times and is reentrant for different instances [SWS_Com_00398] [SWS_Com_00399] [SWS_Com_00400]. They are called without parameters by the BSW Scheduler (SWS BSWGeneral p. 79). Their periods are described in EcuInstance via comConfigurationRxTimeBase, comConfigurationTxTimeBase, and comConfigurationGwTimeBase (TR Interoperability p. 98). The associated notification Rte_COMCbkTxPrep_<mn> is bound to a specific Com_MainFunctionTx instance (SWS RTE p. 832).

The signal gateway is a component of COM (SRS Gateway p. 11). It forwards received signals in Com_MainFunctionRouteSignals [SWS_Com_00400]. In doing so, it traverses defined processing stages on the receive and transmit sides [SWS_Com_00872] [SWS_Com_00873]. It can also map individual group signals to standalone signals [SWS_Com_00833].

The configuration is subject to several constraints:

  • The data types from [SWS_Com_00675] are supported. Signals of type UINT8_N and UINT8_DYN must be byte-aligned [SWS_Com_00105].
  • All I-PDUs of a group have the same direction [SWS_Com_00871].
  • If an invalid value is configured for a receive signal, an ComDataInvalidAction must also be configured [SWS_Com_00859].

Signal, group, and I-PDU group IDs are zero-based uint16 values [SWS_Com_00820] [SWS_Com_00821] [SWS_Com_00822]. Their symbolic names are derived from ComHandleId (TPS ECUConfiguration p. 138).

Behavior in the event of an error

COM reports development errors via Det_ReportError with ModuleId 50 [SWS_Com_00442]. The following are defined:

  • COM_E_PARAM for incorrect parameters [SWS_Com_00803].
  • COM_E_UNINIT for calls before Com_Init or after Com_DeInit. Status, version, and main functions are excluded [SWS_Com_00804].
  • COM_E_PARAM_POINTER for null pointers [SWS_Com_00805].
  • COM_E_INIT_FAILED for an invalid configuration selection [SWS_Com_00837].
  • As runtime error COM_E_SKIPPED_TRANSMISSION for rejected transmit requests [SWS_Com_00864].

The signal APIs return COM_SERVICE_NOT_AVAILABLE if the I-PDU group is stopped or a development error is present [SWS_Com_00865]. Com_ReceiveSignalGroupArray nevertheless copies the last known data [SWS_Com_00857].

The following applies to transmit deadline monitoring:

  • The timer starts when a signal goes to the lower layer. The first time, it is loaded with ComFirstTimeout, thereafter with ComTimeout [SWS_Com_00878] [SWS_Com_00879].
  • If it expires, COM calls ComTimeoutNotification [SWS_Com_00304].
  • In transmission mode NONE, monitoring is deactivated [SWS_Com_00835].

The following mechanisms exist on the receive side:

tx_dm inaktiv Timer not started laeuft Timer is running inaktiv->laeuft Signal (group) in I-PDU to lower layer: first start with ComFirstTimeout, otherwise ComTimeout deaktiviert Monitoring disabled (transmission mode NONE active) inaktiv->deaktiviert Wechsel in Modus NONE laeuft->inaktiv Com_TxConfirmation: Timer abgebrochen laeuft->laeuft Retransmission: timer continues to run abgelaufen Timer abgelaufen: ComTimeoutNotification aufgerufen laeuft->abgelaufen No confirmation in time abgelaufen->laeuft Retransmission: start with ComTimeout deaktiviert->inaktiv Wechsel in anderen Modus

State diagram: Lifecycle of a transmit deadline timer. Sources: [SWS_Com_00878] [SWS_Com_00879] [SWS_Com_00880] [SWS_Com_00304] [SWS_Com_00835]

Further detailed evidence

AI-generated guide based on the requirements (R20-11) and document passages contained in the payload. Only the linked requirements are normative. Statements marked as interpretation are not fully substantiated by the sources.

AUTOSAR COM

The AUTOSAR COM module provides signal-based communication services for inter-ECU exchange across diverse bus systems.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function Com_Init [SWS_Com_00432] 📄 PDF

void Com_Init (const Com_ConfigType* config);

This service initializes internal and external interfaces and variables of the AUTO- SAR COM module layer for the further processing. After calling this function the inter - ECU communication is still disabled. In configurations, in which Com is assigned to mo re than one partition (i.e. Com_ Main Functions are mapped to partitions), Com may provide one init function per AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM partition.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: a9d5c039e92f Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Semantics

The function Com_Init initializes the internal and external interfaces as well as variables of the AUTOSAR COM layer for subsequent processing ([SWS_Com_00432]). The call is synchronous and non-reentrant (Non Reentrant) ([SWS_Com_00432]). config serves as the input parameter as a pointer to the configuration data of the COM module (const Com_ConfigType* config); there is no return value ([SWS_Com_00432]). In multi-partition configurations where main functions of the COM module are assigned to multiple partitions, COM can provide a dedicated initialization function per partition ([SWS_Com_00432]).

Sequence Conditions and Error Handling

Initialization via Com_Init is the functional prerequisite for regular use of the COM interfaces: If an API service is called before Com_Init or after a call to Com_DeInit, the error code COM_E_UNINIT (0x02) is generated ([SWS_Com_00804]). Calls to Com_GetStatus, Com_GetVersionInfo, Com_MainFunctionRx, Com_MainFunctionTx, and Com_MainFunctionRouteSignals are exclusively excluded from this error check ([SWS_Com_00804]).

Interaction during PDU and Signal Initialization

After execution of Com_Init, the actual inter-ECU communication initially remains deactivated ([SWS_Com_00432]). Interpretation: A subsequent activation of the respective I-PDU groups is therefore likely to be required for regular transmission and reception operation. Question Q-8407f9a6281c3764 (open) However, for certain data structures, Com_Init already performs direct initializations:

  • If an I-PDU is not assigned to any I-PDU group, COM already starts this I-PDU within Com_Init as if it had been started via Com_IpduGroupStart with the initialization parameter set ([SWS_Com_00840]).
  • For signal groups with configured array access (ComSignalGroupArrayAccess), Com_Init initializes the associated buffer area of the I-PDU based on the initial values (ComSignalInitValue) of all contained group signals ([SWS_Com_00850]).

This usage note was generated by an AI based on the AUTOSAR R20-11 specification.

Implementer's Guide to follow (complexity I2)

function Init [SWS_Com_00130] 📄 PDF

void Com_DeInit (void);

This service stops the inter - ECU communication. All started I - PDU groups are stop- ped and have to be started again, if needed, after Com_ Init is called. By a call to Com_ De Init the AUTOSAR COM module is put into an not initialized state.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 15d5ebd10450 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Call Context

The synchronous function [SWS_Com_00130] (Interpretation: listed as 'Init' in the payload, but specifies signature void Com_DeInit(void)) terminates inter-ECU communication and puts the AUTOSAR COM module into the uninitialized state ([SWS_Com_00130]). Question Q-3e91d7d0a140cee0 (open) The service has service ID 0x02, requires no input parameters, returns no value, and is provided via header file Com.h ([SWS_Com_00130]).

Concurrency and Limitations

Regarding the call context, the function is defined as non-reentrant (Non Reentrant) ([SWS_Com_00130]). A concurrent or repeated call without prior re-initialization is therefore impermissible.

Interaction and Lifecycle

Due to the de-initialization, all previously started I-PDU groups are stopped ([SWS_Com_00130]). The following ordering conditions apply to a subsequent resumption of communication:

  • The module must be re-initialized via the synchronous, non-reentrant service Com_Init, passing the configuration pointer config ([SWS_Com_00432]).
  • Since inter-ECU communication remains disabled after calling Com_Init ([SWS_Com_00432]), the required I-PDU groups must subsequently be started explicitly again ([SWS_Com_00130]).

This usage note was generated by an AI based on the specification AUTOSAR CP R20-11.

Implementer's Guide to follow (complexity I1)

function Com_IpduGroupStart [SWS_Com_91001] 📄 PDF

void Com_IpduGroupStart (Com_IpduGroupIdType IpduGroupId, boolean initialize);

Starts a preconfigured I - PDU group. For example, cyclic I - PDUs will be sent out cyclically after the call of Com_ Ipdu Group Start(). If Initialize is true all I - PDUs of the I - PDU group shall be (r e - )initialized before the I - PDU group is started. That is they shall behave like after a start - up of COM, for example the old_ value of the filter ob- jects and shadow buffers of signal groups have to be (re - )initialized.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 8b6a6f2e80e0 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous function Com_IpduGroupStart (service ID 0x03, header Com.h) serves to start a preconfigured I-PDU group [SWS_Com_91001]. After the call, transmission of the associated I-PDUs is activated; for example, cyclic I-PDUs are sent cyclically from then on [SWS_Com_91001].

Usage and Parameters

The function has no return value and accepts two input parameters [SWS_Com_91001]:

  • IpduGroupId: Unique identifier of the preconfigured I-PDU group to be started [SWS_Com_91001].
  • initialize: A boolean flag for requesting data initialization of the I-PDUs of this group before starting [SWS_Com_91001].

If initialize is set to true, all I-PDUs of the group must be (re-)initialized before starting [SWS_Com_91001]. The I-PDUs then behave as they do immediately after a start-up of the COM module [SWS_Com_91001]. In particular, this includes the reinitialization of the previous value (old_value) of filter objects as well as the shadow buffers for signal groups [SWS_Com_91001].

Concurrency and Limitations

Regarding concurrency, Com_IpduGroupStart is reentrant for different I-PDU groups, but explicitly non-reentrant for the same I-PDU group [SWS_Com_91001].

This text was generated by an AI based on the AUTOSAR R20-11 specification.

Implementer's Guide to follow (complexity I2)

function Com_IpduGroupStop [SWS_Com_91002] 📄 PDF

void Com_IpduGroupStop (Com_IpduGroupIdType IpduGroupId);

Stops a preconfigured I - PDU group. For example, cyclic I - PDUs will be stopped after the call of Com_ Ipdu Group Stop().

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 651ca887878f Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The function Com_IpduGroupStop serves to stop a preconfigured I-PDU group in the AUTOSAR COM module [SWS_Com_91002]. The declaration is available via the header file Com.h and has the service ID 0x04 [SWS_Com_91002].

  • Call syntax: void Com_IpduGroupStop (Com_IpduGroupIdType IpduGroupId) [SWS_Com_91002].
  • Parameters: As the only parameter, the input parameter IpduGroupId of type Com_IpduGroupIdType is passed, which defines the identifier of the I-PDU group to be stopped [SWS_Com_91002]. Additional input/output (inout) or output parameters (out) do not exist [SWS_Com_91002].
  • Return value: The interface does not provide a return value (void) [SWS_Com_91002].
  • Execution behavior: The call is processed synchronously [SWS_Com_91002]. After calling Com_IpduGroupStop, communication of the affected group is stopped; this results, for example, in cyclic I-PDUs of the group no longer being transmitted [SWS_Com_91002].

Concurrency and Limitations

With respect to concurrency and reentrancy, it is specified that Com_IpduGroupStop is reentrant for different I-PDU groups, but must not be executed reentrantly for the same I-PDU group [SWS_Com_91002]. If the function is called in multitasking or multicore environments, the calling software must ensure that concurrent calls for one and the same group ID are prevented.

This text was generated by an AI based on the specification AUTOSAR CP R20-11.

Implementer's Guide to follow (complexity I1)

function Com_EnableReceptionDM [SWS_Com_91004] 📄 PDF

void Com_EnableReceptionDM (Com_IpduGroupIdType IpduGroupId);

Enables the reception deadline monitoring for the I - PDUs within the given I - PDU group.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 5f24c726b615 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous function Com_EnableReceptionDM serves to enable reception deadline monitoring for all I-PDUs within a specified I-PDU group [SWS_Com_91004].

Usage and call context: The function is declared via the header file Com.h and has the service ID 0x06 [SWS_Com_91004]. As its only passed parameter, the signature void Com_EnableReceptionDM (Com_IpduGroupIdType IpduGroupId) expects the input parameter IpduGroupId of type Com_IpduGroupIdType, which represents the identifier of the I-PDU group for whose contained I-PDUs deadline monitoring is to be activated [SWS_Com_91004]. The execution is synchronous [SWS_Com_91004]. Neither input/output parameters nor output parameters exist, and no return value is provided (return type void) [SWS_Com_91004].

Concurrency and restrictions: Regarding concurrency, Com_EnableReceptionDM is reentrant for different I-PDU groups, but non-reentrant for the same I-PDU group [SWS_Com_91004]. Concurrent calls for the same group ID are therefore not permitted and must be avoided in the call context [SWS_Com_91004].

This usage note was generated automatically based on the specification of AUTOSAR Classic Release R20-11.

function Com_DisableReceptionDM [SWS_Com_91003] 📄 PDF

void Com_DisableReceptionDM (Com_IpduGroupIdType IpduGroupId);

Disables the reception deadline monitoring for the I - PDUs within the given I - PDU group.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 12da9925d73b Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous function Com_DisableReceptionDM disables reception deadline monitoring for all I-PDUs within the passed I-PDU group [SWS_Com_91003].

use

The call is made via the interface void Com_DisableReceptionDM(Com_IpduGroupIdType IpduGroupId) with the identifier of the affected I-PDU group as an input parameter IpduGroupId [SWS_Com_91003]. The function has neither input/output nor output parameters and returns no return value (void) [SWS_Com_91003]. The service is declared with the service ID 0x05 in the header file Com.h [SWS_Com_91003].

Concurrency and Limitations

Regarding concurrency behavior, the service is reentrant for different I-PDU groups, but must not be called concurrently (non-reentrant) for the same I-PDU group [SWS_Com_91003].

This text was generated by an AI based on the AUTOSAR specification R20-11.

function Com_SendSignal [SWS_Com_00197] 📄 PDF

uint8 Com_SendSignal (Com_SignalIdType SignalId, const void* SignalDataPtr);

The service Com_ Send Signal updates the signal object identified by Signal Id with the signal referenced by the Signal Data Ptr parameter. Avai lable via Com.h

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 8158a8b89f8c Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function Com_SendSignal serves to update a signal object identified by SignalId with the data referenced by pointer SignalDataPtr [SWS_Com_00197]. The call is processed asynchronously [SWS_Com_00197].

Return Values and Error Handling

The function returns a status of type uint8 [SWS_Com_00197]:

  • E_OK: The service was accepted [SWS_Com_00197].
  • COM_SERVICE_NOT_AVAILABLE: The associated I-PDU group was stopped or the call failed due to a development error [SWS_Com_00197].
  • COM_BUSY: Occurs when the TP buffer is locked for processing large data types [SWS_Com_00197].

Concurrency and Limitations

Regarding reentrancy, Com_SendSignal is non-reentrant for the same signal, but may be called concurrently for different signals [SWS_Com_00197]. The interface is provided via the header Com.h [SWS_Com_00197].

Interaction and Configuration

If configuration ComSignalGroupArrayAccess is defined for a signal group, calling Com_SendSignal for the group signals of this signal group is not supported [SWS_Com_00843].

This text was generated by an AI based on the AUTOSAR specification.

Implementer's Guide to follow (complexity I1)

function Com_SendDynSignal [SWS_Com_00627] 📄 PDF

uint8 Com_SendDynSignal (Com_SignalIdType SignalId, const void* SignalDataPtr, uint16 Length);

The service Com_ Send Dyn Signal updates the signal object identified by Signal Id with the signal referenced by the Signal Data Ptr parameter.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: b3f2deddf90c Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Classic AUTOSAR function Com_SendDynSignal serves to update a dynamic-length signal object using the passed payload ([SWS_Com_00627]). The service has service ID 0x21 and operates asynchronously ([SWS_Com_00627]). As input parameters, the interface expects the identifier of the target signal (SignalId), a pointer to the signal payload to be transmitted (SignalDataPtr), and the current length of the dynamic signal (Length); output parameters are not present ([SWS_Com_00627]).

The return value of type uint8 reports the result of request acceptance ([SWS_Com_00627]):

  • E_OK: The service request was successfully accepted ([SWS_Com_00627]).
  • E_NOT_OK: Parameter Length exceeds the maximum length configured for this signal ComSignalLength ([SWS_Com_00627]).
  • COM_SERVICE_NOT_AVAILABLE: The associated I-PDU group is stopped or the service failed due to a development error ([SWS_Com_00627]).
  • COM_BUSY: The TP buffer is locked ([SWS_Com_00627]).

Regarding concurrency, Com_SendDynSignal is reentrant for different signals, but not reentrant for the same signal ([SWS_Com_00627]). The function declaration is available via header Com.h ([SWS_Com_00627]).

This text was generated by an AI and serves as guidance. The specification is authoritative.

Implementer's Guide to follow (complexity I1)

function Com_ReceiveSignal [SWS_Com_00198] 📄 PDF

uint8 Com_ReceiveSignal (Com_SignalIdType SignalId, void* SignalDataPtr);

Com_ Receive Signal copies the data of the signal identified by Signal Id to the location specified by Signal Data Ptr.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: d44a9c735931 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous function Com_ReceiveSignal copies the data of the signal specified via SignalId to the memory address provided via pointer SignalDataPtr ([SWS_Com_00198]).

Usage and Semantics

The call processes the signal transfer synchronously and accepts the identifier SignalId (of type Com_SignalIdType) as input parameter and pointer SignalDataPtr (void*) to the destination buffer as output parameter ([SWS_Com_00198]). The interface is available via header Com.h ([SWS_Com_00198]).

Return Values and Error Handling

The return value of type uint8 signals the result of the function execution ([SWS_Com_00198]):

  • E_OK: The service was successfully accepted and executed ([SWS_Com_00198]).
  • COM_SERVICE_NOT_AVAILABLE: The corresponding I-PDU group was stopped or the service failed due to a development error ([SWS_Com_00198]).
  • COM_BUSY: Occurs if the TP buffer is locked for processing large data types ([SWS_Com_00198]).

Concurrency and Limitations

Regarding reentrancy, Com_ReceiveSignal is non-reentrant for the same signal, but reentrant for different signals ([SWS_Com_00198]). In the event of parallel access to identical signal IDs, callers must consequently provide suitable synchronization.

In addition, there is a significant configuration constraint: If array-based access ComSignalGroupArrayAccess is configured for a signal group, calling Com_ReceiveSignal for the contained group signals of this signal group is not supported ([SWS_Com_00843]).

This text was generated by an AI based on the specification requirements.

Implementer's Guide to follow (complexity I1)

function Com_ReceiveDynSignal [SWS_Com_00690] 📄 PDF

uint8 Com_ReceiveDynSignal (Com_SignalIdType SignalId, void* SignalDataPtr, uint16* Length);

Com_ Receive Dyn Signal copies the data of the signal identified by Signal Id to the lo cation specified by Signal Data Ptr and stores the length of the dynamical length signal at the position given by the Length parameter.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 078181d39b16 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Semantics

The synchronous function Com_ReceiveDynSignal is used to receive a signal with dynamic length based on its SignalId [SWS_Com_00690]. The received signal data is copied to the memory location pointed to by SignalDataPtr [SWS_Com_00690]. Via the in-out parameter Length, the caller passes the maximum length that can be accommodated as an input value; after a successful copy operation, the actual length of the received dynamic signal is stored there [SWS_Com_00690].

Return Values and Error Handling

The function returns a status value of type uint8 [SWS_Com_00690]:

  • E_OK: The service call was accepted and the data was successfully copied [SWS_Com_00690].
  • E_NOT_OK: The provided buffer is too small because the input value of Length is smaller than the actual length of the received signal [SWS_Com_00690].
  • COM_SERVICE_NOT_AVAILABLE: The corresponding I-PDU group was stopped or the service failed due to a development error [SWS_Com_00690].
  • COM_BUSY: The TP buffer is currently locked [SWS_Com_00690].

Concurrency and Integration

Regarding reentrancy, Com_ReceiveDynSignal is non-reentrant for the same signal, but can be called reentrantly for different signals [SWS_Com_00690]. The declaration is available via Com.h [SWS_Com_00690].

This text was generated by an AI system on the basis of the specification AUTOSAR CP R20-11.

Implementer's Guide to follow (complexity I1)

function Com_SendSignalGroup [SWS_Com_00200] 📄 PDF

uint8 Com_SendSignalGroup (Com_SignalGroupIdType SignalGroupId);

The service Com_ Send Si gnal Group copies the content of the associated shadow buffer to the associated I - PDU.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 0d9d9eeb6062 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The asynchronous function Com_SendSignalGroup serves to copy the contents of the assigned shadow buffer into the corresponding I-PDU [SWS_Com_00200]. As input parameter, it accepts the identifier SignalGroupId of the signal group to be transmitted [SWS_Com_00200].

Return Values and Error Handling

The return value signals the execution status of the service [SWS_Com_00200]:

  • E_OK: The service call was successfully accepted [SWS_Com_00200].
  • COM_SERVICE_NOT_AVAILABLE: The corresponding I-PDU group was stopped or the service failed due to a development error [SWS_Com_00200].
  • COM_BUSY: The TP buffer is temporarily locked for the transmission of large data types [SWS_Com_00200].

Concurrency and Limitations

With respect to concurrency, the call is non-reentrant for the same group signal, but reentrant for different group signals [SWS_Com_00200]. Interpretation: The restriction is likely to refer to concurrent accesses to the same signal group. Question Q-2f3a6da092b51794 (open) Furthermore, calling Com_SendSignalGroup is not supported for a signal group if ComSignalGroupArrayAccess has been configured for it [SWS_Com_00843].

Interaction

The AUTOSAR COM module treats a call to Com_SendSignalGroupArray equivalently to Com_SendSignalGroup with regard to transmission properties, selection of the I-PDU transmission mode, and signal flow [SWS_Com_00847].

This usage note was generated automatically based on the AUTOSAR specification.

Implementer's Guide to follow (complexity I1)

function Com_ReceiveSignalGroup [SWS_Com_00201] 📄 PDF

uint8 Com_ReceiveSignalGroup (Com_SignalGroupIdType SignalGroupId);

The service Com_ Receive Signal Group copies the received signal group from the I - PDU to the shadow buffer.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: b8b175f19562 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The synchronous function Com_ReceiveSignalGroup serves to receive signal groups. It copies the data of the received signal group from the corresponding I-PDU into the associated shadow buffer [SWS_Com_00201]. As an input parameter, the function expects the identifier of the signal group SignalGroupId of type Com_SignalGroupIdType [SWS_Com_00201]. The service is declared in header file Com.h [SWS_Com_00201].

Error Handling and Return Values

The service returns a status value of type uint8 that provides information about success or the cause of an error [SWS_Com_00201]:

  • E_OK: The service was accepted successfully and the signal group was copied [SWS_Com_00201].
  • COM_SERVICE_NOT_AVAILABLE: The associated I-PDU group was stopped or the call failed due to a development error [SWS_Com_00201].
  • COM_BUSY: The service reports this state if the TP buffer is locked for handling large data types [SWS_Com_00201].

Concurrency and Limitations

Regarding concurrency behavior, Com_ReceiveSignalGroup is implemented non-reentrantly for the same signal group, but reentrantly for different signal groups [SWS_Com_00201].

In addition, there is an essential restriction in interaction with array access: if configuration ComSignalGroupArrayAccess (ECUC_Com_10003) was defined for a signal group, calling Com_ReceiveSignalGroup for this signal group is not supported according to the specification [SWS_Com_00843].

This usage note was generated automatically and is based on the AUTOSAR Classic R20-11 specification.

Implementer's Guide to follow (complexity I1)

function Com_SendSignalGroupArray [SWS_Com_00851] 📄 PDF

uint8 Com_SendSignalGroupArray (Com_SignalGroupIdType SignalGroupId, const uint8* SignalGroupArrayPtr);

The service Com_ Send Signal Group Array copies the conte nt of the provided Signal Group Array Ptr to the associated I - PDU. The provided data shall correspond to the array representation of the signal group.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 5c15fbe82271 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The asynchronous function Com_SendSignalGroupArray copies the data of a signal group via the pointer SignalGroupArrayPtr directly into the assigned I-PDU [SWS_Com_00851]. The passed data must correspond exactly to the array representation of the respective signal group [SWS_Com_00851], [SWS_Com_00852].

The identifier of the signal group (SignalGroupId) as well as the reference to the signal group array (SignalGroupArrayPtr) are passed as input parameters [SWS_Com_00851]. The service provides the following return values [SWS_Com_00851]:

  • E_OK: The service call was successfully accepted.
  • COM_SERVICE_NOT_AVAILABLE: The associated I-PDU group has been stopped or the call failed due to a development error.
  • COM_BUSY: The transport protocol buffer (TP buffer) is locked for processing large data types.

Regarding concurrency, the function is non-reentrant for the same signal group, but may be called reentrantly for different signal groups [SWS_Com_00851]. The call is only available if the configuration switch ComEnableSignalGroupArrayApi is enabled [SWS_Com_00853].

With respect to the transmission properties of signal groups, the selection of the I-PDU transmission mode, and the signal flow, Com_SendSignalGroupArray is treated by the AUTOSAR COM module fully analogously to Com_SendSignalGroup [SWS_Com_00847].

This text was generated by an AI-supported process based on the AUTOSAR specification R20-11.

Implementer's Guide to follow (complexity I1)

function Com_ReceiveSignalGroupArray [SWS_Com_00854] 📄 PDF

uint8 Com_ReceiveSignalGroupArray (Com_SignalGroupIdType SignalGroupId, uint8* SignalGroupArrayPtr);

The service Com_ Receive Signal Group Array copies the re ceived signal group array AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM representation from the PDU to the location designated by Signal Group Ar - ray Ptr.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 4f43126be3e3 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Configuration

The synchronous function Com_ReceiveSignalGroupArray copies the received signal group as a byte array representation from the I-PDU into the memory area referenced by SignalGroupArrayPtr [SWS_Com_00854], [SWS_Com_00855]. The function is available exclusively if the configuration switch ComEnableSignalGroupArrayApi is enabled [SWS_Com_00856]. It supports reception filtering and Transmission Mode Selection with the filters ALWAYS, NEVER, MASKED_NEW_EQUALS_X, MASKED_NEW_DIFFERS_X, MASKED_NEW_DIFFERS_MASKED_OLD, and ONE_EVERY_N [SWS_Com_00848].

Data Copy and Error Handling

Upon invocation, the SignalGroupId and a pointer to the destination array are passed, at whose position the AUTOSAR COM module copies the data of the I-PDU [SWS_Com_00849]. Even if the I-PDU group is stopped and the service returns COM_SERVICE_NOT_AVAILABLE, the module always copies the latest known data or the initial values ComSignalInitValues if no data has been written yet [SWS_Com_00857].

Return Values and Concurrency

Possible return values of the service are [SWS_Com_00854]:

  • E_OK: The service was successfully accepted.
  • COM_SERVICE_NOT_AVAILABLE: The associated I-PDU group is stopped or the service failed due to a development error.
  • COM_BUSY: The TP buffer is locked for processing large data types.

Regarding concurrency, the function is reentrant for different signal groups, but non-reentrant for the same signal group [SWS_Com_00854].

This usage note was generated automatically based on the specification AUTOSAR CP R20-11.

Implementer's Guide to follow (complexity I1)

function Com_ReceiveSignalWithMetaData [SWS_Com_91005] 📄 PDF

uint8 Com_ReceiveSignalWithMetaData (Com_SignalIdType SignalId, void* SignalDataPtr, uint8* MetaDataPtr);

Com_ Receive Signal With Meta Data copies the data of the signal identified by Signal Id to the location specified by Signal Data Ptr. The received meta data is stored at the position given by the Meta Data Ptr parameter. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 180ada75e2ab Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous function Com_ReceiveSignalWithMetaData serves to read out received signal data together with its metadata from the communication module Com [SWS_Com_91005]. When called, the service copies the data of the signal addressed via the SignalId to the memory location referenced by SignalDataPtr and stores the received metadata at position MetaDataPtr [SWS_Com_91005].

Parameters and call context

The interface is available via the header Com.h and is identified via the service ID 0x49 [SWS_Com_91005]. The parameter structure is divided as follows:

  • SignalId (in): Identifier of the signal to be received [SWS_Com_91005].
  • SignalDataPtr (out): Pointer to the storage location for storing the received signal data [SWS_Com_91005].
  • MetaDataPtr (out): Pointer to the memory area for accommodating the signal metadata [SWS_Com_91005].

The function returns a return value of type uint8, for which no specific error values are documented in the present standard section [SWS_Com_91005].

Concurrency and Limitations

Regarding reentrancy, the service is reentrant for different signals, but non-reentrant for the same signal [SWS_Com_91005]. In the case of parallel or interrupting calls with identical SignalId, external protection by the caller is consequently likely required to ensure data consistency. Question Q-51cbdce3d4f59f24 (open)

This usage note was generated by an AI and relies exclusively on the AUTOSAR specification.

function Com_ReceiveDynSignalWithMetaData [SWS_Com_91006] 📄 PDF

uint8 Com_ReceiveDynSignalWithMetaData (Com_SignalIdType SignalId, void* SignalDataPtr, uint16* Length, uint8* MetaDataPtr);

Com_ Receive Dyn Signal With Meta Da ta copies the data of the signal identified by Signal Id to the location specified by Signal Data Ptr and stores the length of the dy- namical length signal at the position given by the Length parameter. The received meta data is stored at the position given by the Meta Data Ptr parameter.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 9be7aa4daed1 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Semantics

The function Com_ReceiveDynSignalWithMetaData is provided via the header file Com.h and is used for the synchronous reception of signals with dynamic length including their metadata [SWS_Com_91006]. When called, the service copies the data of the signal identified via SignalId into the buffer referenced by SignalDataPtr [SWS_Com_91006]. The received metadata is stored at pointer MetaDataPtr, while the actual length of the received dynamic signal is written to the position of Length [SWS_Com_91006].

Return Values and Error Handling

The service returns a status value of type uint8 [SWS_Com_91006]:

  • E_OK: The reception service was accepted successfully [SWS_Com_91006].
  • E_NOT_OK: Occurs if the passed value of Length is smaller than the actual length of the received dynamic signal [SWS_Com_91006]. Interpretation: The caller must provide the buffer size in advance via Length, so that the parameter de facto acts as a combined input and output. Question Q-8ad420c74748f219 (open)
  • COM_SERVICE_NOT_AVAILABLE: The associated I-PDU group is stopped or the call failed due to a development error [SWS_Com_91006].
  • COM_BUSY: The TP buffer is currently locked [SWS_Com_91006].

Concurrency and Limitations

With regard to concurrency, the function is reentrant for different signals, but must not be called reentrantly for the same signal [SWS_Com_91006]. Parallel calls for the same SignalId must therefore be synchronized at caller level.

This usage note was generated automatically and is based exclusively on the specification data from AUTOSAR Release R20-11.

function Data [SWS_Com_91007] 📄 PDF

uint8 Com_ReceiveSignalGroupWithMetaData (Com_SignalGroupIdType SignalGroupId, uint8* MetaDataPtr);

The service Com_ Receive Signal Group With Meta Data copies the received signal group from the I - PDU to the shadow buffer. The received meta data is stored at the position given by the Meta Data Ptr parameter.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: a2422bbfdc23 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous function Com_ReceiveSignalGroupWithMetaData is used to receive a signal group including associated metadata via the interface Com.h [SWS_Com_91007]. It takes the identifier SignalGroupId as an input parameter and copies the received data of the signal group from the I-PDU into the local shadow buffer [SWS_Com_91007]. At the same time, the service saves the received metadata at the destination address referenced via the output parameter MetaDataPtr [SWS_Com_91007].

The error and return behavior comprises three status values: E_OK signals the successful acceptance of the service [SWS_Com_91007]. The return value COM_SERVICE_NOT_AVAILABLE indicates that the associated I-PDU group is stopped or a development error has occurred [SWS_Com_91007]. If the error code COM_BUSY occurs, the TP buffer is locked for processing large data types [SWS_Com_91007]. Regarding concurrency, the function is reentrant for different signal groups, but non-reentrant for the same signal group [SWS_Com_91007]. Since the specification does not state any ISR restrictions, the call is likely to take place synchronously at task level by the higher-level software component. Question Q-a23cf67bae724ae1 (open)

In interaction, the function extends the reception path with metadata analogously to Com_ReceiveSignalWithMetaData for individual signals [SWS_Com_91005]. The provided metadata corresponds to the PDU information previously received at the interface via Com_RxIndication [SWS_Com_00123]. To signal invalid data contents, Com_InvalidateSignalGroup can additionally be used in the overall sequence [SWS_Com_00557].

This text was generated by an AI based on the AUTOSAR specification R20-11.

function Data [SWS_Com_91008] 📄 PDF

void Com_ReceiveSignalGroupArrayWithMetaData (Com_SignalGroupIdType SignalGroupId, uint8* SignalGroupArrayPtr, uint8* MetaDataPtr);

The service Com_ Receive Signal Group Array With Meta Data copies the received si gnal group array representation from the PDU to the location designated by Signal Group Ar - ray Ptr. The received meta data is stored at the position given by the Meta Data Ptr parameter.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 6fb4f8baaba4 Provenance Open questions (2)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The synchronous service Com_ReceiveSignalGroupArrayWithMetaData (service ID 0x4c, available via Com.h) copies the received signal group array representation from the I-PDU into the memory location provided via the pointer SignalGroupArrayPtr [SWS_Com_91008]. At the same time, the received metadata is written to the position specified by the parameter MetaDataPtr [SWS_Com_91008]. The function has no return value (void) [SWS_Com_91008].

Error handling

The specification defines no return values for this service and does not list any specific error codes [SWS_Com_91008]. Interpretation: Any error states in call parameters are likely handled internally and via the module's error reporting; however, concrete DET or DEM messages are not evident from the specification excerpt. Question (open)

Concurrency and Limitations

With regard to concurrency, the function is reentrant for different signal groups, but non-reentrant for the same signal group [SWS_Com_91008]. Parallel calls with an identical SignalGroupId must be prevented by the caller. Interpretation: Callers are likely also required to provide sufficiently dimensioned destination buffers, as the interface carries no length parameters. Question (open)

Interaction

The provision of data in the PDU buffer requires that a reception indication via Com_RxIndication has previously taken place, which also delivers the metadata to the COM module [SWS_Com_00123]. The function extends the reception interfaces for metadata analogously to Com_ReceiveSignalWithMetaData for individual signals [SWS_Com_91005] and differs from regular signal retrieval via Com_ReceiveSignal [SWS_Com_00198].

This usage note was generated by an AI based on the AUTOSAR specification.

function Data [SWS_Com_91009] 📄 PDF

uint8 Com_SendSignalWithMetaData (Com_SignalIdType SignalId, void* SignalDataPtr, uint8* MetaDataPtr);

The service Com_ Send Si gnal With Meta Data updates the signal object identified by Signal Id with the signal referenced by the Signal Data Ptr parameter. The meta data is provided via the Meta Data Ptr parameter.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 295cd2832adb Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function Com_SendSignalWithMetaData ([SWS_Com_91009]) is used to asynchronously update a signal object specified by SignalId with payload data via SignalDataPtr and associated metadata via MetaDataPtr. The service is available via the header Com.h.

  • Call and concurrency: The call is performed asynchronously ([SWS_Com_91009]). The function is reentrant for different signals, but non-reentrant for the same signal identifier (SignalId) ([SWS_Com_91009]).
  • Return values and error handling: The function returns a status value of type uint8 ([SWS_Com_91009]):
    • E_OK: The transmit request was successfully accepted by the module ([SWS_Com_91009]).
    • COM_SERVICE_NOT_AVAILABLE: The associated I-PDU group is stopped or the call failed due to a development error ([SWS_Com_91009]).
    • COM_BUSY: The TP buffer is locked for processing large data types ([SWS_Com_91009]).
  • Interaction: In contrast to the basic transmission service Com_SendSignal ([SWS_Com_00197]), this function passes explicit metadata. It forms the transmit-side counterpart to the reception service Com_ReceiveSignalWithMetaData ([SWS_Com_91005]) and complements I-PDU-related metadata services such as Com_TriggerIPDUSendWithMetaData ([SWS_Com_00858]).

This usage note was automatically created based on the specification.

function Com_SendDynSignalWithMetaData [SWS_Com_91010] 📄 PDF

uint8 Com_SendDynSignalWithMetaData (Com_SignalIdType SignalId, void* SignalDataPtr, uint16 Length, uint8* MetaDataPtr);

The service Com_ Send Dyn Signal With Meta Data updates the signal object identified by Signal Id wit h the signal referenced by the Signal Data Ptr parameter. The meta data is provided via the Meta Data Ptr parameter. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: aa04247eb161 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Semantics

The function Com_SendDynSignalWithMetaData is used to asynchronously update a signal object identified via SignalId (type Com_SignalIdType) with signal data of dynamic length and the associated metadata [SWS_Com_91010]. The payload data to be transmitted is referenced via the pointer SignalDataPtr (type void*), while MetaDataPtr (type uint8*) points to the metadata [SWS_Com_91010]. The actual length of the dynamic signal to be sent is passed via parameter Length (type uint16) [SWS_Com_91010].

Return Values and Error Handling

The return value of type uint8 signals whether the service was accepted or which error is present [SWS_Com_91010]:

  • E_OK: The service call was successfully accepted for processing [SWS_Com_91010].
  • E_NOT_OK: The passed Length exceeds the ComSignalLength configured for this signal [SWS_Com_91010].
  • COM_SERVICE_NOT_AVAILABLE: The associated I-PDU group was stopped or the call failed due to a development error [SWS_Com_91010].
  • COM_BUSY: The TP buffer is currently locked, which is why the signal cannot be sent [SWS_Com_91010].

Concurrency and Integration

With regard to concurrency, the function is reentrant for different signals, but non-reentrant for the same signal [SWS_Com_91010]. The interface has the service ID 0x4e and is made available in module Com via the header file Com.h [SWS_Com_91010].

Usage note created based on specification elements of AUTOSAR Release R20-11.

function Data [SWS_Com_91011] 📄 PDF

uint8 Com_SendSignalGroupWithMetaData (Com_SignalGroupIdType SignalGroupId, uint8* MetaDataPtr);

The service Com_ Send Signal Group With Meta Data copies the content of the associated shadow buffer to the associated I - PDU. The meta data is provided via the Meta Data Ptr parameter.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 5e6b0b47ffec Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function Com_SendSignalGroupWithMetaData (referred to in the data model as Data) is used to asynchronously transmit a signal group along with metadata to module Com [SWS_Com_91011]. When called, the service copies the current content of the assigned shadow buffer into the associated I-PDU, with the metadata being provided via pointer MetaDataPtr [SWS_Com_91011].

The input parameters comprise the identifier of the signal group (SignalGroupId) and the pointer to the metadata (MetaDataPtr) [SWS_Com_91011]. The return values report the result of the service request:

  • E_OK: The service was accepted successfully [SWS_Com_91011].
  • COM_SERVICE_NOT_AVAILABLE: The associated I-PDU group was stopped or execution failed due to a development error [SWS_Com_91011].
  • COM_BUSY: The TP buffer is locked for the transmission of large data types [SWS_Com_91011].

Regarding concurrency, the call is reentrant for different signals, but non-reentrant for the same group signal; analogously to parameter SignalGroupId, this is likely to refer to the respective signal group [SWS_Com_91011]. Question Q-91171d77370ae50a (open) In interaction with module Com, the service complements the sending of individual signals such as Com_SendSignal [SWS_Com_00197] and the invalidation of signal groups via Com_InvalidateSignalGroup [SWS_Com_00557]. Furthermore, it corresponds to the reception service Com_ReceiveSignalWithMetaData [SWS_Com_91005] and the PDU-based transmit call Com_TriggerIPDUSendWithMetaData [SWS_Com_00858].

This usage note was generated automatically based on the specification.

function Com_SendSignalGroupArrayWithMetaData [SWS_Com_91012] 📄 PDF

uint8 Com_SendSignalGroupArrayWithMetaData (Com_SignalGroupIdType SignalGroupId, uint8* SignalGroupArrayPtr, uint8* MetaDataPtr);

The service Com_ Send Signal Group Array With Meta Data copies the content of the provided Signal Group Array Ptr to the associated I - PDU. The provided data shall c orrespond to the array representation of the signal group. The meta data is provi- ded via the Meta Data Ptr parameter.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: fef50dded4da Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Parameters

The function Com_SendSignalGroupArrayWithMetaData is used to asynchronously transmit a signal group along with associated metadata [SWS_Com_91012]. When called, the service copies the content of the passed pointer SignalGroupArrayPtr directly into the assigned I-PDU [SWS_Com_91012]. The provided data must strictly correspond to the array representation of the signal group, which is identified via the parameter SignalGroupId of type Com_SignalGroupIdType [SWS_Com_91012]. Additional metadata of the signal group is passed to the communication layer via the pointer MetaDataPtr [SWS_Com_91012].

Return Values and Error Handling

The function returns a status value of type uint8 that indicates the success of the transfer or the respective cause of error [SWS_Com_91012]:

  • E_OK: The service call was successfully accepted by the COM layer [SWS_Com_91012].
  • COM_SERVICE_NOT_AVAILABLE: The associated I-PDU group is stopped or the call failed due to a development error [SWS_Com_91012].
  • COM_BUSY: The transport protocol buffer (TP buffer) is locked for the processing of large data types [SWS_Com_91012].

Concurrency and Limitations

According to the specification, the service is classified as non-reentrant (Non Reentrant), which is why concurrent or interrupting calls are not permitted [SWS_Com_91012]. The interface has the service ID 0x50 and is provided via the header file Com.h [SWS_Com_91012].

This usage note was generated automatically based on AUTOSAR specification status R20-11.

function Com_InvalidateSignal [SWS_Com_00203] 📄 PDF

uint8 Com_InvalidateSignal (Com_SignalIdType SignalId);

The service Com_ In validate Signal invalidates the signal with the given Signal Id by setting its value to its configured Com Signal Data Invalid Value.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 019013453d98 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Function Com_InvalidateSignal serves to invalidate a signal in communication module [SWS_Com_00203]. It sets the value of the passed signal to the invalid value defined in the configuration Com Signal Data Invalid Value [SWS_Com_00203]. Processing takes place asynchronously [SWS_Com_00203]. Input parameter SignalId is passed as the only input parameter to identify the signal; input/output or output parameters do not exist [SWS_Com_00203].

As return value, the call returns a status of type uint8 representing acceptance and error behavior [SWS_Com_00203]:

  • E_OK: The invalidation service was accepted successfully [SWS_Com_00203].
  • COM_SERVICE_NOT_AVAILABLE: The service is not available. This occurs if the associated I-PDU group is stopped, if no Com Signal Data Invalid Value has been configured for the specified SignalId, or if execution fails due to a development error [SWS_Com_00203].
  • COM_BUSY: The service cannot be executed currently because the TP buffer is locked [SWS_Com_00203].

Regarding concurrency, Com_InvalidateSignal is non-reentrant for the same signal, but may be executed in parallel and reentrantly for different signals [SWS_Com_00203]. The service is declared under service ID 0x10 and available via header Com.h [SWS_Com_00203].

This usage note was generated by an AI based on the specification AUTOSAR CP R20-11.

Implementer's Guide to follow (complexity I1)

function Com_InvalidateSignalGroup [SWS_Com_00557] 📄 PDF

uint8 Com_InvalidateSignalGroup (Com_SignalGroupIdType SignalGroupId);

The service Co m_ Invalidate Signal Group invalidates all group signals of the signal group with the given Signal Group Id by setting their values to their configured Com Signal Data Invalid Values.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 1812d1ef8d9a Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function Com_InvalidateSignalGroup serves to set all group signals of the passed signal group to their respective configured ComSignalDataInvalidValue values and thus invalidate the signal group [SWS_Com_00557].

Usage and Semantics

The service expects the ID of the signal group to be invalidated (SignalGroupId of type Com_SignalGroupIdType) as an input parameter [SWS_Com_00557]. The call is processed asynchronously and returns a status value of type uint8 [SWS_Com_00557].

Return Values and Error Handling

The following return values are specified [SWS_Com_00557]:

  • E_OK: The invalidation request was successfully accepted.
  • COM_SERVICE_NOT_AVAILABLE: The service is not available because the corresponding I-PDU group is stopped, no ComSignalDataInvalidValue has been configured for any of the group signals, or the call fails due to a development error.
  • COM_BUSY: The transport protocol buffer (TP buffer) is currently locked.

Concurrency and Reentrancy

The function is non-reentrant for the same signal group, but may be called concurrently (reentrantly) for different signal groups [SWS_Com_00557]. The declaration is available via Com.h [SWS_Com_00557].

This usage note is based exclusively on the specification data from AUTOSAR CP R20-11.

function Com_TriggerIPDUSend [SWS_Com_00348] 📄 PDF

Std_ReturnType Com_TriggerIPDUSend (PduIdType PduId);

By a call to Com_ Trigger IPDUSend the I - PDU with the given ID is triggered for transmission.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: aaf0b030ff03 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous function Com_TriggerIPDUSend triggers the transmission of the I-PDU identified by parameter PduId [SWS_Com_00348]. It is available via header Com.h [SWS_Com_00348].

Call conditions and return values

The call triggers transmission only if the affected I-PDU is started [SWS_Com_00861]. Accordingly, the return value of type Std_ReturnType differentiates the status of the I-PDU [SWS_Com_00348]:

  • E_OK: The I-PDU was successfully triggered for transmission [SWS_Com_00348].
  • E_NOT_OK: The I-PDU is in the stopped state, so transmission could not be triggered [SWS_Com_00348].

Buffering and concurrency behavior

The function is specified as non-reentrant (Non Reentrant) [SWS_Com_00348]. A buffering mechanism is provided for large I-PDUs: if a large I-PDU is triggered via Com_TriggerIPDUSend while its buffer is locked, AUTOSAR COM temporarily stores the transmit request and transmits the I-PDU only once the buffer is available again [SWS_Com_00867].

This usage note was generated automatically based on the specification data of AUTOSAR Classic R20-11.

Implementer's Guide to follow (complexity I2)

function Com_TriggerIPDUSendWithMetaData [SWS_Com_00858] 📄 PDF

Std_ReturnType Com_TriggerIPDUSendWithMetaData (PduIdType PduId, const uint8* MetaData);

By a call to Com_ Trigger IPDUSend With Meta Data the AUTOSAR COM module updates its internal metadata for the I - PDU with the given ID by copying the metada- ta from the given position and with respect to length of the globally configured Meta Data Type of this I - PDU. Then the I - PDU is triggered for transmission.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 5bfdcae35579 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function Com_TriggerIPDUSendWithMetaData serves to trigger the transmission of an I-PDU synchronously and previously update its internal metadata in the AUTOSAR COM module [SWS_Com_00858]. As parameter PduId, the call expects the identifier of the I-PDU to be sent, and with MetaData a pointer to the metadata to be provided [SWS_Com_00858]. Taking into account the globally configured length of the I-PDU's metadata type, the COM module copies the data starting from the referenced address into its internal data storage and immediately afterwards triggers the transmission [SWS_Com_00858].

According to [SWS_Com_00862], however, the COM module may trigger the transmission of the I-PDU only if the I-PDU is in the started state. If, on the other hand, the I-PDU is stopped, the transmission is not triggered.

The result of the execution is signaled via the return value:

  • E_OK: Transmission of the I-PDU was successfully triggered [SWS_Com_00858].
  • E_NOT_OK: The I-PDU is stopped; the transmission could not be triggered [SWS_Com_00858].

Specific error codes for DET or DEM are not documented in the payload for this service.

With regard to concurrency, the interface is defined as non-reentrant (Non Reentrant) [SWS_Com_00858], which is why parallel calls must be excluded or synchronized. Presumably, it is the caller's responsibility to ensure the validity of the pointer MetaData and a sufficient buffer size according to the configured metadata length. Question Q-66c6abae0bbde275 (open)

This usage note was generated by an AI based on the AUTOSAR specification R20-11.

Implementer's Guide to follow (complexity I2)

function Com_SwitchIpduTxMode [SWS_Com_00784] 📄 PDF

void Com_SwitchIpduTxMode (PduIdType PduId, booleanMode); ⚠️

The service Com_ Switch Ipdu Tx Mode sets the transmi ssion mode of the I - PDU refe- renced by Pdu Id to Mode. In case the transmission mode changes, the new mode shall immediately be effective (see SWS_ Com_00239). In case the requested transmission mode was already active for this I - PDU, the call will have no effect.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 377789b5b880 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous interface Com_SwitchIpduTxMode serves to switch the transmission mode of an I-PDU and is specified in the header Com.h under the service ID 0x27 [SWS_Com_00784]. The identifier of the relevant I-PDU (PduId) and the desired transmission mode as a boolean value (Mode) are passed as parameters; no return value or output parameter exists [SWS_Com_00784]. The call switches the transmission properties synchronously and directly during execution [SWS_Com_00784].

The specification defines two cases for the effectiveness of the mode change:

  • If the transmission mode changes as a result of the call, the new operating mode takes effect immediately for the referenced I-PDU [SWS_Com_00784], [SWS_Com_00239].
  • If the requested transmission mode was already active for the affected I-PDU, the call remains completely without effect [SWS_Com_00784].

Regarding the further transmission process, the following applies to the interaction with cyclic transmission: If the transmission mode of an I-PDU is explicitly set via Com_SwitchIpduTxMode, the AUTOSAR COM module delays the subsequent cyclic transmissions of this I-PDU by the time offset ComTxModeTimeOffset [SWS_Com_00881].

With respect to concurrency, the function is designed to be reentrant for different I-PDU instances [SWS_Com_00784]. A concurrent or parallel call for the same PduId, however, is defined as non-reentrant and must be prevented by the caller [SWS_Com_00784].

This usage note was generated automatically based on the specification documents.

Implementer's Guide to follow (complexity I1)

function Com_TriggerTransmit [SWS_Com_00001] 📄 PDF

Std_ReturnType Com_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);

Within this API , the upper layer module (called module) shall check whether the available data fits into the buffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 3b61acbc40d3 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous function [SWS_Com_00001] serves to synchronously retrieve and copy SDU data of a transmit PDU (TxPduId) to be transmitted into the buffer provided by the caller. Via the in/out parameter PduInfoPtr, the caller passes both the destination address SduDataPtr and the maximum available buffer capacity in SduLength. If the SDU data fits completely into the buffer, it is copied, PduInfoPtr->SduLength is updated to the number of bytes actually copied, and the service terminates successfully with E_OK [SWS_Com_00001].

Error Handling and Boundary Conditions

The function aborts execution, copies no data, and returns E_NOT_OK if one of the following conditions applies:

In case of error (E_NOT_OK), the caller must not evaluate or reuse pointer PduInfoPtr, as it may point to invalid data or represent a NULL pointer [SWS_Com_00001].

Concurrency

With regard to concurrency, the interface is designed to be reentrant for different PDU IDs, but must not be called concurrently for the same TxPduId [SWS_Com_00001].

This usage note was generated automatically based on the AUTOSAR specification.

Implementer's Guide to follow (complexity I2)

function Com_RxIndication [SWS_Com_00123] 📄 PDF

void Com_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

Indication of a received PDU from a lower layer communication interface module.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 2689aa6ec38f Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function Com_RxIndication serves to signal and pass a received PDU from an underlying communication interface module to the AUTOSAR COM module [SWS_Com_00123]. The function declaration is provided via the header file Com.h and has the service ID 0x42 [SWS_Com_00123].

The call is performed with synchronous semantics and returns no return value (void) [SWS_Com_00123]. The interface defines neither input/output parameters nor pure output parameters, but exclusively two input parameters [SWS_Com_00123]:

  • RxPduId (data type PduIdType): Represents the unique identifier of the received PDU [SWS_Com_00123].
  • PduInfoPtr (pointer to constant PduInfoType): References the data structure containing the length of the received PDU (SduLength), a pointer to the buffer with the PDU data (SduDataPtr), and associated metadata [SWS_Com_00123].

Regarding concurrency behavior, Com_RxIndication is defined as reentrant for calls with different PDU IDs, but explicitly as non-reentrant for the same PDU ID [SWS_Com_00123]. Interpretation: Calling modules of the underlying communication interface are therefore likely obliged to synchronize or serialize concurrent calls for identical PDU IDs in order to maintain data consistency. Question Q-f3b6194f96c15091 (open)

This text was generated by an AI based on the specification AUTOSAR Classic R20-11.

Implementer's Guide to follow (complexity I1)

function Com_TpRxIndication [SWS_Com_00650] 📄 PDF

void Com_TpRxIndication (PduIdType id, Std_ReturnType result);

Called after an I - PDU has been received via the TP API, the result indicates whe- ther the transmission was successful or not.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 4850647a5abb Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous service function Com_TpRxIndication is called as soon as an I-PDU has been received via the TP API [SWS_Com_00650]. It informs the AUTOSAR COM module about the completion and the result of the reception process. The affected I-PDU is identified via parameter id, while parameter result indicates whether the transmission was successful or failed [SWS_Com_00650]. The function has no return value and is defined in header Com.h with service ID 0x45 [SWS_Com_00650]. A lower transport layer such as the PduR or a TP module is likely to act as caller. Question Q-d7006169cd162db4 (open)

Error handling

If Com_TpRxIndication is called with the result value E_NOT_OK for parameter result, the COM module treats all signals of the received large I-PDU exactly like signals that have become invalid [SWS_Com_00838]. In this error case, the module executes all configured ComDataInvalidActions for all contained signals and signal groups [SWS_Com_00838].

Concurrency and Constraints

The function is specified as reentrant and operates synchronously [SWS_Com_00650]. It can therefore be called concurrently for different I-PDUs, but should be processed without delay in the context of the calling instance.

This usage note was generated automatically based on the AUTOSAR specification R20-11.

Implementer's Guide to follow (complexity I2)

function Com_TxConfirmation [SWS_Com_00124] 📄 PDF

void Com_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);

The lower layer communication interface module confirms the transmission of a AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM PDU, or the failure to transmit a PDU.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 6f01cbf21243 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous callback function Com_TxConfirmation is declared via header Com.h and serves as the central confirmation interface of the AUTOSAR COM module [SWS_Com_00124]. A lower-layer communication interface module uses it to report the successful transmission of a PDU or the failure of the transmission process back to module Com [SWS_Com_00124].

Call Context and Parameters

The function is executed synchronously, has service ID 0x40, and returns no return value (void) [SWS_Com_00124]. It expects two input parameters:

  • TxPduId (type PduIdType): Unique identifier of the PDU whose transmission has completed or failed [SWS_Com_00124].
  • result (type Std_ReturnType): Result status of the transmission process [SWS_Com_00124]. The value E_OK confirms the successful transmission of the PDU, whereas E_NOT_OK signals a failure of the PDU transmission [SWS_Com_00124].

Concurrency and Limitations

Com_TxConfirmation is reentrant for different PDU IDs, but not reentrant for the same PDU ID [SWS_Com_00124]. Interpretation: Callers from the lower layer presumably must avoid consecutive or preemptive calls with the same TxPduId from different execution contexts so that the internal processing status of the Com module remains consistent. Question Q-146c1c92403b64fa (open)

Error handling

The specification defines no specific return values for this service and does not indicate separate DET or DEM error messages [SWS_Com_00124]. Erroneous transmissions are transmitted to the Com module exclusively via parameter result with error value E_NOT_OK [SWS_Com_00124].

This usage note was generated automatically based on the specification AUTOSAR R20-11.

Implementer's Guide to follow (complexity I1)

function Com_TpTxConfirmation [SWS_Com_00725] 📄 PDF

void Com_TpTxConfirmation (PduIdType id, Std_ReturnType result);

This function is called after the I - PDU has been transmitted on its network, the result indicates whether the transmission was successful or not.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 328768cdfded Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Semantics

The function Com_TpTxConfirmation is called after an I-PDU has been transmitted on the network to notify the COM module about the result of the transmission process [SWS_Com_00725]. Via the parameter id of type PduIdType, the transmitted I-PDU is identified, while result of type Std_ReturnType indicates whether the transmission was successful or failed [SWS_Com_00725]. The function has no return value (void) and exhibits synchronous execution semantics [SWS_Com_00725]. It is available via the header file Com.h and has the service ID 0x48 [SWS_Com_00725].

Error handling

Error reporting on this interface is performed exclusively via the parameter result, which indicates the success or failure of the I-PDU transfer [SWS_Com_00725]. Specific error codes and error messages to the Default Error Tracer (DET) or the Diagnostic Event Manager (DEM) module are not specified in the functional specification [SWS_Com_00725].

Concurrency and Constraints

The interface is specified as reentrant and may thus be executed in parallel [SWS_Com_00725]. As a temporal constraint, the call may only occur after the transmission of the I-PDU on the network has been completed [SWS_Com_00725]. Interpretation: Due to the naming convention and module structure, the call is likely typically initiated by an underlying transport protocol module. Question Q-8320e76ff63f62ce (open)

This text is based on the AUTOSAR R20-11 specification.

Implementer's Guide to follow (complexity I2)

function Com_StartReception [SWS_Com_00691] 📄 PDF

BufReq_ReturnType Com_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);

Service Com_StartReception.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 00b7efb3a544 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous and reentrant function Com_StartReception (available via Com.h, service ID 0x46) is called at the start of the reception of an N-SDU, which is transmitted unfragmented as a Single Frame (SF) or fragmented via a First Frame (FF) with subsequent Consecutive Frames (CF) [SWS_Com_00691].

The I-PDU is identified via the parameter id, and TpSduLength indicates the total length of the N-SDU to be received [SWS_Com_00691]. The pointer info points to the payload and payload length of the first or single frame as well as to associated metadata; if neither frame data nor metadata is available, NULL_PTR is passed [SWS_Com_00691]. Via the output parameter bufferSizePtr, the function provides the available buffer size, which the transport protocol module uses to determine the block size (BS) [SWS_Com_00691]. If the service is called with a TpSduLength of 0, it returns the currently maximum available buffer size [SWS_Com_00691].

The result of the request is returned as BufReq_ReturnType [SWS_Com_00691]:

  • BUFREQ_OK: The connection is accepted and reception continues; bufferSizePtr indicates the available buffer or signals 0 if no buffer of the requested size is available [SWS_Com_00691].
  • BUFREQ_E_NOT_OK: The connection is rejected and reception is aborted; the value of bufferSizePtr remains unchanged [SWS_Com_00691].
  • BUFREQ_E_OVFL: No buffer of the required length can be provided, whereupon reception aborts; bufferSizePtr remains unchanged [SWS_Com_00691].

This text was generated by an AI based on the AUTOSAR R20-11 specification.

Implementer's Guide to follow (complexity I1)

function Com_CopyRxData [SWS_Com_00692] 📄 PDF

BufReq_ReturnType Com_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);

Service Com_CopyRxData.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 729d3072fcb5 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and invocation semantics

The synchronous function Com_CopyRxData is called to pass the received data of an I-PDU segment (N-PDU) to the upper layer [SWS_Com_00692]. For segmented transmissions, each consecutive call to this interface provides the respective next part of the total I-PDU data [SWS_Com_00692].

Parameters and Buffer Management

  • id: Uniquely identifies the received I-PDU [SWS_Com_00692].
  • info: Pointer to a structure of type PduInfoType. Via SduDataPtr, it passes the pointer to the source buffer and via SduLength, the number of bytes to be copied [SWS_Com_00692]. Specifying 0 for SduLength serves to query the currently available buffer size of the upper layer; in this pure query case, SduDataPtr may be set to NULL_PTR [SWS_Com_00692].
  • bufferSizePtr: Pointer to a variable of type PduLengthType, into which the remaining size of the receive buffer after the copy operation is written [SWS_Com_00692].

Return Values and Properties

The function returns a status of type BufReq_ReturnType [SWS_Com_00692]:

  • BUFREQ_OK: The data was successfully copied into the destination buffer [SWS_Com_00692].
  • BUFREQ_E_NOT_OK: Copying of the data failed because an error occurred [SWS_Com_00692].

The interface has the service ID 0x44, is specified as reentrant, and is available via the header Com.h [SWS_Com_00692].

This text was generated by an AI and is based on the AUTOSAR R20-11 standard.

Implementer's Guide to follow (complexity I1)

function Com_CopyTxData [SWS_Com_00693] 📄 PDF

BufReq_ReturnType Com_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);

Service Com_CopyTxData.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 682b5915a18c Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous and reentrant function Com_CopyTxData is called by lower-layer modules (such as transport protocols) to incrementally retrieve transmit data for segments (N-PDUs) of an I-PDU from the transmit buffer of the COM module [SWS_Com_00693].

Usage and Parameters

Each call provides the next part of the I-PDU data [SWS_Com_00693]:

  • id: Identifies the I-PDU to be transmitted [SWS_Com_00693].
  • info: Specifies the destination buffer via SduDataPtr and the number of bytes to be copied via SduLength. A length of 0 is permissible to transmit status changes via retry or to query the available data amount; in this case, SduDataPtr may be a NULL_PTR [SWS_Com_00693].
  • retry: Confirms transmitted data or triggers retransmissions. If retry is a NULL_PTR, data may be removed from the buffer immediately after copying. If retry points to a RetryInfoType structure, TpDataState controls buffer retention: TP_CONFPENDING leaves data in the buffer for error recovery, TP_DATACONF confirms data copied before the call for deletion, and TP_DATARETRY copies previously read data again starting from offset TxTpDataCnt [SWS_Com_00693].
  • availableDataPtr: Returns the remaining number of available bytes in the transmit buffer, which enables dynamic transport protocols (such as FrIsoTp), for example, to determine subsequent segment sizes [SWS_Com_00693].

Return Values and Error Handling

The function result signals the success of the buffer request via BufReq_ReturnType [SWS_Com_00693]:

  • BUFREQ_OK: Data was completely copied into the destination buffer as requested [SWS_Com_00693].
  • BUFREQ_E_BUSY: The requested amount of data is not available in the transmit buffer. No data is copied, and the lower-layer module may repeat the call at a later time [SWS_Com_00693].
  • BUFREQ_E_NOT_OK: The request has failed; no data was copied [SWS_Com_00693].

This usage note was generated automatically based on the specification AUTOSAR CP R20-11.

Implementer's Guide to follow (complexity I1)

function Com_MainFunctionRx [SWS_Com_00398] 📄 PDF

void Com_MainFunctionRx (void);

This function performs the processing of the AUTOSAR COM module's receive processing that are not directly handled within the COM's functions invoked by the PDU - R, for example Com_ Rx Indication. Per configured Com Main Function Rx instance one Com_ Main F unction Rx_ shall be implemented. Hereby is the short name of the Com Main Function Rx configuration container in the ECU configuration.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: ac041132fbb2 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The synchronous function Com_MainFunctionRx handles the internal receive processing of the AUTOSAR COM module for operations that are not processed directly in the execution context of APIs called by the PDU Router (PduR), such as Com_RxIndication [SWS_Com_00398]. It has neither input nor output parameters and returns no return value [SWS_Com_00398]. The declaration is made via header SchM_Com.h; the call context is therefore typically expected to occur periodically through the Schedule Manager (SchM) [SWS_Com_00398]. Question Q-48d121e36f62c6de (open)

Error handling and initialization

If the function is executed before module initialization by Com_Init or after a call to Com_DeInit, unlike most regular COM APIs, no error COM_E_UNINIT (0x02) is generated, because Com_MainFunctionRx is explicitly exempt from this [SWS_Com_00804]. Specific error or return codes do not exist for this interface [SWS_Com_00398].

Concurrency and multi-instance operation

Regarding execution context and reentrancy, the following specifications apply [SWS_Com_00398]:

  • Reentrancy: The function is non-reentrant for the same instance, but may be called concurrently for different instances [SWS_Com_00398].
  • Instance-specific manifestation: For each container ComMainFunctionRx defined in the ECU configuration, an independent function is implemented in the form Com_MainFunctionRx_<shortName>, where <shortName> corresponds to the short name of the configuration container [SWS_Com_00398].

This text was generated by an AI and serves as guidance. The referenced AUTOSAR specifications are authoritative.

Implementer's Guide to follow (complexity I1)

function Com_MainFunctionTx [SWS_Com_00399] 📄 PDF

void Com_MainFunctionTx (void);

This function performs the processing of the AUTOSAR COM module's transmissi- on activities that are not directly handled within the COM's function invoked by the AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM RTE, for example Com_ Send Signal. Per configured Com Main Function Tx instance one Com_ Main F unction Tx_ shall be implemented. Hereby is the short name of the Com Main Function Tx configuration container in the ECU configuration.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 6bb3c5b804b7 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Operation

The function Com_MainFunctionTx executes transmit activities of the AUTOSAR COM module that are not handled directly within the COM functions called by the RTE (such as Com_SendSignal) ([SWS_Com_00399]). Execution is synchronous. It has neither input, input/output, nor output parameters and returns no return value ([SWS_Com_00399]). The interface is declared via SchM_Com.h; Interpretation: Due to this header affiliation, the call context is likely to lie in schedule management (SchM). Question Q-c33cfcf81700bcc5 (open)

For each configured container of a Com Main Function Tx in the ECU configuration, a specific instance function according to the naming scheme Com_MainFunctionTx_<shortName> must be implemented, where <shortName> corresponds to the short name of the configuration container ([SWS_Com_00399]).

Concurrency and Limitations

Regarding reentrancy, Com_MainFunctionTx is designed reentrantly for different instances, but must not be called reentrantly for the same instance ([SWS_Com_00399]).

Error Handling and Initialization State

According to [SWS_Com_00804], calling COM services before initialization via Com_Init or after de-initialization via Com_DeInit regularly results in error COM_E_UNINIT (0x02). However, Com_MainFunctionTx is explicitly excluded from this and does not generate such an initialization error in these states ([SWS_Com_00804]).

This text was generated by an artificial intelligence and is based on AUTOSAR specification R20-11.

Implementer's Guide to follow (complexity I1)

function Signals [SWS_Com_00400] 📄 PDF

void Com_MainFunctionRouteSignals (void);

Calls the signal gateway part of the AUTOSAR COM module to forward received signals to be routed. Per configured Com Main Function Route Signals instance one Com_ Main Functi on Route Signals_ shall be implemented. Hereby is the short name of the Com Main Function Route Signals configuration container in the ECU configuration.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 626630c6dee2 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The main function Com_MainFunctionRouteSignals (service ID 0x1a) serves in the AUTOSAR COM module as the central synchronous interface for signal forwarding ([SWS_Com_00400]). Its task is to call the signal gateway part of the COM module so that received signals designated for routing are forwarded to their configured destinations ([SWS_Com_00400]).

Call and Semantics

The parameterless C interface has the signature void Com_MainFunctionRouteSignals(void) ([SWS_Com_00400]). It is executed synchronously and has neither parameters for input, input/output, or output nor a return value ([SWS_Com_00400]). The declaration of the main function is provided via header file SchM_Com.h ([SWS_Com_00400]). Interpretation: Because of this provision via SchM_Com.h, the scheduled call in task context is likely to take place periodically by the BSW Scheduler (SchM). Question Q-0f0b57034d6d6bf1 (open)

Instantiation and reentrancy

For integration, naming, and concurrency, [SWS_Com_00400] defines the following binding requirements:

  • Instance-specific implementation: For each instance of configuration container ComMainFunctionRouteSignals present in the ECU configuration, a dedicated function must be implemented according to the naming scheme Com_MainFunctionRouteSignals_<shortName> ([SWS_Com_00400]). Here, <shortName> corresponds to the short name of the respective configuration container.
  • Reentrancy behavior: The function is reentrant for calls of different instances ([SWS_Com_00400]). For one and the same instance, however, it is explicitly non-reentrant and therefore must not be executed concurrently ([SWS_Com_00400]).

This usage note was generated automatically based on the specification.

function Com_CbkTxAck [SWS_Com_00468] 📄 PDF

void Com_CbkTxAck (void);

This callback represents notification class 2 of [17]. It is called immediately after successful transmission of the I - PDU containing the message.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 0cd088b5afe8 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Callback function Com_CbkTxAck serves in module Com to notify about the successful transmission of a message [SWS_Com_00468]. It represents notification class 2 (notification class 2) and is called immediately after the successful transmission of the I-PDU containing the message concerned [SWS_Com_00468].

According to the specification, the following requirements apply to the call context and interface properties [SWS_Com_00468]:

  • Signature and parameters: The callback function has signature void Com_CbkTxAck (void). It accepts neither input, input/output, nor output parameters and returns no return value [SWS_Com_00468].
  • Synchronicity: The call is specified as synchronous (Synchronous) [SWS_Com_00468].
  • Reentrancy: The reentrancy behavior is classified as don't care [SWS_Com_00468].
  • Configuration: The interface is declared as configurable (configurable) [SWS_Com_00468]. Interpretation: The actual name of the callback function is presumably parameterized message- or signal-specifically in the configuration tool. Question Q-3670b7b04fd7c74c (open)

Specific error codes, error reactions, and messages to DET or DEM are not defined for this element in the specification [SWS_Com_00468]. Further ordering constraints with respect to other calls are also not listed [SWS_Com_00468].

This text was generated by an AI based on AUTOSAR R20-11.

function Com_CbkTxErr [SWS_Com_00491] 📄 PDF

void Com_CbkTxErr (void);

This callback corresponds to notification class 4 of [17]. It is called in case the transmission is not possible because the corresponding I - PDU group is stopped.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 2eeb947394ae Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Callback function Com_CbkTxErr is called synchronously when transmission is not possible because the associated I-PDU group is stopped [SWS_Com_00491]. It corresponds to notification class 4 according to the underlying specifications [SWS_Com_00491].

Call and Semantics

  • Signature and parameters: The function has neither input, input/output, nor output parameters (void Com_CbkTxErr (void)) and returns no return value [SWS_Com_00491].
  • Execution behavior: The call occurs synchronously (\"Synchronous\"), while \"don't care\" is specified for reentrancy [SWS_Com_00491].
  • Availability: The callback interface is configurable (\"configurable\") [SWS_Com_00491].

Error Handling and Interaction

The function specifically serves to signal the error case of a prevented transmit request due to a stopped I-PDU group to the calling or upper layer [SWS_Com_00491]. Because no parameters are passed, the context of the affected signal or I-PDU is presumably specified via configuration or module-specific mappings. Question Q-d7153324d2eb2995 (open)

This usage note was generated automatically by an AI system based on the specification data.

function Com_CbkTxTOut [SWS_Com_00554] 📄 PDF

void Com_CbkTxTOut (void);

This callback corresponds to notification class 4 of [17]. It is called immediately after a message transmission error has been detected by the deadline monitoring mechanism.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 2a4f700c045f Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Call Context

Callback function Com_CbkTxTOut serves as a notification interface for the failure of a successful transmission. According to [SWS_Com_00554], it is called immediately after the deadline monitoring mechanism (deadline monitoring mechanism) has detected a transmission error of a message. The call is synchronous and corresponds to notification class 4. Because signature void Com_CbkTxTOut(void) has neither input nor return values, signaling to the upper layer is parameterless.

Concurrency and Configuration

Regarding reentrancy, the function is specified with don't care according to [SWS_Com_00554]. It is therefore presumably the responsibility of the invoked application software to take appropriate measures for thread safety if monitoring events can occur concurrently. Question Q-793a6c18d81de85e (open) Availability of the callback function is configurable in the communication module and is adapted to the respective monitoring requirements.

Error handling

In [SWS_Com_00554], no separate DET or DEM error messages and no return values for error acknowledgement are defined for Com_CbkTxTOut. Triggering the callback itself represents the error reaction to an exceeded transmission deadline.

This text was generated by an AI based on the AUTOSAR specification R20-11.

function Com_CbkRxAck [SWS_Com_00555] 📄 PDF

void Com_CbkRxAck (void);

This callback represents notification class 1 of [17]. It is called immediately after the message has been stored in the receiving message object.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 5f202dc48b43 Provenance Open questions (2)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Callback function Com_CbkRxAck serves in the AUTOSAR COM module as a configurable reception confirmation and represents notification class 1 according to [17] [SWS_Com_00555]. The COM module calls this callback routine immediately after a received message has been successfully deposited and stored in the designated receive message object [SWS_Com_00555].

Usage and Call Context

  • Synchronous execution behavior: The function is specified as synchronous [SWS_Com_00555]. It is executed directly in the course of the storage operation, so that the calling context of the COM module waits for the execution of the callback.
  • Parameters and return values: According to signature void Com_CbkRxAck (void), no input parameters, no input/output parameters, and no output parameters are passed [SWS_Com_00555]. The function also returns no return value to the calling module [SWS_Com_00555].
  • Availability: The call mechanism is available to the system as a configurable interface [SWS_Com_00555].

Concurrency and Error Handling

The property \"don't care\" is defined for reentrancy [SWS_Com_00555]. This presumably means that the COM specification imposes no requirements on a reentrant invocation and protection mechanisms against concurrent access are the responsibility of the user. Question (open) Because neither return values nor specific error codes or error messages for DET or DEM are defined [SWS_Com_00555], any errors during processing presumably must be handled entirely locally within the callback function.

This text was generated by an AI based on the R20-11 specification.

function Com_CbkRxTOut [SWS_Com_00556] 📄 PDF

void Com_CbkRxTOut (void);

This callback corresponds to notification class 3 of [17]. It is called immediately after a message reception error has been detected by the deadline monitoring mechanism.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 8121281e52ca Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Semantics

Callback function Com_CbkRxTOut serves to notify about the absence of an expected message. According to [SWS_Com_00556], it is called immediately as soon as the module's deadline monitoring mechanism detects an error during message reception. This notification corresponds to reporting class 3 (\"notification class 3 of [17]\") and is available as a configurable interface [SWS_Com_00556].

The call occurs synchronously (Synchronous) without input parameters and without a return value (void Com_CbkRxTOut(void)) [SWS_Com_00556]. The function thus purely signals the timeout event itself to the calling receiver or the upper software layer without transmitting context data directly in the call.

Concurrency and Limitations

For the reentrancy of the function, don't care is specified in the specification [SWS_Com_00556]. Because the call takes place immediately and synchronously after error detection, the implementation of the callback routine presumably must be designed to execute with low blocking so as not to impermissibly delay the deadline monitoring of the COM module. Question Q-88055efc50f5843b (open)

This text was generated by an AI and serves as guidance. The referenced AUTOSAR specifications are authoritative.

function Com_CbkInv [SWS_Com_00536] 📄 PDF

void Com_CbkInv (void);

This callback function corresponds to SWS_ Com_00680. It is called after recepti- on of an invalid signal or signal group respectively.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 148e16c23d2c Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Callback function Com_CbkInv notifies upper software layers about the reception of corrupted or invalid communication data in the AUTOSAR COM module [SWS_Com_00536]. It is called immediately after receiving an invalid signal or an invalid signal group and informs the receiver about the presence of an invalid signal value [SWS_Com_00536].

The interface has signature void Com_CbkInv(void), consequently takes no input parameters, and returns no return value to the caller [SWS_Com_00536]. The call occurs synchronously, while reentrancy behavior is stated as \"don't care\" in the specification [SWS_Com_00536]. Since no parameters identifying the affected signal are passed, identifier Com_CbkInv presumably serves as a configurable signature template for signal-specific notifications. Question Q-6e02e6bcf324eb93 (open)

Regarding integration and system behavior, the following boundary conditions apply:

  • Provision of the function is configurable, allowing notification to be activated per signal or signal group as needed [SWS_Com_00536].
  • Technically, the function corresponds to requirement SWS_Com_00680 for invalidation handling of received signals in the COM module [SWS_Com_00536].
  • Specific error handling routines, error codes, or error messages to development or diagnostic modules such as DET or DEM are not identified for this interface [SWS_Com_00536].

This usage note was generated automatically based on specification data.

function Com_CbkCounterErr [SWS_Com_00726] 📄 PDF

void Com_CbkCounterErr (PduIdType ComPduId, uint8 ExpectedCounter, uint8 ReceivedCounter);

This function is called immediately, if the AUTOSAR COM module receives an I - PDU counter that differs from the expected one. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: df6b24d5c921 Provenance Open questions (2)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The configurable callback function Com_CbkCounterErr serves to signal errors in I-PDU counter monitoring according to [SWS_Com_00726]. It is called immediately and synchronously by the AUTOSAR COM module when a counter value is detected in a received I-PDU that does not match the expected counter value. This enables early detection of sequence errors during message reception.

The interface has no return value (void) and passes three input parameters for error analysis when called ([SWS_Com_00726]):

  • ComPduId (PduIdType): Identifier of the affected I-PDU in which the counter error occurred.
  • ExpectedCounter (uint8): The counter value of the I-PDU expected by the COM module.
  • ReceivedCounter (uint8): The counter value actually found in the received message.

Regarding concurrency, the reentrancy of the function is declared in the specification as “don't care” ([SWS_Com_00726]). Specific DET or DEM error messages are not specified for this interface in [SWS_Com_00726]. Since the callback function is defined as configurable, it is probably implemented in a higher layer such as the application in order to react to transmission errors or packet loss in an application-specific manner. Interpretation: Since the call takes place immediately and synchronously in the context of COM reception processing ([SWS_Com_00726]), the called routine should presumably not perform any blocking operations. Question Q-a745eb5416fc156b (open)

This usage note was generated by an AI based on the AUTOSAR R20-11 specification.

function Com_CbkTxPrep [SWS_Com_91013] 📄 PDF

void Com_CbkTxPrep (void);

This callback function indicates that the signals/ signal groups of a dedicated Com_ Main Function Tx instance will now be prepared for transmission.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 0dd4280d4342 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The callback function Com_CbkTxPrep serves as a notification that the signals or signal groups of a dedicated instance of Com_MainFunctionTx are now being prepared for transmission [SWS_Com_91013]. The execution of the function is synchronous to the calling instance [SWS_Com_91013]. According to its signature void Com_CbkTxPrep(void), it accepts neither input parameters nor input/output parameters or output parameters, and it has no return value [SWS_Com_91013].

The provision of the interface is available via configuration [SWS_Com_91013]. If the configuration parameter ComPreparationNotification is configured, the respective function Com_CbkTxPrep must be called within the associated MainFunctionTx [SWS_Com_00886]. In this case, a strict temporal ordering condition must mandatorily be observed: The call must take place completely before the actual processing of the I-PDUs is started within the Tx main function [SWS_Com_00886].

Regarding concurrency behavior and potential restrictions, Com_CbkTxPrep is specified as non-reentrant (Non Reentrant) [SWS_Com_91013]. The call context is strictly bound to the execution of the respective instance of MainFunctionTx [SWS_Com_91013]. Since the callback must be executed immediately before the start of I-PDU processing, the function is integrated synchronously into the corresponding transmission routine [SWS_Com_00886].

This usage note was generated automatically based on the AUTOSAR specification R20-11.

Implementer's Guide to follow (complexity I1)

function Com_RxIpduCallout [SWS_Com_00700] 📄 PDF

boolean Com_RxIpduCallout (PduIdType PduId, const PduInfoType* PduInfoPtr);

The I - PDU callout on receiver side can be configured to implement user - defined receive filtering mechanisms.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 27d82988d509 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function Com_RxIpduCallout is a configurable callout on the receiver side that serves to implement user-specific receive filtering mechanisms for I-PDUs [SWS_Com_00700]. Execution is synchronous, and with regard to reentrancy, the interface is specified as don't care [SWS_Com_00700].

The identifier as well as the data of the received PDU are passed to the call [SWS_Com_00700]:

  • PduId: Identifier of the received I-PDU [SWS_Com_00700].
  • PduInfoPtr: Pointer to a PduInfoType structure, which provides the length (SduLength) as well as a pointer to the payload (SduDataPtr) of the received I-PDU [SWS_Com_00700].

Regarding data provision, [SWS_Com_00816] requires that the module AUTOSAR COM forwards all data of the received I-PDU completely to Com_RxIpduCallout, exactly as provided by the PDU Router layer (PduR).

Via the boolean return value, the callout controls the subsequent processing of the I-PDU in the COM module [SWS_Com_00700]:

  • true: The received I-PDU is processed further normally [SWS_Com_00700].
  • false: The I-PDU is not processed further and is thus discarded [SWS_Com_00700].

Specific error codes, return code constants, or DET and DEM messages are not provided for this callout in the specification [SWS_Com_00700].

Note: This usage note was automatically generated by an AI system based on the AUTOSAR R20-11 specification.

function Com_TxIpduCallout [SWS_Com_00346] 📄 PDF

boolean Com_TxIpduCallout (PduIdType PduId, PduInfoType* PduInfoPtr);

The I - PDU callout on sender side can be configured for example to implement user - defined transmission filtering or user - defined pre - transmission - processing of the outgoing I - PDU.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: df5cc1442b9d Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function Com_TxIpduCallout serves as a configurable callout on the sender side and is called synchronously to perform user-specific preprocessing or transmission filtering of an outgoing I-PDU [SWS_Com_00346].

Parameters and Return Value

  • PduId (in): Passes the identifier of the I-PDU to be transmitted [SWS_Com_00346].
  • PduInfoPtr (inout): Contains the payload length (SduLength) as well as a pointer to the payload (SduDataPtr) of the I-PDU [SWS_Com_00346]. Through this, the I-PDU data can be inspected or modified before sending.
  • Return value (boolean): Controls the further processing of the I-PDU [SWS_Com_00346]. A return value of true causes the regular transmission of the I-PDU, whereas false aborts any further processing and thus the transmission [SWS_Com_00346].

Concurrency and Configuration

The callout has service ID 0x29 and its reentrancy is defined as "don't care" in the specification [SWS_Com_00346]. Interpretation: Since reentrancy is unrestricted, calls are likely to occur in different task contexts depending on the triggering transmit request, which is why user-side implementations should be thread-safe for shared resources. Question Q-3ce35701879bb60c (open)

This text was created automatically. All statements are based exclusively on AUTOSAR specification status R20-11.

type Com_StatusType [SWS_Com_00819] 📄 PDF

This is a status value returned by the API service Com_ Get Status().

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 7e3d9f87970e Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The enumeration type Com_StatusType defines the status value for the AUTOSAR COM module and is provided via the header file Com.h [SWS_Com_00819]. This type serves as the return value of the API service Com_GetStatus(), with which callers can query the current initialization and operating state of the communication module [SWS_Com_00819].

The specified value range of Com_StatusType distinguishes exactly two states [SWS_Com_00819]:

  • COM_UNINIT: Indicates that the AUTOSAR COM module is not initialized or not usable [SWS_Com_00819]. This state mandatorily has the numerical value 0x00 (or value 0) and constitutes the mandatory default value immediately after a system reset [SWS_Com_00819].
  • COM_INIT: Signals that the AUTOSAR COM module has been properly initialized and is therefore operational and usable [SWS_Com_00819].

For the calling software, the evaluation of this return value serves to verify the operational readiness of the communication module prior to its use [SWS_Com_00819]. As long as the service Com_GetStatus() returns the value COM_UNINIT, the COM module is considered not initialized or not usable [SWS_Com_00819]. Only when the status has the value COM_INIT is the module initialized and operational [SWS_Com_00819]. Further error codes or return values are not specified for this enumeration type [SWS_Com_00819].

This usage note was created automatically based on the specification.

Implementer's Guide to follow (complexity I1)

type Com_ConfigType [SWS_Com_00825] 📄 PDF

This is the type of the data structure containing the initialization data for COM.

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

Record
AUTOSAR/AP/record/CP_MOD_Com
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Com@rel:R20-11#965353ff
Content hash
965353ff
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_COM.pdf#nameddest=SWS_Com_00432

Initialization and status

Com_DeInit function

This service stops the inter - ECU communication. All started I - PDU groups are stop- ped and have to be started again, if needed, after Com_ Init is called. By a call to Com_ De Init the AUTOSAR COM module is put into an not initialized state.

void Com_DeInit (void);
Com_GetStatus function

Returns the status of the AUTOSAR COM module. Availab le via Com.h

Com_StatusType Com_GetStatus (void);

Returns the version information of this module.

void Com_GetVersionInfo (Std_VersionInfoType* versioninfo);
Com_Init function

This service initializes internal and external interfaces and variables of the AUTO- SAR COM module layer for the further processing. After calling this function the inter - ECU communication is still disabled. In configurations, in which Com is assigned to mo re than one partition (i.e. Com_ Main Functions are mapped to partitions), Com may provide one init function per AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM partition.

void Com_Init (const Com_ConfigType* config);

Services · Receive…

Com_ Receive Dyn Signal copies the data of the signal identified by Signal Id to the lo cation specified by Signal Data Ptr and stores the length of the dynamical length signal at the position given by the Length parameter.

uint8 Com_ReceiveDynSignal (Com_SignalIdType SignalId, void* SignalDataPtr, uint16* Length);

Com_ Receive Dyn Signal With Meta Da ta copies the data of the signal identified by Signal Id to the location specified by Signal Data Ptr and stores the length of the dy- namical length signal at the position given by the Length parameter. The received meta data is stored at the position given by the Meta Data Ptr parameter.

uint8 Com_ReceiveDynSignalWithMetaData (Com_SignalIdType SignalId, void* SignalDataPtr, uint16* Length, uint8* MetaDataPtr);

Com_ Receive Signal copies the data of the signal identified by Signal Id to the location specified by Signal Data Ptr.

uint8 Com_ReceiveSignal (Com_SignalIdType SignalId, void* SignalDataPtr);

The service Com_ Receive Signal Group copies the received signal group from the I - PDU to the shadow buffer.

uint8 Com_ReceiveSignalGroup (Com_SignalGroupIdType SignalGroupId);

The service Com_ Receive Signal Group Array copies the re ceived signal group array AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM representation from the PDU to the location designated by Signal Group Ar - ray Ptr.

uint8 Com_ReceiveSignalGroupArray (Com_SignalGroupIdType SignalGroupId, uint8* SignalGroupArrayPtr);

The service Com_ Receive Signal Group Array With Meta Data copies the received si gnal group array representation from the PDU to the location designated by Signal Group Ar - ray Ptr. The received meta data is stored at the position given by the Meta Data Ptr parameter.

void Com_ReceiveSignalGroupArrayWithMetaData (Com_SignalGroupIdType SignalGroupId, uint8* SignalGroupArrayPtr, uint8* MetaDataPtr);

The service Com_ Receive Signal Group With Meta Data copies the received signal group from the I - PDU to the shadow buffer. The received meta data is stored at the position given by the Meta Data Ptr parameter.

uint8 Com_ReceiveSignalGroupWithMetaData (Com_SignalGroupIdType SignalGroupId, uint8* MetaDataPtr);

Com_ Receive Signal With Meta Data copies the data of the signal identified by Signal Id to the location specified by Signal Data Ptr. The received meta data is stored at the position given by the Meta Data Ptr parameter. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM

uint8 Com_ReceiveSignalWithMetaData (Com_SignalIdType SignalId, void* SignalDataPtr, uint8* MetaDataPtr);

Services · Send…

The service Com_ Send Dyn Signal updates the signal object identified by Signal Id with the signal referenced by the Signal Data Ptr parameter.

uint8 Com_SendDynSignal (Com_SignalIdType SignalId, const void* SignalDataPtr, uint16 Length);

The service Com_ Send Dyn Signal With Meta Data updates the signal object identified by Signal Id wit h the signal referenced by the Signal Data Ptr parameter. The meta data is provided via the Meta Data Ptr parameter. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM

uint8 Com_SendDynSignalWithMetaData (Com_SignalIdType SignalId, void* SignalDataPtr, uint16 Length, uint8* MetaDataPtr);

The service Com_ Send Signal updates the signal object identified by Signal Id with the signal referenced by the Signal Data Ptr parameter. Avai lable via Com.h

uint8 Com_SendSignal (Com_SignalIdType SignalId, const void* SignalDataPtr);

The service Com_ Send Si gnal Group copies the content of the associated shadow buffer to the associated I - PDU.

uint8 Com_SendSignalGroup (Com_SignalGroupIdType SignalGroupId);

The service Com_ Send Signal Group Array copies the conte nt of the provided Signal Group Array Ptr to the associated I - PDU. The provided data shall correspond to the array representation of the signal group.

uint8 Com_SendSignalGroupArray (Com_SignalGroupIdType SignalGroupId, const uint8* SignalGroupArrayPtr);

The service Com_ Send Signal Group Array With Meta Data copies the content of the provided Signal Group Array Ptr to the associated I - PDU. The provided data shall c orrespond to the array representation of the signal group. The meta data is provi- ded via the Meta Data Ptr parameter.

uint8 Com_SendSignalGroupArrayWithMetaData (Com_SignalGroupIdType SignalGroupId, uint8* SignalGroupArrayPtr, uint8* MetaDataPtr);

The service Com_ Send Signal Group With Meta Data copies the content of the associated shadow buffer to the associated I - PDU. The meta data is provided via the Meta Data Ptr parameter.

uint8 Com_SendSignalGroupWithMetaData (Com_SignalGroupIdType SignalGroupId, uint8* MetaDataPtr);

The service Com_ Send Si gnal With Meta Data updates the signal object identified by Signal Id with the signal referenced by the Signal Data Ptr parameter. The meta data is provided via the Meta Data Ptr parameter.

uint8 Com_SendSignalWithMetaData (Com_SignalIdType SignalId, void* SignalDataPtr, uint8* MetaDataPtr);

Services · More

Disables the reception deadline monitoring for the I - PDUs within the given I - PDU group.

void Com_DisableReceptionDM (Com_IpduGroupIdType IpduGroupId);

Enables the reception deadline monitoring for the I - PDUs within the given I - PDU group.

void Com_EnableReceptionDM (Com_IpduGroupIdType IpduGroupId);

The service Com_ In validate Signal invalidates the signal with the given Signal Id by setting its value to its configured Com Signal Data Invalid Value.

uint8 Com_InvalidateSignal (Com_SignalIdType SignalId);

The service Co m_ Invalidate Signal Group invalidates all group signals of the signal group with the given Signal Group Id by setting their values to their configured Com Signal Data Invalid Values.

uint8 Com_InvalidateSignalGroup (Com_SignalGroupIdType SignalGroupId);

Starts a preconfigured I - PDU group. For example, cyclic I - PDUs will be sent out cyclically after the call of Com_ Ipdu Group Start(). If Initialize is true all I - PDUs of the I - PDU group shall be (r e - )initialized before the I - PDU group is started. That is they shall behave like after a start - up of COM, for example the old_ value of the filter ob- jects and shadow buffers of signal groups have to be (re - )initialized.

void Com_IpduGroupStart (Com_IpduGroupIdType IpduGroupId, boolean initialize);

Stops a preconfigured I - PDU group. For example, cyclic I - PDUs will be stopped after the call of Com_ Ipdu Group Stop().

void Com_IpduGroupStop (Com_IpduGroupIdType IpduGroupId);

The service Com_ Switch Ipdu Tx Mode sets the transmi ssion mode of the I - PDU refe- renced by Pdu Id to Mode. In case the transmission mode changes, the new mode shall immediately be effective (see SWS_ Com_00239). In case the requested transmission mode was already active for this I - PDU, the call will have no effect.

void Com_SwitchIpduTxMode (PduIdType PduId, booleanMode); ⚠️

By a call to Com_ Trigger IPDUSend the I - PDU with the given ID is triggered for transmission.

Std_ReturnType Com_TriggerIPDUSend (PduIdType PduId);

By a call to Com_ Trigger IPDUSend With Meta Data the AUTOSAR COM module updates its internal metadata for the I - PDU with the given ID by copying the metada- ta from the given position and with respect to length of the globally configured Meta Data Type of this I - PDU. Then the I - PDU is triggered for transmission.

Std_ReturnType Com_TriggerIPDUSendWithMetaData (PduIdType PduId, const uint8* MetaData);

Callbacks

This function is called immediately, if the AUTOSAR COM module receives an I - PDU counter that differs from the expected one. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM

void Com_CbkCounterErr (PduIdType ComPduId, uint8 ExpectedCounter, uint8 ReceivedCounter);
Com_CbkInv function

This callback function corresponds to SWS_ Com_00680. It is called after recepti- on of an invalid signal or signal group respectively.

void Com_CbkInv (void);
Com_CbkRxAck function

This callback represents notification class 1 of [17]. It is called immediately after the message has been stored in the receiving message object.

void Com_CbkRxAck (void);
Com_CbkRxTOut function

This callback corresponds to notification class 3 of [17]. It is called immediately after a message reception error has been detected by the deadline monitoring mechanism.

void Com_CbkRxTOut (void);
Com_CbkTxAck function

This callback represents notification class 2 of [17]. It is called immediately after successful transmission of the I - PDU containing the message.

void Com_CbkTxAck (void);
Com_CbkTxErr function

This callback corresponds to notification class 4 of [17]. It is called in case the transmission is not possible because the corresponding I - PDU group is stopped.

void Com_CbkTxErr (void);
Com_CbkTxPrep function

This callback function indicates that the signals/ signal groups of a dedicated Com_ Main Function Tx instance will now be prepared for transmission.

void Com_CbkTxPrep (void);
Com_CbkTxTOut function

This callback corresponds to notification class 4 of [17]. It is called immediately after a message transmission error has been detected by the deadline monitoring mechanism.

void Com_CbkTxTOut (void);

Service Com_CopyRxData.

BufReq_ReturnType Com_CopyRxData (PduIdType id, const PduInfoType* info, PduLengthType* bufferSizePtr);

Service Com_CopyTxData.

BufReq_ReturnType Com_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);

Indication of a received PDU from a lower layer communication interface module.

void Com_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);

Service Com_StartReception.

BufReq_ReturnType Com_StartOfReception (PduIdType id, const PduInfoType* info, PduLengthType TpSduLength, PduLengthType* bufferSizePtr);

Called after an I - PDU has been received via the TP API, the result indicates whe- ther the transmission was successful or not.

void Com_TpRxIndication (PduIdType id, Std_ReturnType result);

This function is called after the I - PDU has been transmitted on its network, the result indicates whether the transmission was successful or not.

void Com_TpTxConfirmation (PduIdType id, Std_ReturnType result);

Within this API , the upper layer module (called module) shall check whether the available data fits into the buffer size reported by Pdu Info Ptr - >Sdu Length. If it fits, it shall copy its data into the buffer provided by Pdu Info Ptr - >Sdu Data Ptr and update the length of the actual copied data in Pdu Info Ptr - >Sdu Length. If not, it returns E_ NOT_ OK without changing Pdu Info Ptr.

Std_ReturnType Com_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);

The lower layer communication interface module confirms the transmission of a AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM PDU, or the failure to transmit a PDU.

void Com_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);

Callouts and expected interfaces

The I - PDU callout on receiver side can be configured to implement user - defined receive filtering mechanisms.

boolean Com_RxIpduCallout (PduIdType PduId, const PduInfoType* PduInfoPtr);

The I - PDU callout on sender side can be configured for example to implement user - defined transmission filtering or user - defined pre - transmission - processing of the outgoing I - PDU.

boolean Com_TxIpduCallout (PduIdType PduId, PduInfoType* PduInfoPtr);

Cyclic

Calls the signal gateway part of the AUTOSAR COM module to forward received signals to be routed. Per configured Com Main Function Route Signals instance one Com_ Main Functi on Route Signals_ shall be implemented. Hereby is the short name of the Com Main Function Route Signals configuration container in the ECU configuration.

void Com_MainFunctionRouteSignals (void);

This function performs the processing of the AUTOSAR COM module's receive processing that are not directly handled within the COM's functions invoked by the PDU - R, for example Com_ Rx Indication. Per configured Com Main Function Rx instance one Com_ Main F unction Rx_ shall be implemented. Hereby is the short name of the Com Main Function Rx configuration container in the ECU configuration.

void Com_MainFunctionRx (void);

This function performs the processing of the AUTOSAR COM module's transmissi- on activities that are not directly handled within the COM's function invoked by the AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_COM RTE, for example Com_ Send Signal. Per configured Com Main Function Tx instance one Com_ Main F unction Tx_ shall be implemented. Hereby is the short name of the Com Main Function Tx configuration container in the ECU configuration.

void Com_MainFunctionTx (void);

Types

This is the type of the data structure containing the initialization data for COM.

The AUTOSAR COM I - PDU module's group object identifier.

The AUTOSAR COM module's signal group object identifier.

The AUTOSAR COM module's signal object identifier.

This is a status value returned by the API service Com_ Get Status().