переход состояния с различным состоянием охраны


В модели состояния как это моделируется ?

Состояние A в состояние B на триггере X и условии C1, когда текущее состояние A

Состояние A в состояние C на триггере X и условие C2, когда текущее состояние A

Как это обычно делается ? У меня есть много охранных условий, которые мне, возможно, придется реализовать.

1 2

1 ответ:

Это довольно стандартно смотрите, например, этот пример.

[отредактировано на основе это не домашнее задание!]

Если я правильно понимаю:

  • у вас есть одно событие (X), которое может вызвать один из двух возможных переходов
  • выбор, какой переход к огню производится в соответствии с тем, какое условие выполняется (C1 или C2)

Если это так, то это стандартный случай для использования условий охраны. Синтаксис будет следующим:

  • X[C1] в качестве метка на переходе A - >B, и
  • X[C2] о переходе A- > C.

C1 & C2 должны вычисляться в логические значения, поэтому было бы неплохо заменить var==2 в соответствии с вашим комментарием. то есть метки станут X[var==2] и X[var==3].

Чтобы он был семантически корректен, C1 и C2 должны быть взаимоисключающими в состоянии A-в противном случае вы имеете недетерминизм.

Hth.