Повышение МСМ - понятнее
Вопрос Newbi pleasee голые со мной, как я с этим борюсь.
Я хочу использовать boost msm state machine, но мне трудно представить, как это работает. Допустим, у нас есть только 2 состояния (s1, s2), и чтобы перейти из s1 в s2, вам нужно событие e1, которое будет запущено, а чтобы вернуться обратно, вам нужно еще одно e2. E1 и e2 могут быть выпущены только изнутри s1 и s2 соответственно.
Теперь в main () я начинаю с запуска statemachine (start ()), затем у меня есть цикл while, который будет проходить каждые 1 минуту вернемся к государственной машине, но придется забрать оттуда, откуда она ушла.то есть
main()
{
MSM.start(); //start state machine
while (a_condition)
{
ProcessInputsfromIO();
Go_backtoStatemachine(); //how can i do this?
delay(1min)
}
MSM.stop();
}
Таким образом, в основном, когда состояние завершает выполнение, statemachine выйдет, тогда у меня будет задержка в 1 минуту, тогда цикл while должен будет вернуть меня в состояние, в котором я был до выхода, или я думаю, что именно так мы должны реализовать state machine.
Является ли то, о чем я прошу, необычным? Если да, то как люди реализуют неблокирующую государственную машину? если нет, то как я могу реализовать Go_backtoStatemachine()?