一个当地的活动是发生在状态流中的事件吗®图表,仅在图表中可见。这种类型的事件允许同一图表中的并行(AND)状态彼此同步,以便一种状态中的操作触发另一种状态中的操作。一个图表中的操作不能向另一个图表中的状态广播本地事件。定义一个本地事件:
将事件添加到状态流图中,如在图表中定义事件。
设置范围属性的事件当地的
。
在MATLAB中的独立状态流图中不支持本地金宝app事件®。有关更多信息,请参见通过广播事件同步模型组件。
一个导演事件广播使用操作符将本地事件从一个状态直接发送到另一个状态发送
:
发送(event_name state_name)
event_name
是当地的活动吗state_name
是接收状态。本地事件被直接广播到接收状态和它的任何子状态。本地事件必须对发送状态和接收状态都可见。在事件广播期间,接收状态必须是活跃的。
例如,这个图表包含两个并行(AND)状态,一个
和B
。当地的活动E_one
属于图表,对两个州都可见。在国家一个
即从基态的转变A1
对亚态A2
使用表单的定向事件广播发送(E_one, B)
发送本地事件E_one
州B
。在B
时,事件触发从子状态的转换B1
对亚态B2
。因此,在一个
和B
是同步的。有关此示例的语义的更多信息,请参见使用发送的定向事件广播。
的state_name
参数可以包含状态的完整层次结构路径。例如,如果状态一个
包含状态A1
,则可以发送事件E
州A1
这个广播:
发送(E, A.A1)
提示
不要在状态的完整层次结构路径中包含图表名称。
若要广播发送状态不可见的本地事件,请使用操作符发送
带有限定事件名:
发送(state_name.event_name)
event_name
接收状态是否拥有本地事件state_name
。本地事件被直接广播到接收状态和它的任何子状态。本地事件对接收状态可见,但对发送状态不可见。在事件广播期间,接收状态必须是活跃的。
例如,这个图表包含两个并行(AND)状态,一个
和B
。当地的活动E_one
属于国家B
并且只在那个状态下可见。在国家一个
即从基态的转变A1
对亚态A2
使用表单的定向事件广播发送(B.E_one)
发送本地事件E_one
州B
。在B
时,事件触发从子状态的转换B1
对亚态B2
。因此,在一个
和B
是同步的。有关此示例的语义的更多信息,请参见使用限定事件名称进行定向事件广播。
的
参数可以包含到接收状态的完整层次结构路径。不要在状态的完整路径名中使用图表名。例如,假设状态state_name
一个
包含状态A1
,这A1
拥有当地的活动E
。你可以发送事件E
州A1
这个广播:
发送(A.A1.E)
一个无向事件广播通过使用事件的名称作为条件动作,将本地事件发送到它可见的所有状态:
event_name;
或者通过呼叫接线员发送
不指定接收状态:
发送(event_name)
event_name
发送状态可见的本地事件。
如果可能的话,使用有向事件广播而不是无向事件广播。有向事件广播防止了模拟过程中不必要的递归,提高了生成代码的效率。有关更多信息,请参见避免图表中不必要的递归。
在模拟过程中,状态流图可以检测无方向的本地事件广播。要控制诊断动作的级别,请打开“配置参数”对话框。在诊断>Stateflow窗格中,为无向事件广播诊断,您可以选择没有一个
,警告
,或错误
。默认设置为警告
。有关更多信息,请参见无向事件广播(金宝app模型)。