在状态机中提升状态图存储/检索数据不起作用

时间:2017-12-04 07:44:44

标签: c++ boost state-machine statechart

我想在州之间分享一些东西,例如模式变量。我把它保存到状态机。但是,我甚至无法获得它的价值。

struct InitState;
struct MyFsm : boost::statechart::state_machine<MyFsm, InitState> {
  uint8_t mode;

  MyFsm() : mode(0) {
    std::cout << "mode = " << mode << std::endl;
  }
};

以上ctor从不打印该值。

struct InitState : boost::statechart::simple_state<InitState, MyFsm > {
  typedef boost::mpl::list<
    boost::statechart::custom_reaction<Event1>
  > reactions;

  boost::statechart::result react(const Event1& e) {
     context< MyFsm >().mode = 2; // This does NOT work!
  }
};

上述任务也失败了。 有谁知道如何使它工作?

也许在州之间分享变量的最佳方式是什么?

或者,如果使用boost :: statechart太糟糕了? Boost的doc在解释其API方面毫无用处。

0 个答案:

没有答案