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

Чтобы смоделировать систему AUTOSAR, постоянную, который задает размерности In1, создайте объект данных AUTOSAR.Parameter, SymDimA, с классом памяти SystemConstant.
SymDimA = AUTOSAR.Parameter; SymDimA.CoderInfo.StorageClass = 'custom'; SymDimA.CoderInfo.CustomStorageClass = 'SystemConstant'; SymDimA.DataType = 'uint8'; SymDimA.Value = 5;
В диалоговом окне для блока In1 импорта введите название параметра, SymDimA, в поле Port dimensions.
![]()
Когда вы генерируете код для модели, имя постоянной системы, SymDimA, кажется, в C и коде arxml представляет различный размер массивов.
/* SignalConversion: '<Root>/ConcatBufferAtVector ConcatenateIn1' */
for (i = 0; i < Rte_SysCon_SymDimA; i++) {
rtb_VectorConcatenate[i] = tmp[i];arxml<MAX-NUMBER-OF-ELEMENTS BINDING-TIME="PRE-COMPILE-TIME">
<SYSC-REF DEST="SW-SYSTEMCONST">/pkg/dt/SC/SymDimA</SYSC-REF>
</MAX-NUMBER-OF-ELEMENTS>