全部学习汇总: https:///GreyZhang/hack_autosar

       继续学习AUTOSAR,看一下SWC的模板部分。文档看到现在,感觉现在看的很多东西跟最初看的VFB部分对应起来了。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_数据

       NonqueuedReceiverComSpec 和 enableUpdate

       将属性 enableUpdate 设置为 true 的 NonqueuedReceiverComSpec 可能不会引用 dataElement,而 dataElement 又由角色 dataReadAccess 中的 VariableAccess 引用。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_数据过滤_02

       initValue 应存在于 RPortPrototype 中

       如果封闭的 NonqueuedReceiverComSpec 由 RPortPrototype 拥有,则可选属性 initValue 应存在。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_无符号整数_03

       swImplPolicy 和 NonqueuedReceiverComSpec

       NonqueuedReceiverComSpec 引用的数据元素的属性 swImplPolicy 不应设置为队列的值。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_autosar_04

       swImplPolicy 和 QueuedReceiverComSpec

       QueuedReceiverComSpec 引用的数据元素的属性 swImplPolicy 应设置为队列。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_数据过滤_05

       ReceiverComSpec.replaceWith 的存在

       当且仅当至少满足以下条件之一时,角色 ReceiverComSpec.replaceWith 中的 VariableAccess 聚合才应存在:

       • 属性 ReceiverComSpec.handleOutOfRange 设置为值 externalReplacement。

       • 属性SenderReceiverInterface.invalidationPolicy.handleInvalid 设置为值externalReplacement。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_无符号整数_06

       swImplPolicy 和 NonqueuedSenderComSpec

       NonqueuedSenderComSpec 引用的数据元素的属性 swImplPolicy 不应设置为队列。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_autosar_07

       swImplPolicy和QueuedSenderComSpec

       QueuedSenderComSpec 引用的数据元素的属性 swImplPolicy 应设置为队列的值。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_it技术_08

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_无符号整数_09

       initValue 定义了一个初始值,如果尚未收到相应的数据元素,则应采用该初始值

       角色 initValue 中 ValueSpecification 的聚合定义了一个初始值,如果尚未接收到相应的 dataElement 但应用程序软件正在尝试访问其值,则应采用该初始值。

       这是数据传输初始值的唯一相关定义。 也就是说,在 VariableDataPrototype 的上下文中定义的任何 initValue 都将被忽略!

       发送方的通信属性如图 4.33 所示。

       图 4.32 显示了与定义数据过滤器相关的通信属性模型。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_数据过滤_10

       数据过滤器

       对于由 SenderReceiverInterface 输入的每个 RPortPrototype,如果预见到非排队通信,可以定义一个 DataFilter。

       元模型中由枚举类型 DataFilterTypeEnum 正式描述的 15 种过滤器算法取自 RTE 规范 [2] 引用的 OSEK COM 3.0.3 规范 [18]。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_数据_11

       数据过滤器的可用性

       该 OSEK 规范声明“过滤仅用于可以解释为 C 语言无符号整数类型(字符、无符号整数和枚举)的消息。”

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_数据_12

       这是相关的约束条件

       根据 DataFilter 的起源,即 OSEK COM 3.0.3 规范 [18],DataFilters 只能应用于具有整数基类型的值。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_无符号整数_13

       数据过滤器的基类。 过滤器的类型在属性 dataFilterType 中指定。一些过滤器类型需要额外的参数,这些参数被指定为此类的属性。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_it技术_14

       此枚举指定支持的 DataFilterTypes。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_it技术_15

       属性 ReceiverComSpec.transformationComSpecProps 的语义

       ReceiverComSpec.transformationComSpecProps 用于配置特定于 PortPrototype 的属性,以便在接收 ECU 间通信的情况下进行数据转换。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_it技术_16

       ReceiverComSpec.usesEndToEndProtection 属性的适用性

     对于在角色transformationComSpecProps 中聚合EndToEndTransformationDescription 的所有ReceiverComSpec,属性ReceiverComSpec.usesEndToEndProtection 应设置为false。

       有关详细信息,请参阅第 4.5.6 章。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_数据过滤_17

       图 4.33:PPortPrototype 与 senderreceiver 通信相关的通信属性。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_it技术_18

       发送方端口的通信属性(由 SenderReceiverInterface 输入的 PPortPrototype)。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_autosar_19

       特定于事件分发的通信属性(PPortPrototype、SenderReceiverInterface 和 dataElement 携带“事件”)。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_数据_20

       非队列发送方/接收方通信的通信属性(发送方)

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_autosar_21

       请求传输确认数据已成功发送。通过 RunnableEntity 的 SendPoint 报告成功/失败。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_autosar_22

       这种类型的值用于控制 AUTOSAR RTE 的范围检查行为。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_数据_23

       networkRepresentation 定义了如何在通信总线上表示特定的数据元素

       对于发送方-接收方通信,如果通信需要使用专用通信总线,则可以指定数据元素的表示方式。

       也就是说,通过 networkRepresentation 可以定义特定数据元素在通信总线上的表示方式。 为此目的,networkRepresentation 被实现为 SwDataDefProps 的聚合。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_it技术_24

       dataElement 的 CompuMethods 和 networkRepresentation 用于转换目的

       dataElement 和 networkRepresentation 的附加 CompuMethods 可用于识别两者之间的转换。 这种方法的优点是,它也可以在不进行任何修改的情况下与不同 SwComponentType 之间的数据元素的一般重新映射和重新缩放结合使用,无论它们是位于相同还是不同的 ECU 上。

       请注意,是否采用网络表示进行数据映射的决定是在 AUTOSAR 系统模板 [11] 的上下文中完成的。 请在适用规范中找到有关这方面的更多详细信息。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_无符号整数_25

       网络表示对 ApplicationCompositeDataType 的适用性

       ReceiverComSpec 或 SenderComSpec 处的 networkRepresentation 聚合仅适用于 ApplicationPrimitiveDataTypes 类型化的数据元素。 对于使用 ApplicationCompositeDataType 的情况,应使用附加机制。

       特别地,compositeNetworkRepresentation 将用于定义ApplicationCompositeDataTypes 的叶元素的networkRepresentation。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_数据过滤_26

       网络表示与复合网络表示的存在

       如果 ReceiverComSpec 或 SenderComSpec 聚合了 networkRepresentation,则它不应同时聚合 CompositeNetworkRepresentation(反之亦然)。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_数据_27

       复合网络表示的存在应该是全面的

       如果至少存在一个 CompositeNetworkRepresentation,那么对于受影响的 ApplicationCompositeDataType 的每个叶 ApplicationCompositeElementDataPrototype,应准确定义一个 CompositeNetworkRepresentation。

       当然,[constr_1197] 的定义在某种程度上具有递归特性。 意思是,如果它实际上是要定义一个复合网络表示,那么该定义应完全覆盖相应 ApplicationCompositeDataType 的整个叶元素集。 换句话说,要么全有,要么全无。

916_AUTOSAR_TPS_SoftwareComponentTemplate21_发送器-接收器通信具体要求2_it技术_28

       该元类用于定义复合应用程序数据类型的叶元素的网络表示。

       这部分看完了发送器-接收器通信的具体要求,很多内容逐渐开始熟悉,主要的原因可能就是整体的脉络其实跟VFB的表述是类似相近的,至少是有一定相关性的。