Vector DavinciConfigurator系列——BswM

写在前面BswM的运行原理可以简单理解,如图

BswMConfig

BswMConfig

BswMRteModeDclGroup

在 ​BswM_swc.arxml 中会生成以下元素:
  • ModeDeclarationGroup​(名称与该容器一致)
  • ModeSwitchInterface​(使用该 ​ModeDeclarationGroup 作为其 ​ModeDeclarationGroupPrototype
  • ImplementationType​(包含一个 ​CompuMethod,其中包含 ​ModeDeclarationGroup 的所有模式)
  • DataTypeMappingSet​(将 ​ModeDeclarationGroup 映射到 ​ImplementationType
BswMRteMode
自定义一些ECU的模式

BswMArbitration

BswMLogicalExpression
该容器描述了可用于模式仲裁(mode arbitration)的逻辑表达式。
这些逻辑表达式由一组参数(arguments)和一个逻辑运算符(logical operator)构成。
每个参数可以是以下两种类型之一:
  1. 模式条件​(mode condition)
  2. 子表达式​(sub-expression),用于定义更复杂的逻辑组合。
BswMLogicalOperator
逻辑运算,如与 或 与非 异或
BswMArgumentRef
可以是mode condition 也可以是另一个LogicExpression
BswMModeCondition
可单独用于构成规则,或作为Logic Expression的一部分使用。
BswMConditionMode
引用一个ModeRequestPort
BswMConditionType
条件类型为等于或不等
BswMConditionValue
该容器包含用于标识模式类型(mode type)​及模式请求比对值(mode request comparison value)​的必要参数与引用。
BswMBswMode
设置一个请求模式
BswMModeDeclaration
该容器包含对模式声明(Mode Declaration)的引用配置。当涉及模式请求接口(Mode Request Interface)或模式指示接口(Mode Indication Interface)时,其具体模式行为必须通过模式声明进行定义。由于模式声明实际定义在软件组件模板(SW-C Template)中,本容器通过外部引用(Foreign Reference)机制关联到对应的模式声明对象。
实际上各个SWC中的模式声明再此均可引用。
BswMModeRequestPort
该容器的每个实例定义了一个模式请求接口,用于向BswM请求或指示模式。这些接口根据请求方类型不同,可被实现为端口或普通C函数:
模式请求类型分为:
来自SW-C的模式请求
来自其他BSW模块(如DCM)的模式请求
来自RTE或其他BSW模块(如总线专用状态管理器)的状态/模式指示
BswMRequestProcessing

此参数定义了模式仲裁的处理方式。

如果处理值为BSWM_DEFERRED,则处理应推迟到BswM主函数的处理时进行。

如果其值为BSWM_IMMEDIATE,则在接收到模式请求时应立即进行处理,如果有其他立即请求正在处理或者在处理主函数中的延迟规则时,则请求将被排队。

当处理值为BSWM_FORCED_IMMEDIATE时,应立即进行模式仲裁,中断主函数中正在处理的其他立即请求或延迟规则

BswMModeInitValue
在尚未获取请求的port的值时的初始值
BswMModeRequestSource
该选择容器用于指定模式请求或状态/模式指示的请求源。模式请求的发起方既可以是SW-C(软件组件),也可以是其他BSW模块(如总线专用状态管理器)。
按我理解选择,应该是选择不同SWC,这个接口会将模式的值传递过来。
BswMRule
该容器的每个实例均定义一条BswM仲裁规则。每条规则可由简单模式条件或复杂逻辑表达式构成,同时包含当规则判定为True/False时应执行的动作列表引用。
BswMNestedExecutionOnly
此参数为其相关规则定义该规则是独立规则还是从属规则。
false:独立规则,即每次适用时都要进行评估(既作为由其自身的BswMModeRequestSource驱动的独立规则进行评估,也作为被其他规则引用时进行评估)。
true:从属规则,仅在作为一个或多个ActionList中的引用时才进行评估。
BswMRuleExpressionRef
引用的LE
BswMRuleFalseActionList
Rule不符合时的动作列表
BswMRuleInitState
该参数用于定义BswM初始化后规则评估的“先前评估结果”,以确定是否触发动作列表的执行。动作列表的执行条件为:当前规则评估结果与上一次评估结果相比发生变化。
  • 设为BSWM_UNDEFINED时
初始化后的首次规则评估结果始终视为发生变化,强制触发关联动作列表的执行。
(适用于初始状态未知的场景)
  • 设为BSWM_TRUE时
仅当规则评估结果为**false**时视为发生变化(即与初始预设值true不同),触发动作列表。
  • 设为BSWM_FALSE时
仅当规则评估结果为**true**时视为发生变化(即与初始预设值false不同),触发动作列表。
BswMRuleTrueActionList
Rule符合时的动作列表
BswMModeControl
BswMActionList
一堆action绑一块的列表
BswMActionListExecution
BswM动作列表执行条件参数说明
该参数用于控制关联动作列表的执行条件,决定其是否在每次规则评估时执行,或仅在评估结果变化时执行
  • ​设为 BSWM_CONDITION 时​
每次规则评估均执行动作列表,无论评估结果是否与上一次一致。
(适用于需持续响应状态的应用场景,如周期性刷新操作)
  • ​设为 BSWM_TRIGGER 时​
仅当规则评估结果发生变化时执行动作列表​(例如从true变为false,或反之)。
(适用于避免重复触发的场景,如模式切换的单一事件响应
BswMActionListPriority
执行优先级
BswMAbortOnFail
对于有返回值的动作返回了NOK是否退出
BswMActionListItemRef
绑的具体动作
BswMReportFailToDemRef
返回NOK的时候是不是要报DTC
BswMAction
种类较多

BswMGeneral

BswM与各类SWC的接口API是否使能
NOTE:其实这个SWC不同配置生成代码可以做一些有趣的对比,后续再补。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值