Стандарт AUTOSAR задает основанные на портах параметры для передачи параметров. Коммуникация параметров AUTOSAR основана на программном компоненте параметра (ParameterSwComponent
) и один или несколько атомарных программных компонентов, которые требуют основанного на портах доступа к данным о параметрах. The 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 port Rte
вызовы функций.
/* Model step function */ void mArPortParam_Step(void) { ... Rte_IWrite_mArPortParam_Step_Out2_Out2(Rte_Prm_myParamPort_ParamElement() * Rte_IRead_mArPortParam_Step_In2_In2()); }
Во время выполнения программное обеспечение может получить доступ к элементу данных параметра как параметр, основанный на порте.