Я пытаюсь реализовать поток управления с помощью Apache scxml. Мои переходы в состоянии соответствуютПереход состояния из состояния в scxml
<scxml initial="State1">
<state id = "State1"><transition event="event1" target="State2"></state>
<state id = "State2">
<transition event="event2" target="State3">
<transition event="event3" target="State4">
</state>
<state id = "State3">
<transition event="event4" target="State2">
</state>
<state id = "State4">
<transition event="event5" target="State2">
</state>
<state id = "State5"><transition target="State1">
</scxml>
как конечный автомат работает нормально и работает без проблем. Но у меня есть несколько требований, по которым я столкнулся проблемы в
Я должен проверить внешнее событие в каждом государстве, и если это событие является истинным, я должен идти до последнего состояния цикла. что было бы лучшим способом добиться этого?
Вполне возможно, что, когда я нахожусь в
state2
я могу пойти вstate4
илиstate5
черезstate3
. Возможно ли, что я смогу запустить событие или изменить состояние сstate3
после проверки условий, чтобы перейти наstate4
илиstate5
?
Оба вышеуказанных вопроса, похоже, имеют одно и то же решение, но я не могу найти оптимальный способ их реализации.
Обратите внимание, что ваш SCXML Недопустимо: вы используете неправильную заглавную строку для вашего атрибута 'initial', и у вас есть' State52' и 'State54' в качестве целей, которых не существует. Я ценю, что вы разбираете свой пример, но, пожалуйста, постарайтесь убедиться, что он действителен, чтобы мы могли отличать проблемы, которые могут возникнуть из-за неправильной разметки по сравнению с концептуальными проблемами. – Phrogz
Спасибо, что указали, что из Phrogz отредактировал и исправил ошибку – Agarwal