状态机操作员组
*操作员组*是触发模型动作的条件。 国家。

当需要配置更复杂的模型行为时,将使用操作员组。 有关运算符组逻辑的详细信息,请参阅 有限自动机运行的逻辑.
运算符组仅支持Julia语言中的操作,并且可以包含多个以任何顺序交替的部分。 例如:
during: du1
entry: en1
during: du2
在这种情况下,当状态被激活时,代码将被执行 条目:en1. 之后,在每个后续步骤中,在状态保持活动状态的同时,将执行运算符组的组合代码。 期间,表示为 "du1;du2". 这意味着 杜1 和 杜2 它们被组合并按顺序执行,就好像它们在相同的范围内连接在一起一样 期间.
|
可以对运算符组使用短名称 —
列出时,重要的是不要重复相同的单词。 *不正确*枚举的示例:
|
状态块中的Julia代码可以是多行的,并且一直持续到关键字出现在行的开头。 参赛作品, 期间, 出口;出口 或 上. 例如:
during:
if x > 10
y = 1
else
y = 2
end
exit: y = 3
State*without*运算符组中的代码在激活状态时和在状态保持活动状态时的每个步骤中执行。 因此,他结合了特定于部分的操作。 参赛作品 和 期间,但它不包括与停用状态相关的逻辑(正如部分所做的那样 出口;出口).
|
退出组
出口;出口 (exit)-用于确定退出状态时执行的操作。 这些操作在状态变为非活动状态时执行一次,并在启动退出此状态的转换的所有操作完成后发生。 退出状态后,操作人员 期间 不再运行,因为状态不再处于活动状态。 例如,有以下有限状态机:

在这里,状态机在第一步中激活状态"A",在第二步中,它按以下顺序执行操作:
y2 = 2
y1 = 1
y3 = 3
On组
上 -在活动状态下发生指定动作时执行。 操作员组 上 允许您使用 时间逻辑 状态内的。 例如:

这里:
-
后(5秒)确定执行将从第五秒开始(并在6,7等之后运行。 秒)。 -
y=0定义需要分配给变量的内容y意义0.
运算符组的逻辑
在状态机中,处理转换和运算符组的顺序为 参赛作品, 期间, 出口;出口,而 上 它发生如下:
用于执行运算符组的逻辑类型 |
参赛作品 |
期间 |
出口;出口 |
上 |
执行的顺序 |
|
|
|
|
激活功能 |
|
|
|
|
与交通的互动 |
|
在完成该部分之前 |
|
|
