AUTOSAR - 模式管理BswM配置

模式管理是AUTOSAR中的一个难点,也可以说是最庞杂的一块。因为模式管理贯穿整个CP Autosar流程,几乎所有模块都跟BSWM发生着联系。

初见AUTOSAR/BswM,可能你知道这些概念:

Action是实际执行的动作;

Action1+ Action2+..构成ActionLists;

Rules触发ActionLists;

LogicalExpressions是Rules的一部分;

但是,懵逼树下懵逼果,你是不是有疑惑---这一个个的条件/表达式/规则/接口/动作列表/动作,到底谁先谁后?他们分别是怎么触发的?怎么才能将他们串起来

本文从项目实践的角度去讲解,在ETAS ISOLAR软件中(Vector DAVINCI类同),怎么样按图索骥读懂”乱七八糟”的BswM配置!


BswM的对外信息交流

BswM作为一个独立的模块,其代码是在BswM_MainFunction()中周期执行的,那么它的输入/激励是什么?

答案:Port!

在ETAS的ISOLAR软件中BswM可用的Port分以下这些类.

我们把Port信号的改变理解成触发BswM动作的信息,从Port开始追朔,按图索骥,则可将BswM贯穿起来。我举个最简单的场景作为栗子:

SWC发起请求->改变ModeRequestPort信息-构成>ModeCondition-构成>LogicalExpression-构成>Rules-触发>ActionLists-包含>Actions。

是不是现在还有点懵逼?如果不懵了,到此就可以结束了,如果还懵着呢,接着看个真实的案例。

例子1 - BswMSwcModeRequest类型的请求

该Port请求来源是SWC,也就是说SWC控制着它。

第一步 - 请求/触发源

在ModeRequestPort上单击右键 选择BswM Rule Trace View, 在弹出的视图里就给出了该Port对应的各个配置项,逻辑是很清晰的。

第二步 - 条件

BswM Rule Trace View视图中点击ModeCondition,进入BswM_MC_BswM_PostRun这个配置项:

这个配置项简单来来说就是一行语句

BswM_MRP_SwcModeRequest== ECUM_STATE_POST_RUN

第三步 - 逻辑表达式

BswM Rule Trace View视图上点击LogicalExpression视图, 进入BswM_LE_PostRun这个配置项:

该配置项只包含了BswM_MC_BswM_PostRun这一个条件,所以它依然是一行语句BswM_MRP_SwcModeRequest ==ECUM_STATE_POST_RUN。

第四步 - 规则

BswM Rule Trace View视图上点击Rules视图, 进入BswM_AR_PostRun这个配置项,

可见这个规则就是,使用BswM_LE_PostRun这个表达式,当其为真的时候触发BswM_AL_BswMSwitchPrepShutdown这个动作组。简化成伪代码就是:

if(BswM_MRP_SwcModeRequest== ECUM_STATE_POST_RUN)

{

BswM_AL_BswMSwitchPrepShutdown();

}

Else

{

/* Do Nothing… */

}

第五步 - 动作列表

BswM Rule Trace View视图上点击ActionList视图,进入BswM_AL_BswMSwitchPrepShutdown配置项:

第六步 - 动作

在视图上点击Action视图,进入各个动作详细配置,一看就懂了。

做个总结

</article>
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值