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

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

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

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

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

ReceiverComSpec.replaceWith 的存在
当且仅当至少满足以下条件之一时,角色 ReceiverComSpec.replaceWith 中的 VariableAccess 聚合才应存在:
• 属性 ReceiverComSpec.handleOutOfRange 设置为值 externalReplacement。
• 属性SenderReceiverInterface.invalidationPolicy.handleInvalid 设置为值externalReplacement。

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

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


initValue 定义了一个初始值,如果尚未收到相应的数据元素,则应采用该初始值
角色 initValue 中 ValueSpecification 的聚合定义了一个初始值,如果尚未接收到相应的 dataElement 但应用程序软件正在尝试访问其值,则应采用该初始值。
这是数据传输初始值的唯一相关定义。 也就是说,在 VariableDataPrototype 的上下文中定义的任何 initValue 都将被忽略!
发送方的通信属性如图 4.33 所示。
图 4.32 显示了与定义数据过滤器相关的通信属性模型。

数据过滤器
对于由 SenderReceiverInterface 输入的每个 RPortPrototype,如果预见到非排队通信,可以定义一个 DataFilter。
元模型中由枚举类型 DataFilterTypeEnum 正式描述的 15 种过滤器算法取自 RTE 规范 [2] 引用的 OSEK COM 3.0.3 规范 [18]。

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

这是相关的约束条件
根据 DataFilter 的起源,即 OSEK COM 3.0.3 规范 [18],DataFilters 只能应用于具有整数基类型的值。

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

此枚举指定支持的 DataFilterTypes。

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

ReceiverComSpec.usesEndToEndProtection 属性的适用性
对于在角色transformationComSpecProps 中聚合EndToEndTransformationDescription 的所有ReceiverComSpec,属性ReceiverComSpec.usesEndToEndProtection 应设置为false。
有关详细信息,请参阅第 4.5.6 章。

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

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

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

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

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

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

networkRepresentation 定义了如何在通信总线上表示特定的数据元素
对于发送方-接收方通信,如果通信需要使用专用通信总线,则可以指定数据元素的表示方式。
也就是说,通过 networkRepresentation 可以定义特定数据元素在通信总线上的表示方式。 为此目的,networkRepresentation 被实现为 SwDataDefProps 的聚合。

dataElement 的 CompuMethods 和 networkRepresentation 用于转换目的
dataElement 和 networkRepresentation 的附加 CompuMethods 可用于识别两者之间的转换。 这种方法的优点是,它也可以在不进行任何修改的情况下与不同 SwComponentType 之间的数据元素的一般重新映射和重新缩放结合使用,无论它们是位于相同还是不同的 ECU 上。
请注意,是否采用网络表示进行数据映射的决定是在 AUTOSAR 系统模板 [11] 的上下文中完成的。 请在适用规范中找到有关这方面的更多详细信息。

网络表示对 ApplicationCompositeDataType 的适用性
ReceiverComSpec 或 SenderComSpec 处的 networkRepresentation 聚合仅适用于 ApplicationPrimitiveDataTypes 类型化的数据元素。 对于使用 ApplicationCompositeDataType 的情况,应使用附加机制。
特别地,compositeNetworkRepresentation 将用于定义ApplicationCompositeDataTypes 的叶元素的networkRepresentation。

网络表示与复合网络表示的存在
如果 ReceiverComSpec 或 SenderComSpec 聚合了 networkRepresentation,则它不应同时聚合 CompositeNetworkRepresentation(反之亦然)。

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

该元类用于定义复合应用程序数据类型的叶元素的网络表示。
这部分看完了发送器-接收器通信的具体要求,很多内容逐渐开始熟悉,主要的原因可能就是整体的脉络其实跟VFB的表述是类似相近的,至少是有一定相关性的。
















