Компоненты программного обеспечения 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>