exponenta event banner

Настройка вариантов для портов AUTOSAR и Runnables

Программные компоненты AUTOSAR могут использовать VariationPoint для включения или отключения элементов AUTOSAR, таких как порты и выполняемые объекты, на основе определенных условий. В Simulink ® для настройки вариантов, которые включают или отключают порты и выполняемые файлы AUTOSAR:

  • Блоки «Приемник исполнения» и «Источник исполнения» используются для определения логики условий исполнения и распространения условий исполнения.

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

Например, вот модель компонента AUTOSAR, которая содержит два блока «Источник исполнения» и блок «Приемник исполнения». Модель можно открыть из matlabroot/help/toolbox/autosar/examples/mAutosarInlineVariant.slx.

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

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

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

При создании кода для модели:

  • Экспортированный код ARXML содержит определения для прокси-серверов и точек вариантов. В этом примере VARIATION-POINT-PROXY запись имеет короткое имя c0, на который имеется ссылка в сгенерированном коде C. 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">/mInlineVariant_pkg/mInlineVariant_dt/SystemConstants/SysConA</SYSC-REF>
              == 0 ||
              <SYSC-REF DEST="SW-SYSTEMCONST">/mInlineVariant_pkg/mInlineVariant_dt/SystemConstants/SysConA</SYSC-REF>
              == 1</CONDITION-ACCESS>
        </VARIATION-POINT-PROXY>
    </VARIATION-POINT-PROXYS>

    VARIATION-POINT появляются записи для портов AUTOSAR, доступных для выполнения и доступных для выполнения доступов к внешним данным.

    <R-PORT-PROTOTYPE UUID="...">
        <SHORT-NAME>In1</SHORT-NAME>
        <VARIATION-POINT>
            <SHORT-LABEL>In1_a3VP</SHORT-LABEL>
            <SW-SYSCOND BINDING-TIME="PRE-COMPILE-TIME">
              <SYSC-REF DEST="SW-SYSTEMCONST">/mInlineVariant_pkg/mInlineVariant_dt/SystemConstants/SysConA</SYSC-REF>
              == 0 ||
              <SYSC-REF DEST="SW-SYSTEMCONST">/mInlineVariant_pkg/mInlineVariant_dt/SystemConstants/SysConA</SYSC-REF>
              == 1</SW-SYSCOND>
        </VARIATION-POINT>
        ...
    </R-PORT-PROTOTYPE>
  • В коде C, совместимом с RTE, короткое имя c0 кодируется в именах символов препроцессора, используемых в логике условия варианта. Например:

    #if Rte_SysCon_c0
    ...
    #endif

Дополнительные сведения см. в разделах Системы исполнений (встроенный кодер) и Системы исполнений.

См. также

| |

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

Подробнее