一、BswM简介
BswM即BSW Mode Manager,在AUTOSAR中,模式(Modes)有至关重要的作用。比如,模式可以用于软件组件和底软模块之间的状态同步,通过模式的开关可以控制执行实体(ExecutableEntitys)能否运行,以及通过模式切换可以触发执行特定的ExecutableEntitys等。
作为模式管理器,BswM提供了一套框架机制,具体的功能逻辑主要依赖于用户的配置实现,BswM主要分为模式仲裁(Mode Arbitration)和模式控制(Mode Control)两部分,前者用来判断处于哪种模式,后者则用来执行相应的动作。
二、Mode Arbitration
模式仲裁基于规则驱动,根据用户设置的条件进行比较判断,再根据结果的真假执行动作,包括Rules、LogicalExpressions、ModeConditions以及ModeRequestPorts(EventRequestPorts在AUTOSAR 4.4版本引入)。
-
Rules
规则的构成要素包括LogicalExpressions、TrueActionList、FalseActionList和RuleInitState。LogicalExpressions用于条件判断,根据判断结果决定执行TrueActionList还是FalseActionList。
RuleInitState用来定义规则的初始状态,可取TRUE、FALSE或UNDEFINED,该属性和ActionList的ActionListExecution属性一起决定了模块初始化后规则的首次执行行为。
RuleInitState |
ActionListExecution |
Rule evaluated to true |
Rule evaluated to false |