переход состояния с другим состоянием охраны - PullRequest
2 голосов
/ 20 апреля 2011

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

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

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

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

1 Ответ

0 голосов
/ 20 апреля 2011

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

[Отредактировано на основе, это не домашняя работа!]

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

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

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

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

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

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

чч.

...