
Как показано в коде ниже, я хочу вызвать event2 из "someAction", который отлично работает при вызове someAction. event4 из конечного автомата верхнего уровня «MainMachine». Однако при вызове события 3 изнутри субмашины срабатывает только нет ответа на переход субмашины (или утверждение времени выполнения завершается сбоем, если на субмашине нет ответа на переход). Я ожидал, что событие event2 будет ссылаться на таблицу переходов конечного автомата верхнего уровня, однако это, похоже, не работает, потому что someAction получает ссылку только на SubMachine FSM.
Каким будет лучший способ инициировать события в ортогональной области конечного автомата верхнего уровня внутри действий, вызываемых из Submachine?
struct someAction
{
template
void operator()(EVT const& evt,
FSM& fsm,
SourceState& src,
TargetState& tgt) const
{
fsm.process_event(event2());
std::cout
Подробнее здесь: https://stackoverflow.com/questions/675 ... submachine
Мобильная версия