Autosar DEM_GetEventUdsStatus 与 DEM 事件的关联

问题描述

我是 Autosar 的新手,抱歉。如果组件被定义为具有客户端/服务器 r 端口,该端口旨在作为 DEM 事件连接到 DEM,则 Simulink 会导入 DEM_SetEventStatus 函数,从而允许程序员设置 DEM 事件。但是,SetEventStatus 函数如何连接到 DEM 事件?组件定义中引用了哪个特定事件?组件中定义的 r-port 名称似乎与 DEM 中的事件名称不同。同样,DEM_GetEventUdsstatus 的相反情况呢?生成的 simulink 函数如何连接到关联的 DEM 事件?

解决方法

软件组件中的 RPortPrototype 与报告或查询的实际事件之间的连接是在集成时通过所谓的 PortDefinedArgumentValues 创建的。这些是用于与 Dem 通信的 C-API 的一部分,但它们不是软件组件使用的 RTE-API(Dem 用语中的 ServiceInterface)的一部分。根据 Dem 的配置,作为 PortDefinedArgumentValue 传递的典型参数是诊断事件的 ID。

这使得软件组件中的代码更具可移植性,因为它不绑定到 Dem 中事件的特定 ID。您可以在文档 TPS 软件组件模板中找到有关 PortDefinedArgument 值的更多信息。 SWS 诊断事件管理器的第 8 章中记录了服务接口 API 和底层 C API 之间的区别。

,

正如您所提到的,它是一个客户端-服务器端口。 Dem_SetEventStatus 和 Dem_GetEventUdsStatus 是服务器,您的组件应该有 2 个客户端端口。您应该使用 DaVinci Developer 等工具创建端口连接。