0

autosar 配置元素(模块、容器、参数或引用)中的低和高多重性是什么。在代码中是什么意思。我的意思是,如果一个参数的低重数 = 1,高重数 = 5,那么它在生成时如何反映在代码中?

4

2 回答 2

2

多重性意味着这个元素(参数或容器)可以存在多少次。

  • 如果下重数和上重数相等,则该元素的实例数必须恰好如此之多。最常见的是lower == upper == 1。

  • 如果下重数和上重数不相等,则元素可能与下重数一样少,而与上重数一样多。最常见的是 lower == 0 和 upper == 1,这意味着元素可以存在 0 次或 1 次。也就是说,它是可选的。

  • 如果上面的多重性用星号 (*) 表示,则表示无限。因此,具有 lower == 1 和 upper == * 的元素必须至少有一个实例,并且可以有任意多个。

多重性并不直接反映在生成的代码中,而是特定配置中的实例数量。

作为一个非常常见的例子,ComConfig 下的 ComSignal 的多重性是0 to *. 所以可能根本没有ComSignal容器,或者可能有任意数量的容器。生成的代码肯定会有Com_Cfg.h每个ComSignal元素的信号 ID,但生成代码的细节取决于使用的生成器。

于 2017-08-02T19:18:31.340 回答
0

根据 Autosar 软件架构,基本软件模块的一般要求。

“多重性”定义了实体(在这种情况下为配置参数)被实例化的次数。必须记录每个配置参数的多样性。描述:应记录决定条目数量的因素(例如“每帧一个”)。

文档中没有的附加信息:

1.Containers之所以这样命名,是因为容器包含配置参数。

  1. 一个容器/子容器可以引用其他容器/子容器,现在引用可以保存一个多重值,多重性然后定义了包含参数的可能实例数。

当然,一个例子总是比这些话更显赫

示例:Dcm 模块包含(当我说包含时,它实际上是指来自这里的子容器),DcmConfigSet(为一组 Dcm 配置存在一个配置),如果您需要多个 Dcm 配置,您可以添加其中的多个,一个 DcmConfigSet 包含

(DcmDsd[1],DcmDsl[1],DcmDsp[0..1],DcmGeneral[1],DcmPageBufferCfg[1],DcmProcessingConditions[0..1])

这意味着对于引用为 [1] 的子容器具有相同的下限和上限多重性,因此应该配置每个子容器的一个实例,而对于 DcmDsp,DcmProcessingConditions(您可以有 0 个实例化“无需配置”或可以基于您的功能需求 - 更高的多样性 1)。

我真的希望我可以分享一些代码,但是 autosar 代码不是开源的,所以我不能分享它。不过,我希望你明白要点。

参考链接是通用软件架构

于 2017-08-02T16:54:30.553 回答