Стандарт AUTOSAR задает основанные на порте параметры для коммуникации параметра. Коммуникация параметра AUTOSAR использует компонент программного обеспечения параметра (ParameterSwComponent
) и один или несколько атомарных компонентов программного обеспечения, которые требуют основанного на порте доступа к данным о параметре. ParameterSwComponent
представляет память, содержащую параметры AUTOSAR, и предоставляет данные о параметре связанным атомарным компонентам программного обеспечения. Для получения информации об основанных на порте рабочих процессах параметра смотрите Параметры порта.
В Simulink® можно смоделировать сторону приемника основанной на порте коммуникации параметра AUTOSAR. Сконфигурировать атомарный компонент программного обеспечения AUTOSAR как приемник параметра:
В модели компонента AUTOSAR, в Словаре AUTOSAR, создают интерфейс параметра AUTOSAR, элементы данных параметра и порт приемника параметра.
В рабочем пространстве модели Simulink создайте параметр, отметьте его как аргумент и установите начальное значение. Можно использовать параметр Simulink, интерполяционную таблицу, и установить точки останова объекты.
Сопоставьте параметр рабочего пространства модели Simulink или интерполяционную таблицу к порту приемника параметра AUTOSAR и элементу данных интерфейса параметра. Используйте вкладку Parameters редактора Отображений Кода или mapParameter
функция.
В этом примере показано, как сконфигурировать компонент программного обеспечения AUTOSAR как приемник для коммуникации параметра.
Откройте модель, сконфигурированную для генерации кода AUTOSAR, в которой компонент программного обеспечения требует основанного на порте доступа к данным о параметре.
Откройте Словарь AUTOSAR. Чтобы добавить интерфейс параметра в модель, выберите представление Parameter Interfaces и нажмите кнопку Add. В диалоговом окне Add Interfaces задайте имя нового интерфейса и установите Number of Data Elements на 1. Нажмите Add.
Расширьте Parameter Interfaces и выберите представление DataElements. Исследуйте и измените свойства связанного элемента данных, который вы создали, включая его имя.
Расширьте AtomicComponents и расширьте компонент. Чтобы добавить порт приемника параметра в модель, перейдите к представлению ParameterReceiverPorts и нажмите кнопку Add. В диалоговом окне Add Ports задайте имя нового порта и установите Interface на имя интерфейса параметра, который вы создали. Нажмите Add.
В рабочем пространстве модели Simulink создайте объект данных для параметра. Например, используйте Model Explorer. С выбранным объектом данных, устанавливает поля Name и Value. Сконфигурировать параметр в качестве аргумента модели (то есть, уникальный для каждого экземпляра модели мультиэкземпляра), устанавливают флажок Argument.
Сошлитесь на имя объекта данных в модели. Например, введите k1
в поле параметра Gain блока Gain.
Откройте редактор Отображений Кода и выберите вкладку Parameters. В группе Model Parameter Arguments выберите объект данных параметра, который вы создали. В меню Mapped To выберите тип параметра AUTOSAR PortParameter
.
Чтобы просмотреть или изменить другой код и калибровочные атрибуты для параметра, используйте Property Inspector.
Установите Port на имя порта приемника параметра, который вы сконфигурировали в Словаре AUTOSAR.
Установите DataElement на имя элемента данных интерфейса параметра, который вы сконфигурировали в Словаре AUTOSAR.
Для получения дополнительной информации смотрите Параметры Рабочего пространства модели Карты к Параметрам Компонента AUTOSAR.
Когда вы генерируете код для модели компонента AUTOSAR:
Экспортируемые файлы ARXML содержат описания компонента приемника параметра, интерфейса параметра, элемента данных параметра и порта приемника параметра.
<PARAMETER-INTERFACE UUID="..."> <SHORT-NAME>myParamInterface</SHORT-NAME> <IS-SERVICE>false</IS-SERVICE> <PARAMETERS> <PARAMETER-DATA-PROTOTYPE UUID="..."> <SHORT-NAME>ParamElement</SHORT-NAME> ... </PARAMETER-DATA-PROTOTYPE> </PARAMETERS> </PARAMETER-INTERFACE>
Сгенерированный код C содержит параметр порта AUTOSAR Rte
вызовы функции.
/* Model step function */ void mArPortParam_Step(void) { ... Rte_IWrite_mArPortParam_Step_Out2_Out2(Rte_Prm_myParamPort_ParamElement() * Rte_IRead_mArPortParam_Step_In2_In2()); }
Во время выполнения программное обеспечение может получить доступ к элементу данных параметра как к основанному на порте параметру.