Программные компоненты AUTOSAR могут гибко задавать размеры элемента AUTOSAR, например порта, с помощью символьной ссылки на системную константу. Системная константа определяет размер массива типа данных порта. Для моделирования элементов AUTOSAR с различными размерами массива в Simulink ®:
Создайте блоки, представляющие элементы AUTOSAR.
Чтобы представить значения размера массива, добавьте AUTOSAR.Parameter объекты данных с классом хранения SystemConstant.
Чтобы задать размер массива для элемента AUTOSAR, обратитесь к AUTOSAR.Parameter объект данных.
С помощью вариантов размеров массива можно изменять значения размеров массива в системных константах между моделированиями модели без регенерации кода для моделирования. При построении модели сгенерированный код C и ARXML содержит символы, соответствующие размерам массива вариантов.
Предположим, что создается входной порт Simulink In1 для представления порта приемника AUTOSAR с размером массива вариантов.

Моделирование системной константы AUTOSAR, определяющей размеры In1, создайте AUTOSAR.Parameter объект данных, SymDimA, с классом хранения SystemConstant. Тип данных должен быть подписанным 32-разрядным целым типом.
SymDimA = AUTOSAR.Parameter; SymDimA.CoderInfo.StorageClass = 'custom'; SymDimA.CoderInfo.CustomStorageClass = 'SystemConstant'; SymDimA.DataType = 'int32'; SymDimA.Min = 1; SymDimA.Max = 100; SymDimA.Value = 5;
В диалоговом окне для блока ввода In1, закладка Signal Attributes, поле Port dimensions, введите имя параметра, SymDimA.
![]()
Чтобы разрешить распространение символьных размеров по модели, необходимо выбрать опцию конфигурации модели Разрешить спецификацию символьных размеров (Allow symbolic dimension specification).
При создании кода для модели имя системной константы, SymDimA, отображается в коде C и ARXML для представления размера массива вариантов. Ниже приведен пример сгенерированного кода C:
/* SignalConversion generated from: '<Root>/Vector Concatenate' */
for (i = 0; i < Rte_SysCon_SymDimA; i++) {
rtb_VectorConcatenate[i] = tmpIRead[i];Ниже приведен пример экспортированных описаний ARXML:
<MAX-NUMBER-OF-ELEMENTS BINDING-TIME="PRE-COMPILE-TIME"> <SYSC-REF DEST="SW-SYSTEMCONST">/varDim_pkg/dt/SystemConstants/SymDimA</SYSC-REF> </MAX-NUMBER-OF-ELEMENTS>
Разрешить спецификацию символьных размеров | AUTOSAR.Parameter