Spring Sub State Machine не запускается

Я разрабатываю программу, содержащую конечный автомат. Теперь это стало слишком сложным, и я ждал, пока не будет добавлена ​​​​поддержка UML подмашины. Но даже несмотря на то, что я следовал инструкциям в справочном документе 1.2.2, вспомогательная машина не запускается. Машина зависает в состоянии "Тест" Состояние. Пожалуйста, обратитесь к прикрепленной ссылке на файл uml

https://drive.google.com/open?id=0B9PT7E5L1ac9dmNRSUVfZ3JfcTA

Есть ли способ запускать все субмашины при старте приложения. Запускается только родительская машина


person Sachini Wickramaratne    schedule 01.03.2017    source источник
comment
Не могли бы вы добавить скриншот, как выглядит диаграмма состояний uml?   -  person Janne Valkealahti    schedule 01.03.2017
comment
По крайней мере, вы должны удалить SmDiagram и AutomaticTopupSM, так как мы не поддерживаем несколько машин в одном xml, если только они не являются ссылками на субмашины. Не уверен, что это проблема в данном случае.   -  person Janne Valkealahti    schedule 01.03.2017
comment
В остальном я сразу не вижу ничего плохого. Одна из самых сложных конфигураций, которые я видел в папирусе, так что, возможно, вы нашли ошибку. Не могли бы вы создать тестовый пример, который я мог бы запустить, поскольку с вашим env связано так много вещей, что я не могу запустить его как есть.   -  person Janne Valkealahti    schedule 01.03.2017
comment
Sm Diagram — это ссылка на субмашину для тестового состояния. Итак, когда я загружаю машину событием TOP_ERR, состояние переходит в TestState и зависает. есть ли какие-либо дополнительные настройки, которые мне нужно сделать, чтобы автомат запустился. потому что другие пути работают хорошо, просто SmDiagram, которая является вспомогательной ссылкой на машину, не запускается и не ждет в своем начальном состоянии, как предполагается.   -  person Sachini Wickramaratne    schedule 02.03.2017
comment
Через некоторое время я пришлю вам свой код и тестовый пример.   -  person Sachini Wickramaratne    schedule 02.03.2017
comment
Никаких специальных конфигов не нужно. Он должен перейти непосредственно к своему подсостоянию test, так как это начальное состояние. Вы также должны видеть TestState в качестве родителя, чтобы быть активным. testSimpleSubmachineRef в UmlStateMachineModelFactoryTests очень похоже. Попробуйте сделать аналогичный тест, чтобы изолировать проблему.   -  person Janne Valkealahti    schedule 02.03.2017


Ответы (1)


Хм, я сейчас перечитываю ваш вопрос, и вы сказали, что он зависает в состоянии Test. Раньше я предполагал, что он просто зависает в родительском TestState, не переходя в исходное дочернее состояние test. Для Test не уверен, что вы имели в виду test или TestState.

Немного непонятно, что на самом деле происходит и в каких состояниях машина ездит. Но, глядя на эту диаграмму состояний, если она правильно переходит к TestState, а затем к test, машина находится в тупике, поскольку нет переходов, которые могли бы вывести ее оттуда.

Как минимум TestState должен иметь исходящий переход куда-то еще.

person Janne Valkealahti    schedule 02.03.2017
comment
это опечатка, должно быть зависание в TestState. И я понял ошибку, я только обновил версию statemachine, а не uml до 1.2.2. Виноват. Это работает хорошо. - person Sachini Wickramaratne; 02.03.2017
comment
Большое спасибо за то, что изучили это так глубоко. У меня есть еще несколько вопросов о тайм-аутах, я напишу об этом в другой теме. - person Sachini Wickramaratne; 02.03.2017
comment
Хорошо, у меня есть еще одно сомнение в точках выхода, и я разместил вопрос на stackoverflow.com/questions/42579538/ . Я был бы рад, если бы вы могли мне помочь - person Sachini Wickramaratne; 03.03.2017