переход состояния с различным состоянием охраны
В модели состояния как это моделируется ?
Состояние A в состояние B на триггере X и условии C1, когда текущее состояние A
Состояние A в состояние C на триггере X и условие C2, когда текущее состояние A
Как это обычно делается ? У меня есть много охранных условий, которые мне, возможно, придется реализовать.
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.