DEENESPTFRRUARHIKOZHNL

AUTOSAR COM

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

模块指南人工智能生成

将 RTE 的信号映射到 I-PDU,并通过 PDU Router 控制其发送、接收和监控。
AI 生成 未审核 模型: claude-opus-5-5 · 推理强度: high · 温度: 不可控 · 提示词: 8d7d9ac9befb 来源 未决问题(3)
因果锚点:R20-11 自 R20-11 起有效 为此规范版本重新合成。
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

将 RTE 的信号映射到 I-PDU,并通过 PDU Router 控制其发送、接收和监控。

COM 将 RTE 的信号和信号组打包到 I-PDU 中,且仅通过 PDU Router 将其传递到总线。反之,它从 Com_RxIndication 解包接收到的 I-PDU 并通知 RTE [SWS_Com_00123]。发送根据配置的传输模式进行,周期性部分由 Com_MainFunctionTx 处理。通信仅针对其 I-PDU 组已启动的 I-PDU 进行,通常由 BswM [SWS_Com_91001] 启动。停止的组会导致 COM_SERVICE_NOT_AVAILABLE;截止时间监控会检测丢失的确认。

COM 在面向信号的 RTE 与面向 I-PDU 的通信栈之间进行协调。RTE 使用 Com_SendSignal 写入信号,并使用 Com_SendSignalGroup [SWS_Com_00197] [SWS_Com_00200] 写入信号组。通过相应的 Receive-API [SWS_Com_00198] 进行读取。向下的唯一接口是 PDU Router(RS COM 第12页)。PduR 调用 Com_RxIndication、Com_TxConfirmation 和 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

上下文图:COM 嵌入在 RTE、BswM、J1939Rm 与 PduR 之间。来源:SWS PduR 第24页、SWS BswM 第93页

在 Com_Init 之后,ECU 间通信尚未使能 [SWS_Com_00432]。使能是通过 I-PDU 组进行的,通常由 BswM 使用 Com_IpduGroupStart 和 Com_IpduGroupStop 控制 [SWS_Com_91001] [SWS_Com_91002]。只要某个 I-PDU 的至少一个组已启动,该 I-PDU 就处于活动状态 [SWS_Com_00771]。在停止时,COM 会丢弃未决的发送请求 [SWS_Com_00777]。

在发送时,Transmission Mode Selection 在两种配置的模式之间进行选择(TPS SystemTemplate 第274页)。周期性部分由 Com_MainFunctionTx [SWS_Com_00399] 接管。在 CAN 上直接传递,而在 FlexRay 上,FrIf 通过 TriggerTransmit 获取数据(SWS PduR 第101页)。在接收时,COM 会丢弃 Update-Bit 未置位的信号,并在某个组信号被过滤掉时丢弃整个信号组 [SWS_Com_00802] [SWS_Com_00836]。对于转换器链,提供了通过 Com_SendSignalGroupArray [SWS_Com_00851] 的数组访问。

Signalgruppe senden: CAN direkt, FlexRay per TriggerTransmitRTEComPduRCanIfFrIfUse Case: Signalgruppe aktualisierenloop针对每个组信号Com_SendSignal(SignalId, SignalDataPtr)Com_SendSignalGroup(SignalGroupId)Update-Bit setzen,Transmission Mode Selection根据传输模式的 PduR_ComTransmit 触发时机直接触发或在 Com_MainFunctionTx 中触发(推测)altCAN:直接传输PduR_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)将 I-PDU 复制到 SduDataPtrE_OKPduR_FrIfTxConfirmation(TxPduId, result)Com_TxConfirmation(TxPduId, result)Sende-Deadline-Timer abbrechenRte_COMCbkTAck_<signal>()(IMMEDIATE 立即,DEFERRED 稍后)

时序图:通过 CAN(直接)或 FlexRay(TriggerTransmit)发送信号组,随后向 RTE 进行确认。来源:SWS COM 第87页、SWS RTE 第329页

出现错误时,适用以下规则:

  • 诸如 COM_E_UNINIT 或 COM_E_PARAM_POINTER 之类的开发错误会发送给 DET [SWS_Com_00442] [SWS_Com_00804]。
  • 当组处于停止状态时,API 会返回 COM_SERVICE_NOT_AVAILABLE [SWS_Com_00865]。
  • 若未收到发送确认,发送截止时间监控会通过 ComTimeoutNotification [SWS_Com_00304] 报告此情况。

COM 在 RTE 与 PDU Router 之间的角色

AUTOSAR COM 模块在 RTE 的面向信号视角与通信栈的面向 I-PDU 视角之间进行协调。信号和信号组通过 Com_SendSignal 和 Com_SendSignalGroup 写入 I-PDU [SWS_Com_00197] [SWS_Com_00200]。通过 Com_ReceiveSignal 和 Com_ReceiveSignalGroup 再次将其读出 [SWS_Com_00198] [SWS_Com_00201]。向下而言,PDU Router 是 COM 的唯一接口(RS COM 第12页)。COM 在该接口调用 PduR_ComTransmit [SWS_Com_00669]。反之,COM 向 PduR 提供回调 Com_RxIndication、Com_TxConfirmation 和 Com_TriggerTransmit [SWS_Com_00123] [SWS_Com_00124] [SWS_Com_00001]。在此过程中,PduR 在源模块与目标模块之间转换 I-PDU-ID(SWS PduR 第33页)。

除 RTE 之外,其他基础软件模块也使用 COM 接口:

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

上下文图:COM 位于上层的 RTE、BswM 和 J1939Rm 与下层的 PduR 之间。COM 仅通过 PduR 访问接口模块和 TP 模块。来源:RS COM 第12页、SWS PduR 第24页、SWS BswM 第93页

生命周期:初始化、I-PDU 组与状态

Com_Init 使用类型为 Com_ConfigType 的配置初始化内部和外部接口及变量。此后 ECU 间通信尚未使能 [SWS_Com_00432] [SWS_Com_00825]。Com_GetStatus 返回 COM_UNINIT 或 COM_INIT;复位后为 COM_UNINIT [SWS_Com_00194] [SWS_Com_00819]。Com_DeInit 停止所有已启动的 I-PDU 组,并将模块恢复为未初始化状态 [SWS_Com_00130]。

按各个 I-PDU 组使能通信:

  • Com_IpduGroupStart 启动一个组,并可根据需要重新初始化 I-PDU 数据。Com_IpduGroupStop 再次将其停止 [SWS_Com_91001] [SWS_Com_91002]。
  • 只要某个 I-PDU 的至少一个组已启动,该 I-PDU 就处于活动状态 [SWS_Com_00771]。
  • 未分配组的 I-PDU 已由 Com_Init 启动,且处理方式如同带有 initialize = true [SWS_Com_00840]。
  • 在停止时,COM 会丢弃未决的发送请求,包括重发 [SWS_Com_00777]。COM 会忽略针对已停止 I-PDU 的后续发送确认 [SWS_Com_00800]。

通常,BswM 通过动作 BswMPduGroupSwitch 切换这些组。其参数 BswMPduGroupSwitchReinit 对应于实参 initialize(SWS BswM 第165页)。周期性发送部分在自 Com_IpduGroupStart 起经过配置的 timeOffset 后开始(TPS SystemTemplate 第268页)。

lebenszyklus cluster_init COM_INIT (Zustand je I-PDU) start Reset uninit COM_UNINIT start->uninit 复位后的默认值 gestoppt I-PDU gestoppt uninit->gestoppt Com_Init(config): 带组分配的 I-PDU gestartet I-PDU 已启动 (其所属的 I-PDU 组中至少有一个处于激活状态) uninit->gestartet Com_Init(config): 无组的 I-PDU (如同以 initialize = true 启动) gestoppt->uninit Com_DeInit() gestoppt->gestartet Com_IpduGroupStart(IpduGroupId, initialize) gestartet->uninit Com_DeInit(): 所有组均已停止 gestartet->gestoppt 最后一个激活组的 Com_IpduGroupStop: 待处理的发送请求被丢弃

状态图:模块状态以及通过其 I-PDU 组激活 I-PDU。来源:[SWS_Com_00432] [SWS_Com_00130] [SWS_Com_00771] [SWS_Com_00840] [SWS_Com_00777]

发送:从信号到总线上的 I-PDU

Com_SendSignal 以异步方式工作 [SWS_Com_00197]。对于需要原子传输的数据,RTE 分两步进行:首先使用 Com_SendSignal 写入所有组信号。随后使用 Com_SendSignalGroup 触发该组的传输(SWS RTE 第329页)。在此过程中,COM 置位该组的 Update-Bit [SWS_Com_00801]。

传输模式决定 I-PDU 何时以及以何种频率发送:

Com_MainFunctionTx 接管所有未直接在 RTE 所调用的函数中完成的发送活动 [SWS_Com_00399]。若配置了 ComPreparationNotification,它将在 I-PDU 处理之前调用 Com_CbkTxPrep [SWS_Com_00886] [SWS_Com_91013]。Com_TxIpduCallout 可通过 false 阻止 I-PDU 的进一步处理 [SWS_Com_00346]。

各总线系统的流程有所不同:

  • CAN:I-PDU 直接通过 PduR_ComTransmit 传递。
  • FlexRay:在 PduR_ComTransmit 之后,FrIf 直到发送时隙才通过 Com_TriggerTransmit 获取数据(SWS PduR 第101页)。
  • LIN:非偶发帧(Sporadic Frames)的帧完全根据调度表通过 TriggerTransmit 获取(SWS PduR 第88页)。

如果提供的缓冲区过小或 I-PDU 已停止,Com_TriggerTransmit 不会复制任何内容并返回 E_NOT_OK [SWS_Com_00869] [SWS_Com_00884]。通过 Com_TxConfirmation,COM 中止正在运行的发送截止时间定时器 [SWS_Com_00880]。此外,它通过配置的 Notification 报告每次成功的发送 [SWS_Com_00883]。在 IMMEDIATE 处理时立即进行,在 DEFERRED 处理时则通过标志延迟进行(SWS COM 第91页)。

Signalgruppe senden: CAN direkt, FlexRay per TriggerTransmitRTEComPduRCanIfFrIfUse Case: Signalgruppe aktualisierenloop针对每个组信号Com_SendSignal(SignalId, SignalDataPtr)Com_SendSignalGroup(SignalGroupId)Update-Bit setzen,Transmission Mode Selection根据传输模式的 PduR_ComTransmit 触发时机直接触发或在 Com_MainFunctionTx 中触发(推测)altCAN:直接传输PduR_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)将 I-PDU 复制到 SduDataPtrE_OKPduR_FrIfTxConfirmation(TxPduId, result)Com_TxConfirmation(TxPduId, result)Sende-Deadline-Timer abbrechenRte_COMCbkTAck_<signal>()(IMMEDIATE 立即,DEFERRED 稍后)

时序图:发送信号组、传递给 CAN(直接)或 FlexRay(TriggerTransmit)以及随后的确认。来源:SWS COM 第87页、SWS PduR 第101页、SWS RTE 第329页、[SWS_Com_00880]

接收:指示、解包与通知

PduR 使用 I-PDU-ID、长度、数据指针和 MetaData 调用 Com_RxIndication [SWS_Com_00123]。该路径对于 CanIf、FrIf 和 LinIf 是相同的;PduR 在此过程中不进行缓冲(SWS PduR 第97页)。随后,I-PDU 经历以下检查:

  • 已配置的 Com_RxIpduCallout 始终会被调用,且在计数器处理之前调用并传入完整的 I-PDU [SWS_Com_00889] [SWS_Com_00816]。若其返回 false,则不再进一步处理该 I-PDU [SWS_Com_00700]。
  • COM 丢弃 Update-Bit 未置位的信号 [SWS_Com_00802]。
  • 若因接收到的 I-PDU 短于预期而缺少 Update-Bit,则将其视为已置位 [SWS_Com_00794]。
  • 若 COM 过滤掉某个组信号,则会丢弃整个信号组 [SWS_Com_00836]。
rx_verarbeitung start Com_RxIndication(RxPduId, PduInfoPtr) callout 是否配置了 Com_RxIpduCallout? 使用完整的 I-PDU 调用 start->callout verwerfen_pdu 不继续处理该 I-PDU callout->verwerfen_pdu 返回 false zaehler I-PDU 计数器处理 (若有偏差则调用 Com_CbkCounterErr) callout->zaehler true / kein Callout update Update-Bit gesetzt? zaehler->update verwerfen_sig Signal verwerfen update->verwerfen_sig 不 filter 信号组:是否所有组信号 均通过过滤器? update->filter 是,或者因 I-PDU 较短 而未接收到位 verwerfen_grp ganze Signalgruppe verwerfen filter->verwerfen_grp 不 speichern 接收数值 filter->speichern 是(或单一信号) modus I-PDU 的处理方式? speichern->modus sofort Notification sofort an RTE modus->sofort IMMEDIATE spaeter 置位标志,通知稍后进行 modus->spaeter DEFERRED

活动图:处理接收到的 I-PDU 直至发出通知过程中的决策。来源:[SWS_Com_00889] [SWS_Com_00700] [SWS_Com_00802] [SWS_Com_00794] [SWS_Com_00836] [SWS_Com_00726];Update-Bit 位于过滤器之前的顺序为一种解释。

COM 如何通知 RTE 取决于处理方式。在 IMMEDIATE 方式下,COM 直接在指示的上下文中调用 RTE 回调。在 DEFERRED 方式下,COM 最初仅设置一个标志并复制数据(SWS COM 第92页)。对该标志的检查推测在 Com_MainFunctionRx 中进行,该函数负责接管未在 Com_RxIndication 中直接完成的接收处理 [SWS_Com_00398]。 问题 Q-b13cce4402c7b858 (未决)对于信号组,COM 仅在所有组信号均已解包后才发出通知。随后 RTE 对每个组信号严格调用一次 Com_ReceiveSignalGroup,紧接着调用 Com_ReceiveSignal(SWS RTE 第329页)。COM 为 RTE 保存接收到的 MetaData [SWS_Com_00888]。

接收带有信号组的 I-PDUCanIf / LinIf / FrIfPduRComRTEPduR_<User:Lo>RxIndication(RxPduId, PduInfoPtr)Com_RxIndication(RxPduId, PduInfoPtr)Callout、计数器、更新位、过滤器altIMMEDIATE接收信号Rte_COMCbk_signalX()Rte_COMCbk_signalY()DEFERREDFlag setzen, Daten kopieren稍后,推测在 Com_MainFunctionRx 中:检查标志Rte_COMCbk_signalX() (falls Flag gesetzt)Use Case: 由 RTE 获取Com_ReceiveSignalGroup(SignalGroupId)E_OKloop针对每个组信号Com_ReceiveSignal(SignalId, SignalDataPtr)E_OK

时序图:PduR 进行指示、IMMEDIATE 与 DEFERRED 通知对比,以及 RTE 获取信号组。来源:SWS COM 第92页、SWS RTE 第329页、[SWS_Com_00123]

大型 I-PDU、信号组数组与元数据

大型 I-PDU 通过传输协议进行传输。为此,COM 提供了专用的 TP 接口,该接口与 PduR 的上层 TP 接口相匹配(SWS PduR 第24页):

TP 运行适用若干特殊规则:

  • 在 TpSduLength = 0 时,COM 报告配置的最大长度 [SWS_Com_00874]。
  • 若大型 I-PDU 在传输过程中被再次触发,COM 将丢弃额外的请求 [SWS_Com_00863]。
  • 当缓冲区被锁定时,若 Com_TriggerIPDUSend 触发发送,COM 会暂存该请求并稍后发送 [SWS_Com_00867]。
大 I-PDU 的分段接收(简化,无 SecOC)CanTpPduRComPduR_CanTpStartOfReception(...)Com_StartOfReception(id, info, TpSduLength, bufferSizePtr)BUFREQ_OK,可用缓冲区loop直至所有数据复制完毕PduR_CanTpCopyRxData(...)Com_CopyRxData(id, info, bufferSizePtr)BUFREQ_OKPduR_CanTpRxIndication(id, result)Com_TpRxIndication(id, result)altresult = E_OK处理大 I-PDU 的信号result = E_NOT_OK针对所有的 ComDataInvalidAction信号组的 ComDataInvalidAction

时序图:通过 CanTp 和 PduR 分段接收大型 I-PDU,简化未包含 SecOC。来源:SWS SecOC 第111页、[SWS_Com_00691] [SWS_Com_00692] [SWS_Com_00650] [SWS_Com_00838]

针对转换器链,RTE 将信号组作为字节数组进行访问。为此提供了 Com_SendSignalGroupArray 和 Com_ReceiveSignalGroupArray [SWS_Com_00851] [SWS_Com_00854]。相关规则如下:

  • 数组范围:它始于具有最小 ComBitPosition 的组信号的字节偏移量处。止于具有最大 ComBitPosition 的组信号的最后一个字节 [SWS_Com_00844] [SWS_Com_00845]。
  • 处理:在发送时,COM 就传输属性(Transfer Properties)和 Transmission Mode Selection 而言,将该调用视为 Com_SendSignalGroup [SWS_Com_00847]。仅支持受限的过滤器集合 [SWS_Com_00848]。
  • 前提条件:数据必须具有固定大小、按字节对齐映射且不得包含无关信号 [SWS_Com_00841]。对于此类组,不允许使用单信号和组 API [SWS_Com_00843]。

COM Based Transformer 按照 COM 自身的方式对数据进行序列化。随后的其他转换器接着补充 CRC 和序列计数器(SWS ComXf 第14页、EXP LSA 第103页)。

通过 Com_SendSignalGroupArray 进行转换传输SW-CRTECOM Based Transformerweitere Transformer (z. B. E2E)ComRte_Write_<p>_<d>(x, y, z)根据通信矩阵进行序列化uint8 数组(字节序、符号与 COM 一致)补充 CRC 和序列计数器erweitertes uint8-ArrayCom_SendSignalGroupArray(SignalGroupId, SignalGroupArrayPtr)Array ab Startposition (kleinste ComBitPosition)复制到 I-PDU 中Transmission Mode Selection与 Com_SendSignalGroup 相同E_OK

时序图:RTE 执行转换器链并通过对 Com_SendSignalGroupArray 的单次调用传递结果。来源:SWS ComXf 第14页、[SWS_Com_00846] [SWS_Com_00847]

发送 I-PDU 的 MetaData 来自 RTE 的上一次传递;若不存在,则来自 ComMetaDataDefault。通过 Com_TriggerIPDUSendWithMetaData 传递的 MetaData 仅对由此触发的发送有效 [SWS_Com_00887] [SWS_Com_00862]。

配置、调度与信号网关

COM 具有三种 Main Function:Com_MainFunctionRx、Com_MainFunctionTx 和 Com_MainFunctionRouteSignals。每种都可以多次实例化,并且对于不同实例是可重入的 [SWS_Com_00398] [SWS_Com_00399] [SWS_Com_00400]。它们由 BSW 调度器无参数调用(SWS BSWGeneral 第79页)。它们的周期由 EcuInstance 通过 comConfigurationRxTimeBase、comConfigurationTxTimeBase 和 comConfigurationGwTimeBase 进行描述(TR Interoperability 第98页)。相关的通知 Rte_COMCbkTxPrep_<mn> 绑定到特定的 Com_MainFunctionTx 实例(SWS RTE 第832页)。

信号网关是 COM 的组成部分(SRS Gateway 第11页)。它将接收到的信号在 Com_MainFunctionRouteSignals 中转发 [SWS_Com_00400]。在此过程中,它在接收侧和发送侧经历已定义的处理阶段 [SWS_Com_00872] [SWS_Com_00873]。它还可以将各个组信号映射到独立信号上 [SWS_Com_00833]。

配置受若干边界条件约束:

信号 ID、组 ID 和 I-PDU 组 ID 是从零开始的 uint16 值 [SWS_Com_00820] [SWS_Com_00821] [SWS_Com_00822]。它们的符号名称由 ComHandleId 生成(TPS ECUConfiguration 第138页)。

发生错误时的行为

COM 通过 Det_ReportError 报告开发错误,ModuleId 为 50 [SWS_Com_00442]。定义了以下错误:

  • COM_E_PARAM 用于错误参数 [SWS_Com_00803]。
  • COM_E_UNINIT 用于在 Com_Init 之前或 Com_DeInit 之后的调用。状态函数、版本函数和 Main Function 除外 [SWS_Com_00804]。
  • COM_E_PARAM_POINTER 用于空指针 [SWS_Com_00805]。
  • COM_E_INIT_FAILED 用于无效的配置选择 [SWS_Com_00837]。
  • 作为运行时错误 COM_E_SKIPPED_TRANSMISSION 用于被丢弃的发送请求 [SWS_Com_00864]。

当 I-PDU 组停止或存在开发错误时,信号 API 返回 COM_SERVICE_NOT_AVAILABLE [SWS_Com_00865]。Com_ReceiveSignalGroupArray 仍会复制最近已知的有效数据 [SWS_Com_00857]。

对于发送截止时间监控,规则如下:

在接收侧存在以下机制:

tx_dm inaktiv 定时器未启动 laeuft 定时器运行中 inaktiv->laeuft 发送到下层的 I-PDU 中的信号(组): 首次启动使用 ComFirstTimeout,否则使用 ComTimeout deaktiviert 监控已禁用 (传输模式 NONE 处于激活状态) inaktiv->deaktiviert Wechsel in Modus NONE laeuft->inaktiv Com_TxConfirmation: Timer abgebrochen laeuft->laeuft 重新发送:定时器继续运行 abgelaufen Timer abgelaufen: ComTimeoutNotification aufgerufen laeuft->abgelaufen 未及时收到确认 abgelaufen->laeuft 重新发送:使用 ComTimeout 启动 deaktiviert->inaktiv Wechsel in anderen Modus

状态图:发送截止时间定时器的生命周期。来源:[SWS_Com_00878] [SWS_Com_00879] [SWS_Com_00880] [SWS_Com_00304] [SWS_Com_00835]

进一步详细证据

基于有效载荷中所包含 Requirement(R20-11)和文档出处的 AI 生成指南。仅链接的 Requirement 具有规范效力。标为解释的陈述未由来源完全证实。

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

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: a9d5c039e92f 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与语义

函数 Com_Init 初始化 AUTOSAR COM 层的内部和外部接口以及变量,以供后续处理([SWS_Com_00432])。该调用同步进行且不可重入(Non Reentrant)([SWS_Com_00432])。config 作为指向 COM 模块配置数据的指针用作传递参数(const Com_ConfigType* config);不存在返回值([SWS_Com_00432])。在 COM 模块的主要功能被分配给多个分区的多分区配置中,COM 可以为每个分区提供单独的初始化函数([SWS_Com_00432])。

顺序条件与错误处理

通过 Com_Init 进行初始化是常规使用 COM 接口的功能前提条件:如果在 Com_Init 之前或调用 Com_DeInit 之后调用了 API 服务,则会生成错误代码 COM_E_UNINIT (0x02)([SWS_Com_00804])。唯有对 Com_GetStatus、Com_GetVersionInfo、Com_MainFunctionRx、Com_MainFunctionTx 和 Com_MainFunctionRouteSignals 的调用免除此错误检查([SWS_Com_00804])。

PDU 和信号初始化时的协同交互

执行 Com_Init 后,实际的 ECU 间通信最初仍保持禁用状态([SWS_Com_00432])。Interpretation: 因此,对于常规的发送和接收操作,大概需要对各 I-PDU 组进行后续激活。 问题 Q-8407f9a6281c3764 (未决)然而,对于特定数据结构,Com_Init 已经直接执行了初始化:

  • 如果某个 I-PDU 未分配给任何 I-PDU 组,COM 就会在 Com_Init 内启动该 I-PDU,如同该 I-PDU 已通过设置了初始化参数的 Com_IpduGroupStart 被启动一样([SWS_Com_00840])。
  • 对于配置了数组访问的信号组(ComSignalGroupArrayAccess),Com_Init 根据所有包含的组信号的初始值(ComSignalInitValue)来初始化 I-PDU 的相应缓冲区区域([SWS_Com_00850])。

此使用说明由 AI 基于 AUTOSAR R20-11 规范生成。

实现者指南即将推出(复杂度 I2)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 15d5ebd10450 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与调用上下文

同步函数 [SWS_Com_00130](Interpretation: 在有效载荷中列为“Init”,但指定了签名 void Com_DeInit(void))终止 ECU 间通信并将 AUTOSAR COM 模块置于未初始化状态([SWS_Com_00130])。 问题 Q-3e91d7d0a140cee0 (未决)该服务具有服务 ID 0x02,不需要传递参数,不提供返回值,并通过头文件 Com.h 提供([SWS_Com_00130])。

并发性与限制

关于调用上下文,该函数被定义为不可重入(Non Reentrant)([SWS_Com_00130])。因此,在未预先重新初始化的情况下进行并行调用或多次调用是不允许的。

交互和生命周期

通过去初始化,所有先前启动的 I-PDU 组都将停止([SWS_Com_00130])。对于后续恢复通信,适用以下顺序条件:

  • 必须通过同步、不可重入的服务 Com_Init 并在传递配置指针 config 的情况下重新初始化该模块([SWS_Com_00432])。
  • 由于调用 Com_Init 后 ECU 间通信仍保持停用状态([SWS_Com_00432]),因此随后必须重新显式启动所需的 I-PDU 组([SWS_Com_00130])。

本使用说明由 AI 基于 AUTOSAR CP R20-11 规范生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 8b6a6f2e80e0 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数 Com_IpduGroupStart(服务 ID 0x03,头文件 Com.h)用于启动预配置的 I-PDU 组 [SWS_Com_91001]。调用后,关联 I-PDU 的传输被激活;例如,周期性 I-PDU 从此开始周期性发送 [SWS_Com_91001]。

用法与参数

该函数没有返回值,并接收两个输入参数 [SWS_Com_91001]:

  • IpduGroupId:待启动的预配置 I-PDU 组的唯一标识符 [SWS_Com_91001]。
  • initialize:用于请求在启动前对该组的 I-PDU 进行数据初始化的布尔标志 [SWS_Com_91001]。

如果 initialize 设置为 true,则该组的所有 I-PDU 在启动前必须进行(重新)初始化 [SWS_Com_91001]。随后,这些 I-PDU 的行为如同 COM 模块启动(Start-up)之后立即表现出的行为一样 [SWS_Com_91001]。这尤其包括对过滤对象的先前值(old_value)以及信号组影子缓冲区的重新初始化 [SWS_Com_91001]。

并发性与限制

关于并发性,Com_IpduGroupStart 针对不同 I-PDU 组是可重入的,但针对同一 I-PDU 组明确不可重入 [SWS_Com_91001]。

本文由 AI 基于 AUTOSAR R20-11 规范生成。

实现者指南即将推出(复杂度 I2)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 651ca887878f 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

函数 Com_IpduGroupStop 用于在 AUTOSAR COM 模块中停止预配置的 I-PDU 组 [SWS_Com_91002]。其声明可通过头文件 Com.h 获取,且具备服务 ID 0x04 [SWS_Com_91002]。

  • 调用语法:void Com_IpduGroupStop (Com_IpduGroupIdType IpduGroupId) [SWS_Com_91002]。
  • 参数:作为唯一传递的参数,输入参数 IpduGroupId 类型为 Com_IpduGroupIdType,用于指定要停止的 I-PDU 组的标识符 [SWS_Com_91002]。不存在额外的输入/输出参数(inout)或输出参数(out)[SWS_Com_91002]。
  • 返回值:该接口不提供返回值(void)[SWS_Com_91002]。
  • 执行行为:该调用以同步方式处理 [SWS_Com_91002]。调用 Com_IpduGroupStop 后,相关组的通信将被停止;例如,这会导致该组的周期性 I-PDU 不再被发送 [SWS_Com_91002]。

并发性与限制

关于并发性与重入性,规范规定 Com_IpduGroupStop 对于不同的 I-PDU 组是可重入的,但对于同一个 I-PDU 组不可重入执行 [SWS_Com_91002]。如果在多任务或多核环境中调用该函数,调用方软件必须确保杜绝针对同一组 ID 的并发调用。

此文本由 AI 基于 AUTOSAR CP R20-11 规范生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 5f24c726b615 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数 Com_EnableReceptionDM 用于激活预定 I-PDU 组内所有 I-PDU 的接收截止时间监控(Reception Deadline Monitoring)[SWS_Com_91004]。

用法与调用上下文:该函数通过头文件 Com.h 声明,并具备服务 ID 0x06 [SWS_Com_91004]。作为唯一的传递参数,签名 void Com_EnableReceptionDM (Com_IpduGroupIdType IpduGroupId) 需要类型为 Com_IpduGroupIdType 的输入参数 IpduGroupId,它表示需要为其包含的 I-PDU 开启截止时间监控的 I-PDU 组的标识符 [SWS_Com_91004]。执行是以同步方式进行的 [SWS_Com_91004]。既不存在输入/输出参数也不存在输出参数,且不返回任何返回值(返回类型 void)[SWS_Com_91004]。

并发性与限制:在并发性方面,Com_EnableReceptionDM 对于不同的 I-PDU 组是可重入的,但对于相同的 I-PDU 组不可重入 [SWS_Com_91004]。因此,针对相同组 ID 的并发调用是不允许的,必须在调用上下文中予以避免 [SWS_Com_91004]。

此使用说明基于 AUTOSAR Classic Release R20-11 规范自动生成。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 12da9925d73b 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数 Com_DisableReceptionDM 用于为传入的 I-PDU 组内的所有 I-PDU 禁用接收截止时间监控(Reception Deadline Monitoring)[SWS_Com_91003]。

使用

该调用通过接口 void Com_DisableReceptionDM(Com_IpduGroupIdType IpduGroupId) 进行,并将受影响 I-PDU 组的标识符作为输入参数 IpduGroupId [SWS_Com_91003]。该函数既无输入/输出参数也无输出参数,且不提供返回值(void)[SWS_Com_91003]。该服务在头文件 Com.h 中声明,服务 ID 为 0x05 [SWS_Com_91003]。

并发性与限制

关于并发行为,该服务针对不同的 I-PDU 组是可重入的,但对于相同的 I-PDU 组不得并发(不可重入)调用 [SWS_Com_91003]。

本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 8158a8b89f8c 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Com_SendSignal 用于使用指针 SignalDataPtr 所指向的数据更新由 SignalId 标识的信号对象 [SWS_Com_00197]。该调用被异步处理 [SWS_Com_00197]。

返回值与错误处理

该函数返回类型为 uint8 的状态 [SWS_Com_00197]:

  • E_OK:服务已被接受 [SWS_Com_00197]。
  • COM_SERVICE_NOT_AVAILABLE:关联的 I-PDU 组已停止,或调用由于开发错误而失败 [SWS_Com_00197]。
  • COM_BUSY:当用于处理大数据类型的 TP 缓冲区被锁定时发生 [SWS_Com_00197]。

并发性与限制

关于重入性,Com_SendSignal 针对同一信号是不可重入的,但允许针对不同信号并发调用 [SWS_Com_00197]。该接口通过头文件 Com.h 提供 [SWS_Com_00197]。

交互与配置

若为某信号组定义了配置 ComSignalGroupArrayAccess,则不支持针对该信号组的组信号调用 Com_SendSignal [SWS_Com_00843]。

此文本由 AI 基于 AUTOSAR 规范生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: b3f2deddf90c 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

Classic-AUTOSAR 函数 Com_SendDynSignal 用于根据所传递的有效负载数据([SWS_Com_00627])更新具有动态长度的信号对象。该服务具有服务 ID 0x21 并以异步方式工作([SWS_Com_00627])。作为输入参数,该接口需要目标信号的标识符(SignalId)、指向待传输信号有效负载数据的指针(SignalDataPtr)以及动态信号的当前长度(Length);不存在输出参数([SWS_Com_00627])。

类型为 uint8 的返回值报告请求接受的结果([SWS_Com_00627]):

  • E_OK:服务调用已被成功接受([SWS_Com_00627])。
  • E_NOT_OK:参数 Length 超出了为此信号配置的最大长度 ComSignalLength([SWS_Com_00627])。
  • COM_SERVICE_NOT_AVAILABLE:关联的 I-PDU 组已停止,或服务因开发错误而失败([SWS_Com_00627])。
  • COM_BUSY:TP 缓冲区被锁定([SWS_Com_00627])。

关于并发性,Com_SendDynSignal 对于不同信号是可重入的,但对于同一信号是不可重入的([SWS_Com_00627])。函数声明可通过头文件 Com.h 获取([SWS_Com_00627])。

本段文本由 AI 生成并用作参考指引。一切以规范为准。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: d44a9c735931 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数 Com_ReceiveSignal 将通过 SignalId 指定的信号数据复制到通过指针 SignalDataPtr 提供的内存地址([SWS_Com_00198])。

用法与语义

该调用同步处理信号传递,并接收标识符 SignalId(类型为 Com_SignalIdType)作为输入参数,以及指向目标缓冲区的指针 SignalDataPtr(void*)作为输出参数([SWS_Com_00198])。该接口可通过头文件 Com.h 获取([SWS_Com_00198])。

返回值与错误处理

类型为 uint8 的返回值指示函数执行的结果([SWS_Com_00198]):

  • E_OK:服务已成功接受并执行([SWS_Com_00198])。
  • COM_SERVICE_NOT_AVAILABLE:所属的 I-PDU 组已停止,或服务因开发错误而失败([SWS_Com_00198])。
  • COM_BUSY:如果用于处理大数据类型的 TP 缓冲区被锁定,则发生此情况([SWS_Com_00198])。

并发性与限制

关于重入性,Com_ReceiveSignal 针对同一信号不可重入,但针对不同信号可重入([SWS_Com_00198])。因此,当并行访问相同的信号 ID 时,调用方必须确保适当的同步。

此外,存在一项重要的配置限制:如果为某个信号组配置了基于数组的访问 ComSignalGroupArrayAccess,则不支持对该信号组中包含的组信号调用 Com_ReceiveSignal([SWS_Com_00843])。

本段文本由 AI 基于规范要求生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 078181d39b16 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与语义

同步函数 Com_ReceiveDynSignal 用于根据其 SignalId 接收具有动态长度的信号 [SWS_Com_00690]。接收到的信号数据被复制到 SignalDataPtr 所指向的存储位置 [SWS_Com_00690]。调用者通过输入输出参数 Length 将最大可容纳长度作为输入值传递;在成功完成复制过程后,接收到的动态信号的实际长度将存储在其中 [SWS_Com_00690]。

返回值与错误处理

该函数返回类型为 uint8 的状态值 [SWS_Com_00690]:

  • E_OK:服务调用已被接受且数据已成功复制 [SWS_Com_00690]。
  • E_NOT_OK:提供的缓冲区过小,因为 Length 的输入值小于接收到的信号的实际长度 [SWS_Com_00690]。
  • COM_SERVICE_NOT_AVAILABLE:所属的 I-PDU 组已停止,或服务因开发错误而失败 [SWS_Com_00690]。
  • COM_BUSY:TP 缓冲区当前被锁定 [SWS_Com_00690]。

并发与集成

关于可重入性,Com_ReceiveDynSignal 对于同一信号不可重入,但对于不同信号可重入调用 [SWS_Com_00690]。声明可通过 Com.h 获取 [SWS_Com_00690]。

本文本由 AI 系统基于规范 AUTOSAR CP R20-11 生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 0d9d9eeb6062 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

异步函数 Com_SendSignalGroup 用于将关联影子缓冲区的内容复制到相应的 I-PDU 中 [SWS_Com_00200]。它接收待传输信号组的标识符 SignalGroupId 作为输入参数 [SWS_Com_00200]。

返回值与错误处理

返回值指示服务的执行状态 [SWS_Com_00200]:

  • E_OK:服务调用已被成功接受 [SWS_Com_00200]。
  • COM_SERVICE_NOT_AVAILABLE:所属的 I-PDU 组已停止,或服务因开发错误而失败 [SWS_Com_00200]。
  • COM_BUSY:TP 缓冲区暂时被锁定以进行大数据类型的传输 [SWS_Com_00200]。

并发性与限制

关于并发性,该调用针对同一组信号不可重入,但针对不同组信号可重入 [SWS_Com_00200]。Interpretation: 该限制大概是指对同一信号组的同时访问。 问题 Q-2f3a6da092b51794 (未决)此外,如果为某信号组配置了 ComSignalGroupArrayAccess,则不支持对该信号组调用 Com_SendSignalGroup [SWS_Com_00843]。

相互作用

在传输特性、I-PDU 传输模式的选择以及信号流方面,AUTOSAR COM 模块对 Com_SendSignalGroupArray 的调用与 Com_SendSignalGroup 等同处理 [SWS_Com_00847]。

此使用说明基于 AUTOSAR 规范自动生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: b8b175f19562 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

同步函数 Com_ReceiveSignalGroup 用于接收信号组。它将接收到的信号组的数据从相应的 I-PDU 复制到分配的影子缓冲区(Shadow Buffer)中 [SWS_Com_00201]。作为输入参数,该函数需要类型为 Com_SignalGroupIdType 的信号组标识符 SignalGroupId [SWS_Com_00201]。该服务在头文件 Com.h 中声明 [SWS_Com_00201]。

错误处理与返回值

该服务返回类型为 uint8 的状态值,提供有关成功或错误原因的信息 [SWS_Com_00201]:

  • E_OK:服务已成功接受并复制了信号组 [SWS_Com_00201]。
  • COM_SERVICE_NOT_AVAILABLE:关联的 I-PDU 组已停止,或调用由于开发错误而失败 [SWS_Com_00201]。
  • COM_BUSY:如果用于处理大数据类型的 TP 缓冲区被锁定,则服务报告该状态 [SWS_Com_00201]。

并发性与限制

关于并发行为,Com_ReceiveSignalGroup 对于同一信号组不可重入,但对于不同信号组是可重入执行的 [SWS_Com_00201]。

此外,在与数组访问配合使用时存在重要限制:如果为信号组定义了配置 ComSignalGroupArrayAccess(ECUC_Com_10003),则规范规定不支持针对该信号组调用 Com_ReceiveSignalGroup [SWS_Com_00843]。

本使用说明为自动生成,基于 AUTOSAR Classic R20-11 规范。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 5c15fbe82271 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

异步函数 Com_SendSignalGroupArray 通过指针 SignalGroupArrayPtr 将信号组的数据直接复制到关联的 I-PDU 中 [SWS_Com_00851]。传递的数据必须与相应信号组的数组表示完全一致 [SWS_Com_00851],[SWS_Com_00852]。

信号组的标识符(SignalGroupId)以及对信号组数组的引用(SignalGroupArrayPtr)作为输入参数传递 [SWS_Com_00851]。该服务提供以下返回值 [SWS_Com_00851]:

  • E_OK:服务调用已被成功接受。
  • COM_SERVICE_NOT_AVAILABLE:关联的 I-PDU 组已停止,或者由于开发错误导致调用失败。
  • COM_BUSY:传输协议缓冲区(TP 缓冲区)被锁定以处理大型数据类型。

关于并发性,该函数针对同一信号组不可重入,但允许针对不同信号组可重入调用 [SWS_Com_00851]。仅当配置开关 ComEnableSignalGroupArrayApi 启用时,该调用才可用 [SWS_Com_00853]。

关于信号组的传输属性、I-PDU 传输模式选择以及信号流,AUTOSAR COM 模块对 Com_SendSignalGroupArray 的处理完全等同于 Com_SendSignalGroup [SWS_Com_00847]。

本文本通过基于 AUTOSAR 规范 R20-11 的 AI 辅助方法生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 4f43126be3e3 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用与配置

同步函数 Com_ReceiveSignalGroupArray 将接收到的信号组作为字节数组表示从 I-PDU 复制到 SignalGroupArrayPtr 所指向的内存区域中 [SWS_Com_00854],[SWS_Com_00855]。该函数仅在配置开关 ComEnableSignalGroupArrayApi 启用时才可用 [SWS_Com_00856]。它支持接收过滤以及带有过滤器 ALWAYS、NEVER、MASKED_NEW_EQUALS_X、MASKED_NEW_DIFFERS_X、MASKED_NEW_DIFFERS_MASKED_OLD 和 ONE_EVERY_N 的 Transmission Mode Selection [SWS_Com_00848]。

数据复制与错误处理

调用时会传递 SignalGroupId 以及指向目标数组的指针,AUTOSAR COM 模块将 I-PDU 的数据复制到该指针所在位置 [SWS_Com_00849]。即使 I-PDU 组已停止且服务返回 COM_SERVICE_NOT_AVAILABLE,若此前尚未写入任何数据,该模块仍始终会复制最新已知的数据或初始值 ComSignalInitValues [SWS_Com_00857]。

返回值和并发性

该服务可能的返回值包括 [SWS_Com_00854]:

  • E_OK:服务已成功接受。
  • COM_SERVICE_NOT_AVAILABLE:关联的 I-PDU 组已停止,或者服务因开发错误而失败。
  • COM_BUSY:TP 缓冲区已被锁定,无法用于处理大数据类型。

关于并发性,该函数针对不同信号组是可重入的,但针对同一信号组不可重入 [SWS_Com_00854]。

此使用说明基于 AUTOSAR CP R20-11 规范自动生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 180ada75e2ab 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数 Com_ReceiveSignalWithMetaData 用于从通信模块中读取接收到的信号数据连同其元数据 Com [SWS_Com_91005]。在调用时,该服务将通过 SignalId 寻址的信号数据复制到 SignalDataPtr 所指向的存储位置,并将接收到的元数据存放在位置 MetaDataPtr [SWS_Com_91005]。

参数与调用上下文

该接口通过头文件 Com.h 提供,并通过服务 ID 0x49 进行标识 [SWS_Com_91005]。参数结构组织如下:

  • SignalId(in):要接收的信号的标识符 [SWS_Com_91005]。
  • SignalDataPtr(out):指向用于存放接收到的信号数据的存储位置的指针 [SWS_Com_91005]。
  • MetaDataPtr(out):指向用于接收信号元数据的存储区域的指针 [SWS_Com_91005]。

该函数返回类型为 uint8 的返回值,本标准章节中未针对其记录特定的错误值 [SWS_Com_91005]。

并发性与限制

关于重入性,该服务针对不同信号是可重入的,但针对同一信号是不可重入的 [SWS_Com_91005]。因此,在具有相同 SignalId 的并行或中断调用中,可能需要调用方进行外部保护,以确保数据一致性。 问题 Q-51cbdce3d4f59f24 (未决)

本使用说明由 AI 生成,并完全基于 AUTOSAR 规范。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 9be7aa4daed1 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与语义

函数 Com_ReceiveDynSignalWithMetaData 通过头文件 Com.h 提供,用于同步接收具有动态长度的信号及其元数据 [SWS_Com_91006]。在调用时,该服务将通过 SignalId 标识的信号的数据复制到由 SignalDataPtr 引用的缓冲区中 [SWS_Com_91006]。接收到的元数据存储在指针 MetaDataPtr 处,而接收到的动态信号的实际长度写入 Length 的位置 [SWS_Com_91006]。

返回值与错误处理

该服务返回一个类型为 uint8 的状态值 [SWS_Com_91006]:

  • E_OK:接收服务已被成功接受 [SWS_Com_91006]。
  • E_NOT_OK:当 Length 传递的值小于接收到的动态信号的实际长度时发生 [SWS_Com_91006]。解释:调用者必须通过 Length 预先提供缓冲区大小,因此该参数实际上充当组合的输入和输出。 问题 Q-8ad420c74748f219 (未决)
  • COM_SERVICE_NOT_AVAILABLE:关联的 I-PDU 组已停止,或者由于开发错误导致调用失败 [SWS_Com_91006]。
  • COM_BUSY:TP 缓冲区当前被锁定 [SWS_Com_91006]。

并发性与限制

在并发性方面,该函数对于不同信号是可重入的,但对于同一信号不得重入调用 [SWS_Com_91006]。因此,对相同 SignalId 的并发调用必须在调用者级别进行同步。

本使用说明是自动生成的,并且完全基于 AUTOSAR Release R20-11 的规范数据。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: a2422bbfdc23 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数 Com_ReceiveSignalGroupWithMetaData 用于通过接口 Com.h 接收信号组以及关联的元数据 [SWS_Com_91007]。它接收标识符 SignalGroupId 作为输入参数,并将接收到的信号组数据从 I-PDU 复制到本地影子缓冲区中 [SWS_Com_91007]。同时,该服务将接收到的元数据保存在通过输出参数 MetaDataPtr 引用的目标地址处 [SWS_Com_91007]。

错误和返回行为包括三个状态值:E_OK 指示服务被成功接受 [SWS_Com_91007]。返回值 COM_SERVICE_NOT_AVAILABLE 指示关联的 I-PDU 组已停止或存在开发错误 [SWS_Com_91007]。如果出现错误代码 COM_BUSY,则用于处理大数据类型的 TP 缓冲区被锁定 [SWS_Com_91007]。关于并发性,该函数对于不同信号组是可重入的,但对于同一信号组不可重入 [SWS_Com_91007]。由于规范未提及 ISR 限制,因此调用可能由上层软件组件在任务级别同步执行。 问题 Q-a23cf67bae724ae1 (未决)

在相互协作中,该函数为接收路径扩展了元数据,类似于单个信号的 Com_ReceiveSignalWithMetaData [SWS_Com_91005]。所提供的元数据与之前通过接口上的 Com_RxIndication 接收到的 PDU 信息相对应 [SWS_Com_00123]。为了指示无效的数据内容,在整个流程中还可以利用 Com_InvalidateSignalGroup [SWS_Com_00557]。

本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 6fb4f8baaba4 来源 未决问题(2)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

同步服务 Com_ReceiveSignalGroupArrayWithMetaData(服务 ID 0x4c,通过 Com.h 可用)将接收到的信号组数组表示从 I-PDU 复制到通过指针 SignalGroupArrayPtr 提供的存储位置中 [SWS_Com_91008]。同时,接收到的元数据被写入由参数 MetaDataPtr 指定的位置 [SWS_Com_91008]。该函数没有返回值(void)[SWS_Com_91008]。

错误处理

规范未为该服务定义返回值,也未列出特定错误代码 [SWS_Com_91008]。解释:调用参数中的任何错误状态大概会在内部被捕获并通过模块的错误报告进行处理;然而规范摘录中未体现具体的 DET 或 DEM 报告。 问题 (未决)

并发性与限制

关于并发性,该函数对于不同信号组是可重入的,但对于同一信号组不可重入 [SWS_Com_91008]。必须在调用方阻止具有相同 SignalGroupId 的并发调用。解释:调用者大概还必须提供足够大的目标缓冲区,因为该接口不携带长度参数。 问题 (未决)

相互作用

PDU 缓冲区中数据的提供以先前已通过 Com_RxIndication 进行了接收指示为前提,该指示还将元数据传递给 COM 模块 [SWS_Com_00123]。该函数扩展了用于元数据的接收接口,类似于针对单个信号的 Com_ReceiveSignalWithMetaData [SWS_Com_91005],并且不同于通过 Com_ReceiveSignal 进行的常规信号获取 [SWS_Com_00198]。

本使用说明由 AI 基于 AUTOSAR 规范生成。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 295cd2832adb 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Com_SendSignalWithMetaData([SWS_Com_91009])用于异步更新由 SignalId 指定的信号对象,其中包括通过 SignalDataPtr 提供的有效负载数据以及通过 MetaDataPtr 提供的关联元数据。该服务通过头文件 Com.h 可用。

  • 调用与并发性:调用异步进行([SWS_Com_91009])。该函数对于不同信号是可重入的,但对于同一信号标识符(SignalId)是不可重入的([SWS_Com_91009])。
  • 返回值和错误处理:该函数返回一个 uint8 类型的状态值([SWS_Com_91009]):
    • E_OK:发送请求已被模块成功接受([SWS_Com_91009])。
    • COM_SERVICE_NOT_AVAILABLE:关联的 I-PDU 组已停止,或调用因开发错误而失败([SWS_Com_91009])。
    • COM_BUSY:TP 缓冲区已被锁定以处理大数据类型 ([SWS_Com_91009])。
  • 交互关系:与基本发送服务 Com_SendSignal([SWS_Com_00197])不同,此函数传递显式元数据。它构成了接收服务 Com_ReceiveSignalWithMetaData([SWS_Com_91005])在发送端的对应项,并补充了与 I-PDU 相关的元数据服务,如 Com_TriggerIPDUSendWithMetaData([SWS_Com_00858])。

本使用说明基于规范自动创建。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: aa04247eb161 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与语义

函数 Com_SendDynSignalWithMetaData 用于异步更新通过 SignalId(类型 Com_SignalIdType)标识的信号对象,该对象包含动态长度的信号数据以及关联的元数据 [SWS_Com_91010]。待传输的有效负载数据通过指针 SignalDataPtr(类型 void*)引用,而 MetaDataPtr(类型 uint8*)指向元数据 [SWS_Com_91010]。通过参数 Length(类型 uint16)传递要发送的动态信号的实际长度 [SWS_Com_91010]。

返回值与错误处理

类型为 uint8 的返回值指示服务是否已被接受或存在何种错误 [SWS_Com_91010]:

  • E_OK:服务调用已成功接收以进行处理 [SWS_Com_91010]。
  • E_NOT_OK:传递的 Length 超出了为此信号配置的 ComSignalLength [SWS_Com_91010]。
  • COM_SERVICE_NOT_AVAILABLE:关联的 I-PDU 组已停止,或调用由于开发错误而失败 [SWS_Com_91010]。
  • COM_BUSY:TP 缓冲区当前被锁定,因此无法发送该信号 [SWS_Com_91010]。

并发与集成

在并发性方面,该函数针对不同信号是可重入的,但针对同一信号是不可重入的 [SWS_Com_91010]。该接口具有服务 ID 0x4e,并在模块 Com 中通过头文件 Com.h 提供 [SWS_Com_91010]。

根据 AUTOSAR 版本 R20-11 的规范元素创建的使用说明。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 5e6b0b47ffec 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Com_SendSignalGroupWithMetaData(在数据模型中称为 Data)用于将信号组连同元数据异步传输至模块 Com [SWS_Com_91011]。调用时,该服务将所分配影子缓冲区的当前内容复制到关联的 I-PDU 中,其中元数据通过指针 MetaDataPtr 提供 [SWS_Com_91011]。

传入参数包括信号组的标识符(SignalGroupId)以及指向元数据的指针(MetaDataPtr)[SWS_Com_91011]。返回值报告服务请求的结果:

  • E_OK:服务已被成功接受 [SWS_Com_91011]。
  • COM_SERVICE_NOT_AVAILABLE:关联的 I-PDU 组已停止,或执行由于开发错误而失败 [SWS_Com_91011]。
  • COM_BUSY:TP 缓冲区已被锁定以禁止大数据类型的传输 [SWS_Com_91011]。

在并发性方面,该调用针对不同信号是可重入的,但针对同一组信号是不可重入的;与参数 SignalGroupId 类似,这可能指的是相应的信号组 [SWS_Com_91011]。 问题 Q-91171d77370ae50a (未决)在与模块 Com 的交互中,该服务补充了单个信号的发送(如 Com_SendSignal [SWS_Com_00197])以及通过 Com_InvalidateSignalGroup [SWS_Com_00557] 使信号组无效的操作。此外,它还对应于接收服务 Com_ReceiveSignalWithMetaData [SWS_Com_91005] 和基于 PDU 的发送调用 Com_TriggerIPDUSendWithMetaData [SWS_Com_00858]。

本使用说明基于规范自动生成。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: fef50dded4da 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与参数

函数 Com_SendSignalGroupArrayWithMetaData 用于异步传输信号组及其关联元数据 [SWS_Com_91012]。调用时,该服务将所传递指针 SignalGroupArrayPtr 的内容直接复制到所分配的 I-PDU 中 [SWS_Com_91012]。提供的数据必须严格对应于信号组的数组表示形式,该信号组通过类型为 Com_SignalGroupIdType 的参数 SignalGroupId 标识 [SWS_Com_91012]。信号组的附加元数据通过指针 MetaDataPtr 传递给通信层 [SWS_Com_91012]。

返回值与错误处理

该函数返回一个 uint8 类型的状态值,指示传递是否成功或相应的错误原因 [SWS_Com_91012]:

  • E_OK:服务调用已被 COM 层成功接受 [SWS_Com_91012]。
  • COM_SERVICE_NOT_AVAILABLE:关联的 I-PDU 组已停止,或者由于开发错误导致调用失败 [SWS_Com_91012]。
  • COM_BUSY:传输协议缓冲区(TP 缓冲区)已被锁定以禁止处理大数据类型 [SWS_Com_91012]。

并发性与限制

根据规范,该服务被归类为不可重入(Non Reentrant),因此不允许并发或中断调用 [SWS_Com_91012]。该接口具有服务 ID 0x50,并通过头文件 Com.h 提供 [SWS_Com_91012]。

本使用说明是基于 AUTOSAR 规范版本 R20-11 自动生成的。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 019013453d98 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Com_InvalidateSignal 用于通信模块 [SWS_Com_00203] 中的信号无效化。它将所传递信号的值设置为配置中存储的无效值 Com Signal Data Invalid Value [SWS_Com_00203]。处理过程为异步进行 [SWS_Com_00203]。作为唯一的传递参数,传递输入参数 SignalId 以标识该信号;不存在输入/输出参数或输出参数 [SWS_Com_00203]。

作为返回值,该调用返回一个类型为 uint8 的状态,该状态反映了接受和错误行为 [SWS_Com_00203]:

  • E_OK:无效化服务已被成功接受 [SWS_Com_00203]。
  • COM_SERVICE_NOT_AVAILABLE:服务不可用。当关联的 I-PDU 组已停止、未为指定的 SignalId 配置 Com Signal Data Invalid Value 或执行因开发错误而失败时,会发生此情况 [SWS_Com_00203]。
  • COM_BUSY:由于 TP 缓冲区被锁定,该服务当前无法执行 [SWS_Com_00203]。

在并发性方面,Com_InvalidateSignal 对于同一信号是不可重入的,但对于不同信号可以并行且可重入地执行 [SWS_Com_00203]。该服务在服务 ID 0x10 下声明,并通过头文件 Com.h 可用 [SWS_Com_00203]。

本使用说明由 AI 基于 AUTOSAR CP R20-11 规范生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 1812d1ef8d9a 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Com_InvalidateSignalGroup 用于将传入信号组的所有组信号设置为其各自配置的 ComSignalDataInvalidValue 值,从而使该信号组无效 [SWS_Com_00557]。

用法与语义

该服务需要待置为无效的信号组 ID 作为输入参数(类型为 Com_SignalGroupIdType 的 SignalGroupId)[SWS_Com_00557]。该调用被异步处理,并返回类型为 uint8 的状态值 [SWS_Com_00557]。

返回值与错误处理

规定了以下返回值 [SWS_Com_00557]:

  • E_OK:无效化请求已被成功接受。
  • COM_SERVICE_NOT_AVAILABLE:服务不可用,原因是所属的 I-PDU 组已停止、未为任何组信号配置 ComSignalDataInvalidValue,或调用因开发错误而失败。
  • COM_BUSY:传输协议的缓冲区(TP-Buffer)当前被锁定。

并发性与可重入性

该函数针对同一信号组不可重入,但允许针对不同信号组并发(可重入)调用 [SWS_Com_00557]。声明可通过 Com.h 获取 [SWS_Com_00557]。

本使用说明完全基于 AUTOSAR CP R20-11 的规范数据。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: aaf0b030ff03 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数 Com_TriggerIPDUSend 触发由参数 PduId 标识的 I-PDU 的传输 [SWS_Com_00348]。它可通过头文件 Com.h 获取 [SWS_Com_00348]。

调用条件和返回值

仅当相关 I-PDU 已启动时,该调用才会触发发送 [SWS_Com_00861]。相应地,类型为 Std_ReturnType 的返回值用于区分 I-PDU 的状态 [SWS_Com_00348]:

缓冲区和并发行为

该函数被指定为不可重入(Non Reentrant)[SWS_Com_00348]。针对大型 I-PDU 规定了缓冲机制:如果在大型 I-PDU 的缓冲区被锁定时通过 Com_TriggerIPDUSend 触发该 I-PDU,AUTOSAR COM 将暂存该发送请求,并仅在缓冲区再次可用时才传输该 I-PDU [SWS_Com_00867]。

本使用说明基于 AUTOSAR Classic R20-11 规范数据自动生成。

实现者指南即将推出(复杂度 I2)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 5bfdcae35579 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数Com_TriggerIPDUSendWithMetaData用于同步触发 I-PDU 的传输,并预先在 AUTOSAR COM 模块中更新其内部元数据[SWS_Com_00858]。该调用期望将要发送的 I-PDU 标识符作为参数PduId,并将指向要提供的元数据的指针作为参数MetaData [SWS_Com_00858]。COM 模块在考虑 I-PDU 元数据类型全局配置长度的情况下,将数据从引用的地址复制到其内部数据存储中,并在此后立即触发传输[SWS_Com_00858]。

然而,根据[SWS_Com_00862],COM 模块仅当 I-PDU 处于已启动状态时才允许触发 I-PDU 的传输。反之,如果 I-PDU 已停止,则不会触发传输。

执行结果通过返回值指示:

有效负载中未记录该服务针对 DET 或 DEM 的特定错误代码。

在并发性方面,该接口被定义为不可重入(Non Reentrant)[SWS_Com_00858],因此必须排除并行调用或对其进行同步。推测确保指针MetaData的有效性以及与配置的元数据长度相符的足够缓冲区大小属于调用方的职责。 问题 Q-66c6abae0bbde275 (未决)

本使用说明由 AI 基于 AUTOSAR 规范 R20-11 生成。

实现者指南即将推出(复杂度 I2)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 377789b5b880 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步接口 Com_SwitchIpduTxMode 用于切换 I-PDU 的传输模式,并在头文件 Com.h 中以服务 ID 0x27 进行规范 [SWS_Com_00784]。作为参数传递的是相关 I-PDU 的标识符(PduId)以及作为布尔值的所需传输模式(Mode);不存在返回值或输出参数 [SWS_Com_00784]。该调用会在执行期间直接同步切换传输属性 [SWS_Com_00784]。

关于模式更改的生效,规范定义了两种情况:

  • 若传输模式因调用而发生改变,则新的工作模式对所引用的 I-PDU 立即生效 [SWS_Com_00784],[SWS_Com_00239]。
  • 若所请求的传输模式对相关 I-PDU 而言已处于激活状态,则该调用完全不产生任何效果 [SWS_Com_00784]。

关于后续的发送流程,与周期性发送的协同作用如下:若通过 Com_SwitchIpduTxMode 显式设置 I-PDU 的传输模式,AUTOSAR COM 模块会将该 I-PDU 后续的周期性发送延迟时间偏移量 ComTxModeTimeOffset [SWS_Com_00881]。

在并发性方面,该函数针对不同的 I-PDU 实例设计为可重入 [SWS_Com_00784]。然而,针对同一 PduId 的并发或并行调用被定义为不可重入,调用方必须予以阻止 [SWS_Com_00784]。

本使用说明基于规范文档自动生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 3b61acbc40d3 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数 [SWS_Com_00001] 用于同步检索待传输发送 PDU(TxPduId)的 SDU 数据,并将其复制到调用方提供的缓冲区中。调用方通过输入和输出参数 PduInfoPtr 传递目标地址 SduDataPtr 以及 SduLength 中的最大可用缓冲区容量。只要 SDU 数据能完全容纳于缓冲区中,就会进行复制,PduInfoPtr->SduLength 将更新为实际复制的字节数,且该服务以 E_OK 成功结束 [SWS_Com_00001]。

错误处理与边界条件

如果满足以下条件之一,该函数将中止执行,不复制任何数据并返回 E_NOT_OK:

在发生错误时(E_NOT_OK),调用方不得对指针 PduInfoPtr 进行求值或进一步使用,因为它可以指向无效数据或表示 NULL 指针 [SWS_Com_00001]。

并发性

关于并发性,该接口针对不同的 PDU-ID 设计为可重入,但不得针对同一个 TxPduId 进行并发调用 [SWS_Com_00001]。

本使用说明是基于 AUTOSAR 规范自动生成的。

实现者指南即将推出(复杂度 I2)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 2689aa6ec38f 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Com_RxIndication 用于向下层通信接口模块指示并向 AUTOSAR COM 模块传递接收到的 PDU [SWS_Com_00123]。函数声明通过头文件 Com.h 提供,且具有服务 ID 0x42 [SWS_Com_00123]。

该调用采用同步语义且不返回返回值(void)[SWS_Com_00123]。该接口既未定义输入/输出参数,也未定义纯输出参数,而是仅包含两个输入参数 [SWS_Com_00123]:

  • RxPduId(数据类型 PduIdType):表示所接收 PDU 的唯一标识符 [SWS_Com_00123]。
  • PduInfoPtr(指向常量 PduInfoType 的指针):指向包含接收到的 PDU 长度(SduLength)、指向带有 PDU 数据缓冲区的指针(SduDataPtr)以及关联元数据的数据结构 [SWS_Com_00123]。

关于并发行为,Com_RxIndication 被定义为针对使用不同 PDU ID 的调用是可重入的,但明确针对相同 PDU ID 是不可重入的 [SWS_Com_00123]。解释:因此,下层通信接口的调用模块可能有义务对相同 PDU ID 的并发调用进行同步或串行化,以保证数据一致性。 问题 Q-f3b6194f96c15091 (未决)

本说明由 AI 基于 AUTOSAR Classic R20-11 规范生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 4850647a5abb 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步服务函数 Com_TpRxIndication 在通过 TP API 接收到 I-PDU 时被调用 [SWS_Com_00650]。它向 AUTOSAR COM 模块通知接收过程的完成与结果。通过参数 id 识别受影响的 I-PDU,而参数 result 则指示传输成功还是失败 [SWS_Com_00650]。该函数没有返回值,在头文件 Com.h 中定义,服务 ID 为 0x45 [SWS_Com_00650]。调用方大概可能是底层传输层,例如 PduR 或 TP 模块。 问题 Q-d7006169cd162db4 (未决)

错误处理

如果使用参数 result 的结果值 E_NOT_OK 调用 Com_TpRxIndication,则 COM 模块将接收到的大型 I-PDU 的所有信号完全视同已失效的信号来处理 [SWS_Com_00838]。在这种错误情况下,该模块会对所有包含的信号和信号组执行全部已配置的 ComDataInvalidActions [SWS_Com_00838]。

并发性与边界条件

该函数被指定为可重入并同步工作 [SWS_Com_00650]。因此,它可以针对不同的 I-PDU 并行调用,但应在调用实例的上下文中无延迟地处理完毕。

本使用说明是基于 AUTOSAR 规范 R20-11 自动生成的。

实现者指南即将推出(复杂度 I2)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 6f01cbf21243 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步回调函数 Com_TxConfirmation 通过头文件 Com.h 声明,并作为 AUTOSAR COM 模块的核心确认接口 [SWS_Com_00124]。下层通信接口模块借此向模块 Com 反馈 PDU 的成功传输或发送过程的失败 [SWS_Com_00124]。

调用上下文与参数

该函数同步执行,具有服务 ID 0x40,且不提供返回值(void)[SWS_Com_00124]。它需要两个输入参数:

  • TxPduId(类型 PduIdType):传输已完成或失败的 PDU 的唯一标识符 [SWS_Com_00124]。
  • result(类型 Std_ReturnType):发送过程的结果状态 [SWS_Com_00124]。值 E_OK 确认 PDU 已成功传输,而 E_NOT_OK 则指示 PDU 传输失败 [SWS_Com_00124]。

并发性与限制

Com_TxConfirmation 针对不同的 PDU-ID 是可重入的,但针对相同的 PDU-ID 是不可重入的 [SWS_Com_00124]。Interpretation: 来自下层的调用方可能需要避免从不同执行上下文中对相同的 TxPduId 进行相继或打断调用,以使模块 Com 的内部处理状态保持一致。 问题 Q-146c1c92403b64fa (未决)

错误处理

规范未为该服务定义特定的返回值,也未标明单独的 DET 或 DEM 错误报告 [SWS_Com_00124]。错误的传输仅通过带有错误值 E_NOT_OK 的参数 result 传递给模块 Com [SWS_Com_00124]。

本使用说明基于 AUTOSAR R20-11 规范自动创建。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 328768cdfded 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与语义

在 I-PDU 已在网络上传输之后调用函数 Com_TpTxConfirmation,以通知 COM 模块发送过程的结果 [SWS_Com_00725]。通过类型为 PduIdType 的参数 id 识别已传输的 I-PDU,而类型为 Std_ReturnType 的 result 则指示传输成功还是失败 [SWS_Com_00725]。该函数没有返回值(void),并具有同步执行语义 [SWS_Com_00725]。它通过头文件 Com.h 可用,并具有服务 ID 0x48 [SWS_Com_00725]。

错误处理

该接口上的错误传递仅通过参数 result 进行,该参数反映了 I-PDU 传输的成功或失败 [SWS_Com_00725]。在函数规范中未指明具体的错误代码以及向 Default Error Tracer(DET)或 Diagnostic Event Manager(DEM)模块发送的错误消息 [SWS_Com_00725]。

并发性与边界条件

该接口被指定为可重入,因此允许并行执行 [SWS_Com_00725]。作为时间边界条件,仅在 I-PDU 在网络上的传输完成之后才允许进行调用 [SWS_Com_00725]。解释:基于命名约定和模块结构,该调用通常可能由底层传输协议模块发起。 问题 Q-8320e76ff63f62ce (未决)

本文本基于 AUTOSAR 规范 R20-11。

实现者指南即将推出(复杂度 I2)

函数 Com_StartReception [SWS_Com_00691] 📄 PDF

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

Service Com_StartReception.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 00b7efb3a544 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步且可重入的函数 Com_StartReception(可通过 Com.h 获取,服务 ID 0x46)在开始接收 N-SDU 时被调用,该 N-SDU 未分段作为单帧(SF)传输,或分段通过带有后续连续帧(CF)的首帧(FF)传输 [SWS_Com_00691]。

通过参数 id 标识 I-PDU,且 TpSduLength 指明待接收 N-SDU 的总长度 [SWS_Com_00691]。指针 info 指向首帧或单帧的有效负载数据和有效长度以及关联的元数据;如果既没有可用的帧数据也没有可用的元数据,则传递 NULL_PTR [SWS_Com_00691]。通过输出参数 bufferSizePtr,该函数提供可用缓冲区大小,传输协议模块使用该大小来确定块大小(BS)[SWS_Com_00691]。如果以 TpSduLength 为 0 调用该服务,它将提供当前最大可用缓冲区大小 [SWS_Com_00691]。

请求的结果作为 BufReq_ReturnType 返回 [SWS_Com_00691]:

  • BUFREQ_OK:连接被接受并继续接收;bufferSizePtr 指明可用缓冲区,或者如果未提供请求大小的缓冲区,则指示为 0 [SWS_Com_00691]。
  • BUFREQ_E_NOT_OK:连接被拒绝且接收中止;bufferSizePtr 的值保持不变 [SWS_Com_00691]。
  • BUFREQ_E_OVFL:无法提供所需长度的缓冲区,接收随之中止;bufferSizePtr 的值保持不变 [SWS_Com_00691]。

本文由 AI 基于 AUTOSAR R20-11 规范创建。

实现者指南即将推出(复杂度 I1)

函数 Com_CopyRxData [SWS_Com_00692] 📄 PDF

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

Service Com_CopyRxData.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 729d3072fcb5 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用与调用语义

调用同步函数 Com_CopyRxData 以将 I-PDU 段(N-PDU)的已接收数据传递给上层 [SWS_Com_00692]。在分段传输中,对该接口的每次连续调用都会提供整个 I-PDU 数据的相应下一个部分 [SWS_Com_00692]。

参数和缓冲区管理

  • id:唯一标识接收到的 I-PDU [SWS_Com_00692]。
  • info:指向类型为 PduInfoType 的结构的指针。它通过 SduDataPtr 传递指向源缓冲区的指针,并通过 SduLength 传递要复制的字节数 [SWS_Com_00692]。为 SduLength 指定 0 用于查询上限层当前可用的缓冲区大小;在此纯查询情况下,允许将 SduDataPtr 设置为 NULL_PTR [SWS_Com_00692]。
  • bufferSizePtr:指向类型为 PduLengthType 的变量的指针,复制过程后接收缓冲区剩余的大小将写入该变量 [SWS_Com_00692]。

返回值与属性

该函数返回类型为 BufReq_ReturnType 的状态 [SWS_Com_00692]:

该接口的服务 ID 为 0x44,被指定为可重入(reentrant),并可通过头文件 Com.h 获取 [SWS_Com_00692]。

本文由 AI 生成,基于 AUTOSAR 标准 R20-11。

实现者指南即将推出(复杂度 I1)

函数 Com_CopyTxData [SWS_Com_00693] 📄 PDF

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

Service Com_CopyTxData.

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 682b5915a18c 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

底层模块(例如传输协议)调用同步且可重入的函数 Com_CopyTxData,以便从 COM 模块的发送缓冲区中分步获取 I-PDU 分段(N-PDU)的发送数据 [SWS_Com_00693]。

用法与参数

每次调用都会提供 I-PDU 数据的下一部分 [SWS_Com_00693]:

  • id:标识待传输的 I-PDU [SWS_Com_00693]。
  • info:通过 SduDataPtr 指定目标缓冲区,并通过 SduLength 指定要复制的字节数。允许长度为 0,以便通过 retry 传递状态更改或查询可用数据量;在这种情况下,SduDataPtr 可以是 NULL_PTR [SWS_Com_00693]。
  • retry:确认已发送的数据或触发重新传输。如果 retry 是 NULL_PTR,则允许在复制后立即将数据从缓冲区中移除。如果 retry 指向 RetryInfoType 结构,则 TpDataState 控制缓冲区保留:TP_CONFPENDING 将数据保留在缓冲区中以供错误恢复,TP_DATACONF 确认在调用前复制的数据以供删除,而 TP_DATARETRY 则从偏移量 TxTpDataCnt 开始重新复制先前读取的数据 [SWS_Com_00693]。
  • availableDataPtr:返回发送缓冲区中剩余的可用字节数,这使得例如动态传输协议(如 FrIsoTp)能够确定后续分段的大小 [SWS_Com_00693]。

返回值与错误处理

函数结果通过 BufReq_ReturnType 指示缓冲区请求的成功与否 [SWS_Com_00693]:

  • BUFREQ_OK:数据已完全按请求复制到目标缓冲区中 [SWS_Com_00693]。
  • BUFREQ_E_BUSY:发送缓冲区中未备好所请求的数据量。不复制任何数据,底层模块可以在稍后的时间点重试调用 [SWS_Com_00693]。
  • BUFREQ_E_NOT_OK:请求失败;未复制任何数据 [SWS_Com_00693]。

此使用说明基于 AUTOSAR CP R20-11 规范自动生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: ac041132fbb2 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

同步函数 Com_MainFunctionRx 负责 AUTOSAR COM 模块的内部接收处理,用于处理并非直接在 PDU 路由器(PduR)所调用的 API(例如 Com_RxIndication)执行上下文中完成的操作 [SWS_Com_00398]。它既无输入参数也无输出参数,且不提供返回值 [SWS_Com_00398]。声明通过头文件 SchM_Com.h 进行;因此其调用上下文通常可能由调度管理器(SchM)周期性发起 [SWS_Com_00398]。 问题 Q-48d121e36f62c6de (未决)

错误处理与初始化

如果在通过 Com_Init 进行模块初始化之前或在调用 Com_DeInit 之后执行该函数,与大多数常规 COM API 不同,它不会产生错误 COM_E_UNINIT(0x02),因为 Com_MainFunctionRx 已被明确排除在外 [SWS_Com_00804]。该接口不存在特定的错误代码或返回码 [SWS_Com_00398]。

并发性与多实例运行

关于执行上下文和重入性,适用以下规定 [SWS_Com_00398]:

  • 重入性:该函数针对同一实例不可重入,但允许针对不同实例并行调用 [SWS_Com_00398]。
  • 实例特定形式:针对 ECU 配置中定义的每个容器 ComMainFunctionRx,以 Com_MainFunctionRx_<shortName> 的形式实现一个独立的函数,其中 <shortName> 对应于配置容器的短名称(Short-Name)[SWS_Com_00398]。

本文本由 AI 生成,仅供参考。一切以引用的 AUTOSAR 规范为准。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 6bb3c5b804b7 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用与工作原理

函数 Com_MainFunctionTx 执行 AUTOSAR COM 模块中不直接在 RTE 所调用的 COM 函数(例如 Com_SendSignal)内处理的发送活动([SWS_Com_00399])。执行方式为同步。它既无输入、输入/输出参数也无输出参数,且不返回任何返回值([SWS_Com_00399])。该接口通过 SchM_Com.h 声明;解释:基于该头文件归属,调用上下文可能位于调度管理(SchM)中。 问题 Q-c33cfcf81700bcc5 (未决)

对于 ECU 配置中 Com Main Function Tx 的每个已配置容器,必须按照命名模式 Com_MainFunctionTx_<shortName> 实现一个特定的实例函数,其中 <shortName> 对应于配置容器的短名称([SWS_Com_00399])。

并发性与限制

关于重入性,Com_MainFunctionTx 针对不同实例设计为可重入,但针对同一实例不得进行不可重入调用([SWS_Com_00399])。

错误处理与初始化状态

根据 [SWS_Com_00804],在通过 Com_Init 进行初始化之前或通过 Com_DeInit 进行去初始化之后调用 COM 服务通常会导致错误 COM_E_UNINIT(0x02)。然而 Com_MainFunctionTx 对此被明确排除在外,且在这些状态下不会产生此类初始化错误([SWS_Com_00804])。

本文本由人工智能生成,基于 AUTOSAR 规范 R20-11。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 626630c6dee2 来源 未决问题(1)
译自德文指南AI 生成gemini-3.8-flash-low · 2026-10-13 · 德文原文

主函数 Com_MainFunctionRouteSignals(服务 ID 0x1a)在 AUTOSAR COM 模块中充当信号转发的中央同步接口([SWS_Com_00400])。其任务是调用 COM 模块的信号网关部分,以便将预定用于路由的接收信号转发至其配置的目标([SWS_Com_00400])。

调用与语义

该无参数 C 接口具有签名 void Com_MainFunctionRouteSignals(void)([SWS_Com_00400])。它同步执行,既没有输入、输入/输出或输出参数,也没有返回值([SWS_Com_00400])。主函数的声明通过头文件 SchM_Com.h 提供([SWS_Com_00400])。解释:由于通过 SchM_Com.h 提供,计划在任务上下文中的调用可能由 BSW 调度器(SchM)周期性进行。 问题 Q-0f0b57034d6d6bf1 (未决)

实例化与重入性

对于集成、命名和并发性,[SWS_Com_00400] 定义了以下具有约束力的要求:

  • 实例特定实现:对于 ECU 配置中存在的配置容器 ComMainFunctionRouteSignals 的每个实例,必须按照命名模式 Com_MainFunctionRouteSignals_<shortName> 实现单独的函数([SWS_Com_00400])。在此,<shortName> 对应于相关配置容器的短名称。
  • 重入行为:针对不同实例的调用,该函数是可重入的([SWS_Com_00400])。然而,对于同一实例,它被明确指定为不可重入,因此不得并发执行([SWS_Com_00400])。

本使用说明基于规范自动生成。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 0cd088b5afe8 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

回调函数 Com_CbkTxAck 在模块 Com 中用于通知报文成功发送 [SWS_Com_00468]。它代表通知类别 2(notification class 2),并在包含相关报文的 I-PDU 成功传输后立即被调用 [SWS_Com_00468]。

根据规范,对于调用上下文和接口属性适用以下规定 [SWS_Com_00468]:

  • 签名和参数:该回调函数具有签名 void Com_CbkTxAck (void)。它既不接收输入、输入/输出参数也不接收输出参数,并且不返回返回值 [SWS_Com_00468]。
  • 同步性:该调用被指定为同步(Synchronous)[SWS_Com_00468]。
  • 可重入性:可重入行为被归类为 don't care [SWS_Com_00468]。
  • 配置:该接口被声明为可配置(configurable)[SWS_Com_00468]。解释:回调函数的实际名称可能在配置工具中针对特定报文或特定信号进行参数化。 问题 Q-3670b7b04fd7c74c (未决)

规范中未为该元素定义特定的错误代码、错误反应以及向 DET 或 DEM 的通知 [SWS_Com_00468]。也未列出相对于其他调用的进一步执行顺序条件 [SWS_Com_00468]。

本文由 AI 基于 AUTOSAR R20-11 生成。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 2eeb947394ae 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

当由于关联的 I-PDU 组已停止而无法进行传输时,同步调用回调函数 Com_CbkTxErr [SWS_Com_00491]。根据底层规范,它对应于通知类别 4 [SWS_Com_00491]。

调用与语义

  • 签名和参数:该函数既没有输入、输入/输出参数也没有输出参数(void Com_CbkTxErr (void)),并且不返回返回值 [SWS_Com_00491]。
  • 执行行为:调用同步进行(“Synchronous”),而可重入性被指定为“don't care” [SWS_Com_00491]。
  • 可用性:回调接口是可配置的(“configurable”)[SWS_Com_00491]。

错误处理与交互

该函数专门用于向调用层或上层指示由于 I-PDU 组已停止而导致发送请求受阻的错误情况 [SWS_Com_00491]。由于未传递任何参数,受影响信号或 I-PDU 的上下文可能通过配置或模块特定分配来指定。 问题 Q-d7153324d2eb2995 (未决)

本使用说明由 AI 系统基于规范数据自动生成。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 2a4f700c045f 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与调用上下文

回调函数 Com_CbkTxTOut 用作未能成功传输时的通知接口。根据 [SWS_Com_00554],在截止时间监控机制(deadline monitoring mechanism)检测到报文传输错误后,该函数被立即调用。调用同步进行,对应于通知类别 4。由于签名 void Com_CbkTxTOut(void) 既无传递值也无返回值,因此向更上一层的指示是无参数进行的。

并发与配置

关于可重入性,根据 [SWS_Com_00554],该函数被指定为 don't care。因此,如果监控事件可能并发到达,被调用的应用软件大概有责任采取适当的线程安全措施。 问题 Q-793a6c18d81de85e (未决)回调函数的可用性在通信模块中是可配置的,并适应相应的监控需求。

错误处理

在 [SWS_Com_00554] 中,未为 Com_CbkTxTOut 定义单独的 DET 或 DEM 错误报告,也未定义用于错误确认的返回值。触发回调本身即代表了对超出发送截止时间的错误反应。

本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 5f202dc48b43 来源 未决问题(2)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

回调函数 Com_CbkRxAck 在 AUTOSAR-COM 模块中用作可配置的接收确认,并代表符合 [17] 的通知类别 1 [SWS_Com_00555]。COM 模块在接收到的报文成功存入并保存在为其提供的接收报文对象中之后,立即调用此回调例程 [SWS_Com_00555]。

用法与调用上下文

  • 同步执行行为:该函数被指定为同步 [SWS_Com_00555]。它在存储过程期间直接执行,因此 COM 模块的调用上下文会等待回调执行完成。
  • 参数和返回值:根据签名 void Com_CbkRxAck (void),不传递输入参数、输入/输出参数和输出参数 [SWS_Com_00555]。此外,该函数不向调用模块返回任何返回值 [SWS_Com_00555]。
  • 可用性:该调用机制作为可配置接口供系统使用 [SWS_Com_00555]。

并发与错误处理

对于可重入性,确定了“don't care”属性 [SWS_Com_00555]。这可能意味着 COM 规范对可重入调用没有提出要求,防范并发访问的保护机制属于用户的责任。 问题 (未决)由于未针对 DET 或 DEM 定义返回值,也未定义特定的错误代码或错误报告 [SWS_Com_00555],因此处理过程中的任何错误可能完全需要在回调函数内部进行局部处理。

此文本由 AI 基于 R20-11 规范生成。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 8121281e52ca 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与语义

回调函数 Com_CbkRxTOut 用于通知未收到预期报文。根据 [SWS_Com_00556],一旦模块的截止时间监控机制检测到报文接收错误,就会立即调用该函数。此通知对应于通知类别 3(“notification class 3 of [17]”),并作为可配置接口提供 [SWS_Com_00556]。

调用同步进行(Synchronous),无传递参数且无返回值(void Com_CbkRxTOut(void))[SWS_Com_00556]。因此,该函数仅向调用接收方或上层软件层指示超时事件本身,而不在调用中直接传递上下文数据。

并发性与限制

在规范中为该函数的可重入性指定了 don't care [SWS_Com_00556]。由于调用在错误检测后立即且同步发生,因此回调例程的实现可能必须设计为低阻塞运行,以免对 COM 模块的截止时间监控造成不允许的延迟。 问题 Q-88055efc50f5843b (未决)

此文本由 AI 生成,用作参考指引。引用的 AUTOSAR 规范具有权威性。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 148e16c23d2c 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

回调函数 Com_CbkInv 将 AUTOSAR COM 模块 [SWS_Com_00536] 中接收到的错误或无效通信数据通知给上层软件层。它在接收到无效信号或无效信号组后立即被调用,并向接收方通知存在无效信号值 [SWS_Com_00536]。

该接口具有签名 void Com_CbkInv(void),因此不接收传递参数,也不向调用者返回返回值 [SWS_Com_00536]。调用同步进行,而规范中将可重入行为指定为“don't care” [SWS_Com_00536]。由于未传递用于标识受影响信号的参数,标识符 Com_CbkInv 大概用作用于特定信号通知的可配置签名模板。 问题 Q-6e02e6bcf324eb93 (未决)

关于集成和系统行为,适用以下边界条件:

  • 该函数的提供是可配置的,从而可以根据需要针对每个信号或信号组激活通知 [SWS_Com_00536]。
  • 在业务功能上,该函数对应于 COM 模块 [SWS_Com_00536] 中针对接收信号无效化处理的需求 SWS_Com_00680。
  • 未为该接口指定特定的错误处理例程、错误代码或针对 DET 或 DEM 等开发或诊断模块的错误报告 [SWS_Com_00536]。

本使用说明是基于规范数据自动生成的。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: df6b24d5c921 来源 未决问题(2)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

可配置回调函数 Com_CbkCounterErr 用于根据 [SWS_Com_00726] 发出 I-PDU 计数器监控中的错误信号。当在接收到的 I-PDU 中检测到与预期计数器值不匹配的计数器值时,AUTOSAR COM 模块会立即同步调用该函数。这使得在接收报文时能够及早检测到序列错误。

该接口没有返回值(void),并在调用时传递三个输入参数用于错误分析([SWS_Com_00726]):

  • ComPduId(PduIdType):发生计数器错误的相关 I-PDU 的标识符。
  • ExpectedCounter(uint8):COM 模块预期的 I-PDU 计数器值。
  • ReceivedCounter(uint8):在接收到的报文中实际找到的计数器值。

关于并发性,该函数的重入性在规范中被声明为“don't care”([SWS_Com_00726])。[SWS_Com_00726] 中未为该接口指定特定的 DET 或 DEM 错误消息。由于该回调函数被定义为可配置的,它可能在诸如应用程序等上层中实现,以便对传输错误或丢包做出针对具体应用的响应。解释:由于调用是在 COM 接收处理的上下文中立即且同步进行的([SWS_Com_00726]),被调用的例程可能不应执行阻塞操作。 问题 Q-a745eb5416fc156b (未决)

此使用说明由 AI 基于 AUTOSAR R20-11 规范生成。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 0dd4280d4342 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

回调函数 Com_CbkTxPrep 用作通知,表明 Com_MainFunctionTx 的专用实例的信号或信号组现在已准备好进行传输 [SWS_Com_91013]。该函数的执行与调用实例同步 [SWS_Com_91013]。根据其签名 void Com_CbkTxPrep(void),它既不接收输入参数,也不接收输入/输出参数或输出参数,并且没有返回值 [SWS_Com_91013]。

该接口的提供取决于配置 [SWS_Com_91013]。只要配置了配置参数 ComPreparationNotification,就必须在关联的 MainFunctionTx 内调用相应的函数 Com_CbkTxPrep [SWS_Com_00886]。在此过程中必须严格遵守固定的时间先后顺序条件:该调用必须在 Tx 主函数内开始实际的 I-PDU 处理之前完全执行完毕 [SWS_Com_00886]。

关于并发行为和可能的限制,Com_CbkTxPrep 被指定为不可重入(Non Reentrant)[SWS_Com_91013]。调用上下文严格绑定到 MainFunctionTx 相应实例的执行流程 [SWS_Com_91013]。由于该回调必须紧接在 I-PDU 处理开始之前执行,因此该函数同步集成在相应的发送例程中 [SWS_Com_00886]。

此使用说明基于 AUTOSAR 规范 R20-11 自动生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 27d82988d509 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Com_RxIpduCallout 是接收方的一个可配置标注(Callout),用于实现用户特定的 I-PDU 接收过滤机制 [SWS_Com_00700]。执行同步进行,关于重入性,该接口被指定为 don't care [SWS_Com_00700]。

接收到的 PDU 的标识符及数据会被传递给该调用 [SWS_Com_00700]:

  • PduId:接收到的 I-PDU 的标识符 [SWS_Com_00700]。
  • PduInfoPtr:指向 PduInfoType 结构的指针,该结构提供接收到的 I-PDU 的长度(SduLength)以及指向有效负载数据的指针(SduDataPtr)[SWS_Com_00700]。

关于数据提供,[SWS_Com_00816] 要求 AUTOSAR COM 模块将接收到的 I-PDU 的所有数据完整转发给 Com_RxIpduCallout,且与 PDU 路由器层(PduR)提供的数据完全一致。

标注通过布尔返回值控制 COM 模块中 I-PDU 的后续处理 [SWS_Com_00700]:

  • true:接收到的 I-PDU 正常进行进一步处理 [SWS_Com_00700]。
  • false:I-PDU 不再进行进一步处理,从而被丢弃 [SWS_Com_00700]。

规范中未为该标注规定特定的错误代码、返回码常量或 DET 和 DEM 消息 [SWS_Com_00700]。

提示:本使用说明基于 AUTOSAR R20-11 规范由 AI 系统自动生成。

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: df5cc1442b9d 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 Com_TxIpduCallout 用作发送端的微调标注(Callout),并被同步调用以对传出的 I-PDU 执行用户特定的预处理或传输过滤 [SWS_Com_00346]。

参数与返回值

  • PduId (in):传递待传输 I-PDU 的标识符 [SWS_Com_00346]。
  • PduInfoPtr (inout):包含有效负载长度(SduLength)以及指向 I-PDU 有效负载数据(SduDataPtr)的指针 [SWS_Com_00346]。通过它可以于发送前检查或修改 I-PDU 数据。
  • 返回值(boolean):控制 I-PDU 的进一步处理 [SWS_Com_00346]。返回值 true 会触发 I-PDU 的常规发送,而 false 会中止任何进一步的处理并因而中止传输 [SWS_Com_00346]。

并发与配置

该 Callout 的服务 ID 为 0x29,其可重入性在规范层面定义为“don't care” [SWS_Com_00346]。Interpretation: 由于可重入性不受限制,因此调用可能会根据触发的发送请求在不同的任务上下文中发生,所以在共享资源时,用户侧实现应当是线程安全的。 问题 Q-3ce35701879bb60c (未决)

本段文本为自动生成。所有信息仅基于 AUTOSAR 规范版本 R20-11。

类型 Com_StatusType [SWS_Com_00819] 📄 PDF

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

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 7e3d9f87970e 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

枚举类型 Com_StatusType 定义了 AUTOSAR COM 模块的状态值,并通过头文件 Com.h 提供 [SWS_Com_00819]。该类型用作 API 服务 Com_GetStatus() 的返回值,调用方可使用该服务查询通信模块当前的初始化和运行状态 [SWS_Com_00819]。

Com_StatusType 指定的取值范围恰好区分两种状态 [SWS_Com_00819]:

  • COM_UNINIT:指示 AUTOSAR COM 模块未初始化或不可用 [SWS_Com_00819]。该状态强制具有数值 0x00(或值 0),并构成系统复位后紧接着的具有约束力的默认值 [SWS_Com_00819]。
  • COM_INIT:指示 AUTOSAR COM 模块已正确初始化,因此处于就绪且可用状态 [SWS_Com_00819]。

对于调用软件而言,对该返回值的求值用于在使用通信模块之前检查其就绪情况 [SWS_Com_00819]。只要服务 Com_GetStatus() 返回值 COM_UNINIT,COM 模块就被视为未初始化或不可用 [SWS_Com_00819]。仅当状态具有值 COM_INIT 时,模块才被初始化并处于就绪状态 [SWS_Com_00819]。未为此枚举类型指定其他错误代码或返回值 [SWS_Com_00819]。

本使用说明是基于规范自动生成的。

实现者指南即将推出(复杂度 I1)

类型 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#4ebb28dd
Content hash
4ebb28dd
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_COM.pdf#nameddest=SWS_Com_00432

初始化与状态

Com_DeInit 函数

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);

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 函数

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);

服务 · 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);

服务 · 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);

服务 · 其他

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);

回调

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 函数

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);

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);

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);

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);

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);

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);

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);

Callout 与预期接口

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);

周期性

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);

类型

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().