广播本地事件同步平行状态
一个当地的活动是一个事件,发生在一个Stateflow吗®图,是可见的只有在图表。这种类型的事件使平行(和)国家在同一图同步,这样的行为在一个国家引发其他国家的行动。一个操作在一个图表不能在另一个广播当地事件状态图。定义一个本地事件:
将事件添加到Stateflow图表,描述在图中定义事件。
设置范围财产的事件
当地的
。
不支持本地事件在MATLAB的独立Stat金宝appeflow图表®。有关更多信息,请参见通过广播事件同步模型组件。
当地广播事件
一个导演事件广播发送一个本地事件直接从一个状态到另一个通过使用操作符发送
:
发送(event_name state_name)
event_name
是一个本地事件和state_name
是一个接收状态。当地事件直接广播接收状态和其亚态。当地的事件必须是可见的发送和接收状态。接收状态必须活跃在事件广播。
例如,这张表包含两个平行(和)状态,一个
和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
。当地事件直接广播接收状态和其亚态。当地事件是可见的接收状态,而不是发送状态。接收状态必须活跃在事件广播。
例如,这张表包含两个平行(和)状态,一个
和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图表可以检测无向本地事件广播。控制水平的诊断操作,打开配置参数对话框,,诊断>Stateflow窗格中,设置无向事件广播参数没有一个
,警告
,或错误
。默认设置是警告
。有关更多信息,请参见无向事件广播(金宝app模型)。