Вы можете прочитать этот вопрос , где я спрашиваю о лучшей архитектуре для машинного приложения для небольшой истории, хотя это не совсем необходимо, чтобы помочь мне с этим вопросом.
Мое понимание (особенно для реализации) конечного автомата немного молодое и, возможно, ему немного не хватает, но я реализую это приложение как единое целое, и у меня есть место, где мне как бы нужно иметь вложенный FSM. В основном машина имеет несколько состояний высокого уровня (Холодный (он же только что запущен), Самонаведение, Настройка, Готовность к запуску, Запуск, создание отчетов, Сброс), но когда машина работает, она должна иметь свою собственную небольшую реализацию FSM для (Загрузка Lense, Определение края, Измерение клина, Измерение округлости и Завершение [может быть, еще немного там)).
У меня такой вопрос: должен ли я иметь возможность иметь «вложенные состояния», в которых у состояния может быть список под-состояний, и система может входить в эти под-состояния, и эти под-состояния могут возвращаться в родительские состояния? Или я должен просто поместить реализацию FSM в состояние Running и оставить их как два отдельных FSM? Или ты думаешь, что я делаю или думаю что-то глупое и должен переосмыслить это?
Мысли, предложения, критика и советы приветствуются.