Сконфигурируйте варианты для выполнимых реализаций AUTOSAR

Чтобы отличаться реализация выполнимого, AUTOSAR AUTOSAR, компоненты программного обеспечения могут задать различную логику условия в выполнимом. В Simulink®, чтобы смоделировать различную логику условия в выполнимом:

  • Используйте Различный блок Subsystem, чтобы представлять различные реализации подсистемы или модели и задать различную логику условия.

  • Используйте объекты данных AUTOSAR.Parameter с классом памяти SystemConstant к системным константам модели AUTOSAR. Системные константы представляют значения условия, которые определяют активную подсистему или образцовую реализацию.

Например, предположите, что вы реализуете Различный блок Subsystem. Варианты являются подсистемами VAR1 и VAR2. Блоки не соединяются, потому что возможность соединения определяется во время симуляции, на основе активного варианта.

Чтобы смоделировать постоянную систему AUTOSAR, задайте объект данных AUTOSAR.Parameter SysConA:

SysConA = AUTOSAR.Parameter;
SysConA.CoderInfo.StorageClass = 'Custom';
SysConA.CoderInfo.CustomStorageClass = 'SystemConstant';
SysConA.DataType = 'uint8';
SysConA.Value = 1;

Различное диалоговое окно блока Subsystem задает различную логику условия, которая основана на системном постоянном значении. Можно задать выражение или объект Simulink.Variant, содержащий выражение.

Когда вы генерируете код для модели:

  • В коде arxml варианты появляются как записи VARIATION-POINT-PROXY с краткими названиями c0 и c1. SysConA появляется как система постоянное представление связанного значения условия. Например:

    <VARIATION-POINT-PROXYS>
        <VARIATION-POINT-PROXY UUID="...">
            <SHORT-NAME>c0</SHORT-NAME>
            <CATEGORY>CONDITION</CATEGORY>
            <CONDITION-ACCESS BINDING-TIME="PRE-COMPILE-TIME">
              <SYSC-REF DEST="SW-SYSTEMCONST">/basic_pkg/basic_dt/SystemConstants/SysConA</SYSC-REF>
              == 1</CONDITION-ACCESS>
        </VARIATION-POINT-PROXY>
        <VARIATION-POINT-PROXY UUID="...">
            <SHORT-NAME>c1</SHORT-NAME>
            <CATEGORY>CONDITION</CATEGORY>
            <CONDITION-ACCESS BINDING-TIME="PRE-COMPILE-TIME">
              <SYSC-REF DEST="SW-SYSTEMCONST">/basic_pkg/basic_dt/SystemConstants/SysConA</SYSC-REF>
              == 0</CONDITION-ACCESS>
        </VARIATION-POINT-PROXY>
    </VARIATION-POINT-PROXYS>
  • В совместимом коде С RTE краткие названия c0 и c1 закодированы на имена символов препроцессора, используемых в различной логике условия. Например:

    #if Rte_SysCon_c0
    ...
    #elif Rte_SysCon_c1
    ...
    #endif

Смотрите также

|

Связанные примеры

Больше о