提升状态图交互

时间:2014-08-06 12:33:51

标签: c++ boost boost-statechart

我有两个使用boost :: statechart实现的状态图(FSM_A和FSM_B)。

从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 个答案:

没有答案