主要内容

广播本地事件同步平行状态

一个当地的活动是一个事件,发生在一个Stateflow吗®图,是可见的只有在图表。这种类型的事件使平行(和)国家在同一图同步,这样的行为在一个国家引发其他国家的行动。一个操作在一个图表不能在另一个广播当地事件状态图。定义一个本地事件:

  1. 将事件添加到Stateflow图表,描述在图中定义事件

  2. 设置范围财产的事件当地的

不支持本地事件在MATLAB的独立Stat万博1manbetxeflow图表®。有关更多信息,请参见通过广播事件同步模型组件

当地广播事件

一个导演事件广播发送一个本地事件直接从一个状态到另一个通过使用操作符发送:

发送(event_name state_name)
event_name是一个本地事件和state_name是一个接收状态。当地事件直接广播接收状态和其亚态。当地的事件必须是可见的发送和接收状态。接收状态必须活跃在事件广播。

例如,这张表包含两个平行(和)状态,一个B。当地的活动E_one属于图表,可见这两个州。在国家一个,从亚态的转变A1对亚态A2使用一个导演事件广播的形式发送(E_one, B)发送本地事件E_oneB。在B事件触发从亚态的转变B1对亚态B2。因此,活性亚态一个B是同步的。更多信息的语义这个例子中,看到的直接使用发送事件广播

Stateflow图表使用指示事件广播同步两个平行的亚态(和)状态。

state_name参数可以包含一个完整的层次结构路径状态。例如,如果状态一个包含状态A1你可以发送一个事件EA1这个广播:

发送(E, A.A1)

提示

不包括完整的层次结构中的图表名称路径状态。

使用合格的事件在事件广播

播放本地事件不可见的发送状态,使用操作符发送与一个合格的事件名称:

发送(state_name.event_name)
event_name是一个本地事件,由接收状态state_name。当地事件直接广播接收状态和其亚态。当地事件是可见的接收状态,而不是发送状态。接收状态必须活跃在事件广播。

例如,这张表包含两个平行(和)状态,一个B。当地的活动E_one属于国家B,只可见状态。在国家一个,从亚态的转变A1对亚态A2使用一个导演事件广播的形式发送(B.E_one)发送本地事件E_oneB。在B事件触发从亚态的转变B1对亚态B2。因此,活性亚态一个B是同步的。更多信息的语义这个例子中,看到的导演事件广播使用合格的事件名称

Stateflow图表使用指示事件广播同步两个平行的亚态(和)状态。B.E_one广播使用合格的事件名称。

state_name参数可以包含一个完整的层次结构路径接收状态。不要使用图表名称的完整路径名。例如,假设一个包含状态A1,这A1拥有当地的事件E。你可以发送事件EA1这个广播:

发送(A.A1.E)

无向事件广播

一个无向事件广播发送一个本地事件所有州中是可见的,使用的名称事件作为行动的条件:

event_name;

或通过调用操作符发送没有指定一个接收状态:

发送(event_name)
event_name是一个本地事件,可见发送状态。

在可能的情况下,使用直接的事件广播,而不是间接的事件广播。导演事件广播期间防止不必要的递归模拟和提高生成的代码的效率。有关更多信息,请参见避免不必要的递归图

诊断检测无向本地事件广播

在仿真中,Stateflow图表可以检测无向本地事件广播。控制水平的诊断操作,打开配置参数对话框,,诊断>Stateflow窗格中,设置无向事件广播参数没有一个,警告,或错误。默认设置是警告。有关更多信息,请参见无向事件广播(万博1manbetx模型)

另请参阅

相关的话题