转换动作。在图77中并没有标注这个事件,但这个状态转换的触发事件就是自动门接 收到该消息的事件 2.信号事件 信号事件( signal event)表示发送对象发给接收对象的信号消息的接收消息事件,并 由该事件触发接收对象的状态的转换。与调用事件一样,信号事件也是在接收对象一方 发生的接收消息事件,状态机只关注因信号事件而引起接收对象的状态转换,以及应执 行的操作,并不关心发送对象 接收对象在接收到信号调用后,需要执行对象的某一个操作,并引发接收对象的状 态转换。但接收对象在接收到信号事件后,对信号做何处理,则由接收对象当时的场景 和语义所规定,并不一定执行接收对象的某个操作 3.改变事件 改变事件( change event表示当布尔表达式的值改变为真时所激发的事件。系统将 直检测改变事件中的布尔表达式的值,只要它的值改变为真,该事件就被激发。改变事 件一般用关键字when开头的布尔表达式表示,当表达式的值由假变为真时,事件将发 生。例如:when( systemtime=12:00),表示当系统时钟到达12点时,激发该事件。 对改变事件中的布尔表达式的值的判断与状态转换中的监护条件不同。在事件发生 后,判断监护条件,如果监护条件为真,则执行动作,并转换状态。如果监护条件为假, 则不执行转换动作。其前提条件是引发状态转换的事件发生。而系统将一直对改变事件 中的布尔表达式的值进行不间断检测,如果发现其值为真,则引发事件。 when (systime=12: 00)/setTest 空闲 after10sec)/power off 运行 图78改变事件和时间事件示例 4.时间事件 时间事件( time event是经过一定的时间或者到达某个绝对时间时发生的事件。用关 键字afer及时间值表示相对时间,例如,“ after(10sec)”,表示从现在算起,10秒之后 将发生该事件。用关键字at及时间值表示绝对时间,例如,“at2012-10-1”表示到201 2年10月1日引发该事件。图78是一个含改变事件和事件事件的例子。10秒之后关机7 转换动作。在图 7.7 中并没有标注这个事件,但这个状态转换的触发事件就是自动门接 收到该消息的事件。 2. 信号事件 信号事件(signal event)表示发送对象发给接收对象的信号消息的接收消息事件,并 由该事件触发接收对象的状态的转换。与调用事件一样,信号事件也是在接收对象一方 发生的接收消息事件,状态机只关注因信号事件而引起接收对象的状态转换,以及应执 行的操作,并不关心发送对象。 接收对象在接收到信号调用后,需要执行对象的某一个操作,并引发接收对象的状 态转换。但接收对象在接收到信号事件后,对信号做何处理,则由接收对象当时的场景 和语义所规定,并不一定执行接收对象的某个操作。 3. 改变事件 改变事件(change event)表示当布尔表达式的值改变为真时所激发的事件。系统将一 直检测改变事件中的布尔表达式的值,只要它的值改变为真,该事件就被激发。改变事 件一般用关键字 when 开头的布尔表达式表示,当表达式的值由假变为真时,事件将发 生。例如:when (systemtime=12:00),表示当系统时钟到达 12 点时,激发该事件。 对改变事件中的布尔表达式的值的判断与状态转换中的监护条件不同。在事件发生 后,判断监护条件,如果监护条件为真,则执行动作,并转换状态。如果监护条件为假, 则不执行转换动作。其前提条件是引发状态转换的事件发生。而系统将一直对改变事件 中的布尔表达式的值进行不间断检测,如果发现其值为真,则引发事件。 4. 时间事件 时间事件(time event)是经过一定的时间或者到达某个绝对时间时发生的事件。用关 键字 after 及时间值表示相对时间,例如,“after(10sec.)”,表示从现在算起,10 秒之后 将发生该事件。用关键字 at 及时间值表示绝对时间,例如,“at 2012-10-1”表示到 201 2 年 10 月 1 日引发该事件。图 7.8 是一个含改变事件和事件事件的例子。10 秒之后关机, 图 7.8 改变事件和时间事件示例