配置对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服务接口的客户端调用的示例。
打开一个为生成AUTOSAR代码而配置的模型。使用Library Browser或在模型窗口中键入块名,将Dem块添加到模型中。本例添加了这些块DiagnosticInfoCaller而且DiagnosticMonitorCaller到示例模型的可写副本
autosar_swc
.打开每个块,特别检查参数操作.如果选择其他操作,单击应用,该软件更新块的输入和输出,以匹配所选操作的参数。
此示例更改操作为DiagnosticInfoCaller块从
GetEventStatus
来GetEventFailed
.(关于使用的例子GetEventFailed
在油门位置监控器的实现,见示例模拟AUTOSAR基本软件服务和运行时环境.)对于民主党的一些行动,比如
GetDTCOfEvent
而且SetEventStatus
,块参数对话框显示一个数据类型参数。参数为表示Dem格式类型或事件状态的函数输入指定枚举数据类型。提供了默认的数据类型,例如Dem_DTCFormatType
或Dem_EventStatusType
.有关格式类型或事件状态值的更多信息,请参阅AUTOSAR标准诊断事件管理器规范.打开代码映射编辑器。更新Simulink®将模型的AUTOSAR映射更改为Simulink函数调用者,单击更新按钮.该软件创建AUTOSAR客户端-服务接口、操作和端口,并将每个Simulink函数调用者映射到一个AUTOSAR客户端端口和操作。
例如,对于DiagnosticMonitorCaller块,其中
SetEventStatus
选中操作:软件创建C-S接口
DiagnosticMonitor
,及以下DiagnosticMonitor
,其支持的操作。对于每个操作,参数都提供只读属性。下面是关于DiagnosticMonitor
操作SetEventStatus
显示在AUTOSAR字典中。软件使用默认名称创建客户端端口
DiagnosticMonitor
.与c - s接口、操作和参数名称不同,客户端端口名称可以自定义。客户端端口映射到DiagnosticMonitor
接口。代码映射编辑器,函数调用者选项卡,将
DiagnosticMonitor
函数调用方阻塞到AUTOSAR客户端端口DiagnosticMonitor
和AUTOSAR操作SetEventStatus
.
可选地,构建组件模型并检查生成的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 target-required-operation-ref > operation-iref > < timeout > 1.0e-06 timeout > sync - server - call - point > server-call-points > 要模拟组件模型,请创建一个包含组合、系统或测试集束模型。在该包含模型中,插入Dem的参考实现
GetEventFailed
而且GetEventStatus
服务操作。AUTOSAR基本软件块库提供了一个诊断服务组件块,提供Dem服务操作的参考实现。您可以手动地将块插入到包含的组合、系统或集合模型中,或者通过创建仿真软件测试™利用模型。
有关更多信息,请参见为仿真配置AUTOSAR基本软件服务实现而且模拟AUTOSAR基本软件服务和运行时环境.
另请参阅
DiagnosticInfoCaller|DiagnosticMonitorCaller|DiagnosticOperationCycleCaller|DiagnosticEventAvailableCaller|诊断服务组件