Повысить взаимодействие диаграммы состояний

У меня есть две диаграммы состояний (FSM_A и FSM_B), реализованные с использованием boost :: statechart.

Безопасно ли обрабатывать событие из FSM_A, чтобы инициировать переход в FSM_B?

Должен ли я использовать два async_state_machine? Или, может быть, общее внешнее состояние?

Вот пример:

struct FSM_B;

struct FSM_A : sc::state_machine<FSM_A, InitialStateA>
{
FSM_B* pB;
};

struct FSM_B : sc::state_machine<FSM_B, InitialStateB>
{};

struct InitialStateB : sc::simple_state<InitialStateB, FSM_B>
{
typedef sc::transition< EV_CrossEvent, InitialStateB > rections;
};

struct InitialStateA : sc::simple_state<InitialStateA, FSM_A>
{
InitialStateA()
{
context<FSM_A>().pB->process_event( EV_CrossEvent() );
}
};

int main()
{
FSM_B b;
FSM_A a;
a.pB = &b;

a.initiate();
b.initiate();

return 0;
}

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]