在具有并行状态分解的Stateflow®图表中,子状态可以同时处于活动状态。如果检查状态活动,则可以在两个平行状态下同步子状态。
例如,此图表有两个平行的状态:Place和Tracker。Tracker中的转换会在适当的位置检查状态活动,并保持子状态同步。原地活动子状态的更改会导致跟踪器中活动子状态相应的更改。
如果R变为“ in Place”中的活动子状态,则Moved_Right变为“in Tracker”中的激活子状态。
如果“L”成为“ in Place”中的活动子状态,则Moved_Left将成为“in Tracker”的激活子状态。
in运算符
要在图表执行过程中检查某个状态在给定的时间步长内是否处于活动状态,请使用in运算符:
in(S)
in运算符采用限定的状态名S并返回布尔输出。如果状态S处于活动状态,in将返回值1。否则,中返回的值为0。
可以在状态操作和源自状态的转换中使用in运算符。
下面看下代码,代码中引入了is_place标志,来检查当前同步的活动状态。
活动状态解析
检查状态活动是一个由两部分组成的过程。首先&#