Чтобы отличаться реализация выполнимого, 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
AUTOSAR.Parameter
| Различная подсистема