我想我可以区分事件和后卫。但我遇到的事件类似于警卫:
计数器> 4 [引脚为高电平] /开启^^^^^^^^^^^ 事件我在哪里查看变量…
一个 的 事件 强> 是触发过渡的因素。在你的情况下 counter > 4 是一个改变事件,意思是“ 计数器值已更改,其值现在大于4 ”。
counter > 4
括号之间的代码是 的 守护 强> 。在你的情况下 pin is high ,意思是“ 只有在引脚为高电平时才会启用转换 ”。
pin is high
switch on 是个 的 行为 强> 在执行转换时执行。
switch on
脚注:在您的示例中,事件确实与警卫非常相似。
在C中它可能看起来像这样:
/** * this interrupt is triggered when the * counter exceeds the threshold (4) */ static void counter_isr(void) { if (pin_is_high(PIN)) switch_on(); }
的 从UML 2.5规范: 强>
的 14.2.3.8过渡 强> ... 转换可以拥有一组触发器,每个触发器指定一个事件 在发送时,其发生可能会触发遍历 过渡。如果调度,则称启用转换触发器 事件发生与其事件类型匹配。 的 14.2.4.9过渡 强> ... Transition的默认文本表示法由。定义 以下BNF表达式: [<trigger> [��,�� <trigger>]* [��[�� <guard>��]��] [��/�� <behavior-expression>]]
的 14.2.3.8过渡 强> ... 转换可以拥有一组触发器,每个触发器指定一个事件 在发送时,其发生可能会触发遍历 过渡。如果调度,则称启用转换触发器 事件发生与其事件类型匹配。
的 14.2.4.9过渡 强> ... Transition的默认文本表示法由。定义 以下BNF表达式:
[<trigger> [��,�� <trigger>]* [��[�� <guard>��]��] [��/�� <behavior-expression>]]
换一种说法: trigger [guard] / behavior
trigger [guard] / behavior