А_МУР писал(а):
А как все четыре схемы со существуют?
Они соединены в виде упорядоченного графа.
А_МУР писал(а):
Это получается на один лифт 4 контроллера надо?
4 машины внутри одного контроллера. Машин может быть сколько угодно.
Недавно решал задачу по непрерывному перерасчёту стоимости портфелей ценных бумаг на основании real-time данных с финансовых рынков. Там в одной программе крутится несколько тысяч автоматов.
А_МУР писал(а):
В какой последовательности их стоит выполнять?
Автоматы могут работать в нескольких режимах.
Данный пример работает в браузере, а там реактивная модель выполнения. В реактивной модели автоматы не нужно "выполнять", им нужно только кидать сообщения. Например "нажата кнопка 2 этаж" или "двери закрылись".
Кроме этого бывает режим опроса (polling). В режиме опроса есть цикл, в котором каждому автомату по очереди дают команду "выполни следующий шаг". Сообщения в режиме опроса автомату посылают путём установки флагов, которые автомат проверяет при выполнении шага. Иногда в цикле обходят не все автоматы в системе, а только "грязные". Иногда не флаги устанавливают, а кладут сообщения в очередь, принадлежащую этому автомату.
А_МУР писал(а):
Где находится сам алгоритм Машины Состояния?
Алгоритм Машины состояния генерируется автоматически. Пример: строка 741 здесь:
https://github.com/stepan-mitkin/lift-d ... ftLogic.jsА_МУР писал(а):
Пока идет переходной процесс допустим MOVING c выбором MOVE, другие ветки не в одном алгоритме выполнятся не могут?
Могут. Каждый автомат представляет собой параллельный процесс.
Получив сообщение (или команду "следующий шаг"), автомат быстро выполняет некоторый код и сразу отдаёт управление обратно.
Потом следующий автомат выполняет свой код.