继续学习AUTOSAR,看一下官方文档。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_网络协议

       4.9 隐式通信行为的正式定义

       隐式通信行为

       与隐式通信相关的 SwComponentType 行为的正式定义的目的在概念上可以浓缩为两个基本方面:

       • 在一组 RunnableEntity 执行期间的稳定数据。 这意味着不同 RunnableEntity 读取的所有数据值都来自相同的寿命。 因此,在 RunnableEntity 链的执行过程中,该值不会改变。

       • 一组DataPrototype 的一致数据消费和传播。 这意味着一组相互依赖的数据值来自相同的计算迭代。 因此,必须立即将这组值传播到需要完整计算结果的 RunnableEntitys。

作为计算链一部分的 RunnableEntity 可能仍会消耗部分更新的值。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_嵌套_02

       关于 ConsistencyNeeds 的术语稳定性的含义

       稳定性一词的含义是一组 VariableDataPrototypes 的值在一组 RunnableEntitys 的执行过程中不应改变值。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_autosar_03

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_autosar_04

       关于一致性需求的术语一致性的含义

       术语一致性的含义是指在所有生成的 RunnableEntity 终止之前,不应通过接收 RunnableEntity 来读取一组 VariableDataPrototypes 的值。

       为了响应这些目标,元模型提供了表达一组 RunnableEntity 和一组 DataPrototype 之间相关性的方法。 这些组可以分层定义。

       信息(就 ConsistencyNeeds 而言)可以主要在 AtomicSwComponentType 的设计期间定义,但也可以在 CompositionSwComponentTypes 的定义期间指定此 ConsistencyNeeds。

       例如,对于多个 AtomicSwComponentTypes 的 RunnableEntitys 的执行,通常需要稳定数据的存在。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_网络协议_05

       请注意,稳定性和连贯性这两个方面不一定相互关联。 可能需要稳定性而没有连贯性,反之亦然。 为此,需要角色 dpgDoesNotRequireCoherence 和 regDoesNotRequireStability。

       不需要稳定性和/或连贯性

       为了能够清楚地将稳定性与一致性分开,可以使用角色 dpgDoesNotRequireCoherence 来表示一组 VariableDataPrototypes 明确不需要一致性。

       同样,regDoesNotRequireStability 可用于表示对于一组 RunnableEntitys 而言,不需要关于数据访问的稳定性。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_数据_06

       一致性需求的适用性

       ConsistencyNeeds 只能应用于使用“隐式”通信的 RunnableEntity。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_网络_07

       ConsistencyNeeds 只能应用于使用“隐式”通信的 RunnableEntity。

       如果将 ConsistencyNeeds 应用于不使用隐式通信的 RunnableEntity,则应忽略它。

       隐式通信行为的正式定义预见了模型元素的分组,以表明它们与一致的隐式通信的相关性。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_嵌套_08

       RunnableEntityGroup

       如果 RunnableEntity 与给定的 RunnableEntityGroup 直接关联,或者如果 RunnableEntity 所属的 RunnableEntityGroup 最终(可以有多个嵌套级别)被给定的 RunnableEntityGroup 引用,则该 RunnableEntity 属于特定的 RunnableEntityGroup。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_网络协议_09

       DataPrototypeGroup

       如果 VariableDataPrototypes 直接与给定的 DataPrototypeGroup 相关联,或者如果 VariableDataPrototype 所属的 DataPrototypeGroup 最终(可以有多个嵌套级别)被给定的 DataPrototypeGroup 引用,则 VariableDataPrototypes 属于特定的 DataPrototypeGroup。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_autosar_10

       由 CompositionSwComponentType 聚合的 ConsistencyNeeds

       如果 ConsistencyNeeds 由 CompositionSwComponentType 聚合,则关联构造型 instanceRef 可能仅引用此 CompositionSwComponentType 上下文中的上下文和目标元素。

       为澄清起见,[constr_1231] 包括拥有 CompositionSwComponentType 的委托 PortPrototypes 所拥有的 VariableDataPrototypes,委托 PortPrototypes 中的 CompositionSwComponentType 实例化在封闭 CompositionSwComponentType 中的 VariableDataPrototypes,或由 CompositionSwComponentType 拥有的 PortPrototypes 中的 VariableDataPrototypes。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_数据_11

       按AtomicSwComponentType聚合的一致性需求

       ConsistencyNeeds 由 AtomicSwComponentType 聚合,关联构造型 instanceRef 可能只引用此 AtomicSwComponentType 上下文中的上下文和目标元素。

       严格来说,这些是此特定AtomicSwComponentType的RunnableEntitys和PortPrototype,或者是属于同一AtomicSwComponentType的RunnableEntityGroups和DataPrototypeGroups。

       请注意,RunnableEntityGroup和DataPrototypeGroup类别的预定义值如[1]所述。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_网络_12

       这个元类表示定义隐式通信行为需求的能力。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_网络_13

       这个元类表示定义RunnableEntities集合的能力。集合可以嵌套。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_autosar_14

       这个元类表示定义数据原型集合的能力,这些数据原型受隐式通信行为的正式定义的约束。集合的定义可以嵌套。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_网络_15

       4.9.1接收方的一致性需求

       接收SwComponentType在角色DPGReQuiresColerence中拥有一个DataPrototypeGroup

       如果接收的SwComponentType在其一个或多个RunnableEntity的DPGReQuiresColerence角色中拥有DataPrototypeGroup,则需要一致地生成属于同一DataPrototypeGroup的VariableDataPrototype。这意味着VariableDataPrototype的值应具有相同的寿命。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_autosar_16

       接收SwComponentType在角色RegreeRequestStability中拥有RunnableEntityGroup

     如果接收SwComponentType的一个或多个RunnableEntitys在角色RequireRestability中拥有RunnableEntityGroup,则要求隐式通信的VariableDataPrototype的值在属于给定RunnableEntityGroup的所有RunnableEntitys的执行期间保持稳定。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_autosar_17

       接收SwComponentType在角色RequireRestability中拥有一个RunnableEntityGroup,在角色dpgRequiresCoherence中还拥有一个或多个DataPrototypeGroup

       如果接收的SwComponentType在角色RequireRestability中拥有RunnableEntityGroup,并且在角色dpgRequiresCoherence中拥有一个或多个DataPrototypeGroup,则需要一致地生成属于相同DataPrototypeGroup的VariableDataPrototypes的值。

       这意味着VariableDataPrototype的值应具有相同的寿命,并且在属于给定UnableEntityGroup的所有RunnableEntitys的执行期间保持稳定。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_autosar_18

       4.9.2发送方的一致性需求

       正在发送的SwComponentType在角色DPGReQuiresColerence中拥有一个DataPrototypeGroup

       如果发送的SwComponentType在其一个或多个RunnableEntitys的DPGReQuiresColerence角色中拥有DataPrototypeGroup,则需要在同一时间点将属于同一DataPrototypeGroup的VariableDataPrototypes传播到不属于生成RunnableEntitys组的RunnableEntitys(可以,但不必正式描述为RunnableEntityGroup)。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_autosar_19

       一致性是在生成RunnableEntitys组的RunnableEntitys终止(隐式数据得到更新)的时间点创建的。

       如果这些runnableentity也在读取数据,那么这些读取访问将不会读取一致值,而是读取由同一组的runnableentity写入的中间值。

       对于不属于RunnableEntitys生成组成员的所有其他RunnableEntitys,似乎此时数据已一致更新。

       为了避免不正确的配置,可以显式定义一致性不适用的runnableentity组。

       发送SwComponentType在角色DPGReQuiresColerence中拥有一个DataPrototypeGroup,并且还运行了RunnableEntityGroups

       如果发送的SwComponentType在角色dpgRequiresCoherence中拥有DataPrototypeGroup,则角色RegDoesNotRequestRestability中的RunnableEntityGroups可能存在。

       从这些RunnableEntityGroups中的RunnableEntitys读取访问将不会读取一致值,而是读取由同一组的RunnableEntitys写入的中间值。

922_AUTOSAR_TPS_SoftwareComponentTemplate27_隐式通信行为_网络协议_20

       4.9.3 RunnableEntityGroup中相同数据的发送方和接收方的一致性需求

       同一隐式通信的VariableDataPrototype的发送方和接收方与同一RunnableEntityGroup关联

       对于相同隐式通信变量数据的发送方和接收方,原型与相同的RunnableEntityGroup[TPS_SWCT_01472]、[TPS_SWCT_01473]、[TPS_SWCT_01475]以及[TPS_SWCT_01475]相关联应用,但在终止生成RunnableEntity后,给定RunnableEntityGroup内隐式通信的VariableDataPrototype值的更新立即可见。

       这部分主要是梳理了饮食通信行为的一些内容,主要的问题解决聚焦点还是在于数据的一致性解决方案或者说约束条件。自然,约束条件很多的考量点也是在于数据的一致性。