Я новичок в Autosar, заранее извините. Если для компонента определен r-порт клиент / сервер, который предназначен для подключения к DEM как Событие DEM, то Simulink импортирует функцию DEM_SetEventStatus и, таким образом, позволяет программисту установить событие DEM. Но как функция SetEventStatus связана с событием DEM? На какое конкретное событие ссылается определение компонента? Похоже, что имя r-порта, определенное в компоненте, отличается от имени события, найденного в DEM. Точно так же как насчет противоположного случая DEM_GetEventUdsStatus. Как результирующая функция simulink связана со связанным событием DEM?
Связь Autosar DEM_GetEventUdsStatus с событием DEM
Ответы (2)
Связь между RPortPrototype в программном компоненте и фактическим событием, о котором сообщается или запрашивается, создается во время интеграции с помощью так называемых PortDefinedArgumentValues. Они являются частью C-API, который используется для связи с Dem, но они не являются частью RTE-API (ServiceInterface на языке Dem), который используется программным компонентом. Типичный аргумент, передаваемый как PortDefinedArgumentValue, - это идентификатор диагностического события в соответствии с конфигурацией Dem.
Это делает код в программном компоненте более переносимым, поскольку он не привязан к конкретному идентификатору события в Dem. Дополнительную информацию о значениях PortDefinedArgument можно найти в документе «Шаблон программного компонента TPS». А разница между API интерфейса службы и базовым API C задокументирована в главе 8 диспетчера событий диагностики SWS.
Как вы упомянули, это порт клиент-сервер. Dem_SetEventStatus и Dem_GetEventUdsStatus - это серверы, и ваш компонент должен иметь 2 клиентских порта. Вы должны создать соединения порта с помощью инструмента, такого как DaVinci Developer.