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

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

894_AUTOSAR_TPS_SoftwareComponentTemplate4_数据一致性与变体处理_元模型

894_AUTOSAR_TPS_SoftwareComponentTemplate4_数据一致性与变体处理_建模_02

       2.3.3 数据一致性建模方面

       术语“显式通信”和“隐式通信”的内在含义在第 7.5.1.1 节中进行了解释。 可以公平地说,隐式和显式通信之间的区别在应用程序域中建立了一种使用模式,即在 AUTOSAR 软件组件及其实现的开发人员的世界中。

       然而,这个主题还有另一个方面,即这个模式如何在元模型中实现的问题。 关于基于端口的通信模式的应用,可以在第 7.5.1.2 节中找到详细信息,更具体地说,在第 7.5.1.3 节中。 基于所谓的“可运行变量”的内部通信的考虑在第 7.4.2 节中描述。通过阅读相应的文本部分,很明显该模式的两个应用程序的建模方式不同。 基于端口的通信使用 VariableAccess 来形式化访问通信元素的不同角色。 用于此目的的一些角色意味着显式通信(例如 dataSendPoint),而有些则表示隐式通信(例如 dataWriteAccess)。

       然而,使用 VariableAccess 的重要一点是,通信角色的建模是从实际的通信元素中抽象出来的,并代表了一种统一的(意思是:它可以直接或通过所谓的 InstanceRef 引用目标)建模方法,即适用于所有用例。

       诚然,对于内部通信,这是以不同的方式处理的。 在这里,没有使用额外的抽象层(尽管这样做在技术上是可行的)关于“具有隐式行为的可运行变量”和“具有显式行为的可运行变量”的明确分离。 即时通讯。

       不同通信角色(即隐式与显式)的实现是通过将 VariableDataPrototype 直接聚合在角色显式间运行变量和隐式间运行变量中来完成的。

       另一方面,访问内部通信从不需要使用 InstanceRef,因此抽象可能被认为是不必要的开销,会破坏 M1 模型。

894_AUTOSAR_TPS_SoftwareComponentTemplate4_数据一致性与变体处理_元模型_03

894_AUTOSAR_TPS_SoftwareComponentTemplate4_数据一致性与变体处理_autosar_04

       2.4 软件组件模板中的变体处理

       软件组件模板支持在其模型元素的子集中创建变体。 支持变化的模型元素的完整列表可以在附录中找到。

       支持软件组件模板中的变体处理

       软件组件模板中的变体处理支持主要是为了在虚拟功能总线 [3] 级别描述变量系统的目的是通过改变:

       • SwComponentPrototypes 的存在

       • SwConnectors 的存在

       • SwComponentDocumentation 章节的存在

       • PortPrototypes 的存在

894_AUTOSAR_TPS_SoftwareComponentTemplate4_数据一致性与变体处理_元模型_05

       变体处理的目的

       这支持调整软件组件实例的数量和种类以及它们在特定系统变体中的互连。

894_AUTOSAR_TPS_SoftwareComponentTemplate4_数据一致性与变体处理_显式_06

       软件组件模板范围内模型元素的适用绑定时间

       前三种情况支持 PostBuild 绑定。 对于 PortPrototypes 的存在,仅支持 preCompileTime 作为最新的绑定时间。

894_AUTOSAR_TPS_SoftwareComponentTemplate4_数据一致性与变体处理_it技术_07

       SwConnector 的存在取决于 PostBuild 条件

       根据 PostBuild 条件存在的 SwConnector 会影响 API 函数调用的行为,这些调用适用于 SwConnector 附加到的 PortPrototype。 如果 SwConnector 不存在,则 RTE API 函数的行为需要考虑到这一点。 这意味着此 PortPrototype 的 RTE 实现类似于未连接的 PortPrototype 的行为。

       请在 RTE [2] 的规范中找到更多详细信息。

894_AUTOSAR_TPS_SoftwareComponentTemplate4_数据一致性与变体处理_it技术_08

       不存在的 SwConnector 的 API 函数仍然是软件组件实现的一部分

       如果 SwConnectors 不存在,则相应的 API 函数仍然是软件组件实现的一部分。无法在 PostBuild 步骤中删除 API 函数。 因此,PortPrototype 有条件存在的最新合理绑定时间是 preCompileTime。

894_AUTOSAR_TPS_SoftwareComponentTemplate4_数据一致性与变体处理_it技术_09

       行为层面的变化

       除了与 VFB 相关的模型元素的变体之外,还支持变体软件组件实现的描述。 请注意,这需要对内部行为可变性的广泛支持。

       确定的主要用例是

       • RunnableEntitys 的存在

       • RTEEvents 的存在

       • 在角色implicitInterRunnableVariable 和explicitInterRunnableVariable 中存在VariableDataPrototypes

       • 在perInstanceParameter、sharedParameter 和constantMemory 角色中存在ParameterDataPrototypes

894_AUTOSAR_TPS_SoftwareComponentTemplate4_数据一致性与变体处理_显式_10

       出于与 PortPrototype 存在相同的原因,这些可变性的最新绑定时间是 preCompileTime。

       在元模型中,所有可能表现出可变性的位置都标有原型 atpVariation 。 这允许定义可能的变化点。

       标记值用于指定附加信息,例如最新绑定时间。

       元模型中可能表现出可变性的四种类型的位置

       元模型中有四种类型的位置可能会表现出可变性:

       • 聚合

       • 关联

       • 属性值

       • 提供属性集的类

     将构造型 atpVariation 附加到某些模型元素的原因以及对其他模型元素的影响在以下章节的类表中进行了解释。 有关 AUTOSAR 变体处理概念的更多详细信息,请参见 AUTOSAR 通用结构模板 [12]。

       这部分主要看了运行时的数据一致性以及变体处理的相关内容。正好承接了之前看过的文档,看起来倒觉得还算是顺利。