【发布时间】:2017-08-02 08:55:13
【问题描述】:
autosar 配置元素(模块、容器、参数或引用)中的低和高多重性是什么。在代码中是什么意思。我的意思是如果一个参数的下重数=1,上重数=5,生成时如何反映在代码中?
【问题讨论】:
autosar 配置元素(模块、容器、参数或引用)中的低和高多重性是什么。在代码中是什么意思。我的意思是如果一个参数的下重数=1,上重数=5,生成时如何反映在代码中?
【问题讨论】:
多重性是指这个元素(参数或容器)可以存在多少次。
如果下重数和上重数相等,则该元素的实例数必须恰好如此之多。最常见的是 lower == upper == 1。
如果下重数和上重数不相等,则元素可能与下重数一样少,而与上重数一样多。最常见的是 lower == 0 和 upper == 1,这意味着元素可以存在 0 次或 1 次。也就是说,它是可选的。
如果上面的多重性用星号 (*) 表示,则表示无限。因此,具有 lower == 1 和 upper == * 的元素必须至少有一个实例,并且可以有任意多个。
多重性并不直接反映在生成的代码中,而是特定配置中的实例数量。
作为一个很常见的例子,ComConfig 下的 ComSignal 的多重性是0 to *。所以可能根本没有ComSignal 容器,或者可能有任意数量的容器。对于每个ComSignal 元素,生成的代码肯定会在Com_Cfg.h 中有一个信号ID,但生成代码的详细信息取决于所使用的生成器。
【讨论】:
根据 Autosar 软件架构,基本软件模块的一般要求。
“多重性”定义了一个实体的次数(在这种情况下是配置 参数)被实例化。 必须记录每个配置参数的多样性。 描述: 应记录决定条目数量的因素(例如“一个 框架”)。
文档中没有的其他信息:
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 代码不是开源的,所以我不能分享它。不过我还是希望你明白要点。
【讨论】: