Что такое нижняя и верхняя кратность в элементе конфигурации автосара?

Что такое нижняя и верхняя кратность в элементе конфигурации автосара (модуль, контейнер, параметр или ссылка). Что это значит в коде. Я имею в виду, что если параметр имеет нижнюю кратность = 1 и верхнюю кратность = 5, как это отражается в коде при генерации?


person Girish Onte    schedule 02.08.2017    source источник


Ответы (2)


Кратность означает, сколько раз может существовать этот элемент (параметр или контейнер).

  • Если нижняя и верхняя кратности равны, должно быть ровно столько экземпляров элемента. Чаще всего используется с нижним == верхним == 1.

  • Если нижняя и верхняя кратности не равны, то элементов может быть как нижняя кратность, так и верхняя. Наиболее часто встречается с нижним == 0 и верхним == 1, что означает, что элемент может существовать 0 или 1 раз. То есть это необязательно.

  • Если верхняя кратность обозначена звездочкой (*), это означает бесконечность. Таким образом, элемент с нижним == 1 и верхним == * должен иметь хотя бы один экземпляр, а может иметь сколько угодно.

Кратность не отражается напрямую в сгенерированном коде, но количество экземпляров в конкретной конфигурации отражается.

Как очень распространенный пример, кратность ComSignal в ComConfig равна 0 to *. Таким образом, контейнеров может не быть ComSignal вообще, или их может быть любое количество. Сгенерированный код обязательно будет иметь идентификатор сигнала в Com_Cfg.h для каждого ComSignal элемента, но детали сгенерированного кода зависят от используемого генератора.

person DUman    schedule 02.08.2017

В соответствии с архитектурой программного обеспечения Autosar, Общие требования к базовым программным модулям.

«Кратность» определяет, сколько раз создается объект (в данном случае параметр конфигурации). Необходимо задокументировать кратность каждого параметра конфигурации. Описание: должно быть задокументировано, что определяет количество записей (например, «по одной на кадр»).

Дополнительная информация, отсутствующая в документации:

1. Контейнеры названы так, потому что контейнеры содержат параметры конфигурации.

  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).

Я очень надеюсь, что смогу поделиться с вами кодом, но код автозапуска не является открытым исходным кодом, поэтому я не могу им поделиться. Тем не менее я надеюсь, что вы понимаете суть.

Ссылка для справки: Общая архитектура программного обеспечения

person Sivaramakrishna Shriraam    schedule 02.08.2017