autosar配置元素(模块,容器,参数或引用)中的上下多重性是什么。这在代码中意味着什么。我的意思是如果一个参数的multiplicity = 1,并且upper multiplicity = 5,那么在生成代码时它是如何反映的?
答案 0 :(得分:1)
多重性意味着此元素(参数或容器)可以存在多少次。
如果较低和较高的多重性相等,那么元素的实例必须非常多。最常见的是较低的==上限== 1。
如果较低和较高的多重性不相等,则可能存在与较低多重性一样少的元素,以及与较高多重性一样多的元素。最常见的是较低的== 0和较高的== 1,这意味着该元素可以存在0或1次。也就是说,它是可选的。
如果上部多重性用星号(*)表示,则表示无穷大。因此,具有较低== 1和较高== *的元素必须至少具有一个实例,并且可以任意多个。
多重性不会直接反映在生成的代码中,而是特定配置中的实例数量。
作为一个非常常见的例子,ComConfig下的ComSignal的多样性是0 to *
。因此可能根本没有ComSignal
个容器,或者可能有任何数量的容器。对于每个Com_Cfg.h
元素,生成的代码肯定会在ComSignal
中有一个信号ID,但生成的代码的细节取决于使用的生成器。
答案 1 :(得分:0)
根据Autosar软件架构,基本软件模块的一般要求。
“Multiplicity”定义实体的次数(在本例中为配置) 参数)被实例化。 必须记录每个配置参数的多样性。 描述: 应记录确定条目数量的内容(例如“每个条目一个 帧”)。
附加信息不在文档中:
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代码不是开源的,所以我不能分享它。我仍然希望你理解这个要点。