主要内容

配置对AUTOSAR诊断事件管理服务的调用

对于AUTOSAR经典平台,AUTOSAR标准将重要服务定义为在AUTOSAR运行时环境(RTE)中运行的基础软件(BSW)的一部分。例如,诊断事件管理器(Dem)、功能抑制管理器(FiM)和NVRAM管理器(NvM)提供的服务。在AUTOSAR RTE中,AUTOSAR软件组件通常使用客户机-服务器或发送方-接收方通信访问BSW服务。

为支持AUTOSAR组件和服务的系统级建模,AUTOSAR Blockset提供了一个AUTOSAR基本软件块库。该库包含预配置的块,用于建模对AUTOSAR BSW服务的组件调用和BSW服务的参考实现。有关使用这些块对AUTOSAR BSW服务接口的客户端调用建模的信息,请参见模型AUTOSAR基本软件服务调用

有关模拟AUTOSAR BSW服务的实时脚本示例,请参见示例模拟AUTOSAR基本软件服务和运行时环境

下面是在AUTOSAR软件组件中配置对Dem服务接口的客户端调用的示例。

  1. 打开一个为生成AUTOSAR代码而配置的模型。使用Library Browser或在模型窗口中键入块名,将Dem块添加到模型中。本例添加了这些块DiagnosticInfoCaller而且DiagnosticMonitorCaller到示例模型的可写副本autosar_swc

  2. 打开每个块,特别检查参数操作.如果选择其他操作,单击应用,该软件更新块的输入和输出,以匹配所选操作的参数。

    此示例更改操作DiagnosticInfoCaller块从GetEventStatusGetEventFailed.(关于使用的例子GetEventFailed在油门位置监控器的实现,见示例模拟AUTOSAR基本软件服务和运行时环境.)

    对于民主党的一些行动,比如GetDTCOfEvent而且SetEventStatus,块参数对话框显示一个数据类型参数。参数为表示Dem格式类型或事件状态的函数输入指定枚举数据类型。提供了默认的数据类型,例如Dem_DTCFormatTypeDem_EventStatusType.有关格式类型或事件状态值的更多信息,请参阅AUTOSAR标准诊断事件管理器规范

  3. 打开代码映射编辑器。更新Simulink®将模型的AUTOSAR映射更改为Simulink函数调用者,单击更新按钮.该软件创建AUTOSAR客户端-服务接口、操作和端口,并将每个Simulink函数调用者映射到一个AUTOSAR客户端端口和操作。

    例如,对于DiagnosticMonitorCaller块,其中SetEventStatus选中操作:

    • 软件创建C-S接口DiagnosticMonitor,及以下DiagnosticMonitor,其支持的操作。对于每个操作,参数都提供只读属性。下面是关于DiagnosticMonitor操作SetEventStatus显示在AUTOSAR字典中。

    • 软件使用默认名称创建客户端端口DiagnosticMonitor.与c - s接口、操作和参数名称不同,客户端端口名称可以自定义。客户端端口映射到DiagnosticMonitor接口。

    • 代码映射编辑器,函数调用者选项卡,将DiagnosticMonitor函数调用方阻塞到AUTOSAR客户端端口DiagnosticMonitor和AUTOSAR操作SetEventStatus

  4. 可选地,构建组件模型并检查生成的C和ARXML代码。C代码包括对BSW服务的客户端调用,例如:

    /* FunctionCaller: '/DiagnosticInfoCaller' */ Rte_Call_DiagnosticInfo_GetEventFailed(&rtb_DiagnosticInfoCaller_o1);/* FunctionCaller: '/DiagnosticMonitorCaller' */ Rte_Call_DiagnosticMonitor_SetEventStatus(DEM_EVENT_STATUS_PASSED);

    生成的RTE包括定义服务器操作调用点的文件,如Rte_Call_DiagnosticMonitor_SetEventStatus参数数据类型,如枚举类型Dem_EventStatusType

    ARXML代码将组件调用的BSW服务操作定义为服务器调用点,例如:

    < SERVER-CALL-POINTS >…< SYNCHRONOUS-SERVER-CALL-POINT UUID = "……"> SC_DiagnosticMo_334e61e63627b44b   /Company/Powertrain/Components/ASWC/DiagnosticMonitor   .AUTOSAR /服务/民主党/ DiagnosticMonitor / SetEventStatus  < timeout > 1.0e-06   
  5. 要模拟组件模型,请创建一个包含组合、系统或测试集束模型。在该包含模型中,插入Dem的参考实现GetEventFailed而且GetEventStatus服务操作。

    AUTOSAR基本软件块库提供了一个诊断服务组件块,提供Dem服务操作的参考实现。您可以手动地将块插入到包含的组合、系统或集合模型中,或者通过创建仿真软件测试™利用模型。

    有关更多信息,请参见为仿真配置AUTOSAR基本软件服务实现而且模拟AUTOSAR基本软件服务和运行时环境

另请参阅

||||

相关的例子

更多关于

Baidu
map