boost-msm

    0熱度

    1回答

    任何想法如何使用boost msm 1_60,我可以得到submachine的current_state(s)?考慮下面的代碼,描述外的狀態機,其允許(具有交替的例如兩個黃燈標準的紅,黃,綠一個又一個的)兩個不同的交通信號燈之間艇員選拔: class SMBigMom : public msmf::state_machine_def<SMBigMom> { public: SMBigMom(

    0熱度

    1回答

    我有一個狀態機是這樣的: class FsmDef : public boost::msm::front::state_machine_def<FsmDef> { private: Args args; using State = boost::msm::front::state<>; public: FsmDef(Args args) : args{args}

    0熱度

    1回答

    我有一個通用警戒條件,我想在某些情況下有條件地禁止轉換。下面是我想要做的一些C++/Pseudocode。 bool operator()(Event const& evt, FSM & fsm, SourceState& src, TargetState& tgt) { bool transition = (current_state != next_state); boo

    0熱度

    1回答

    我的問題更多的是一個架構問題。我有多個相同類型的狀態機。說 controller_type1_sm controller1; controller_type2_sm controller2; std::array<worker1_sm,10> workers1; std::array<worker2_sm,10> workers2; 現在,當一個控制器發送消息,我應該使用調度名稱或ID

    0熱度

    1回答

    我正在創建一個Boost MSM狀態機,其中一些狀態具有其自己的子狀態機。我根據Boost示例創建了一個正交區域,它允許從任何地方發佈Error事件來終止狀態機。 這很好,直到我試圖從我的一個子狀態機發布錯誤事件。什麼都沒有發生,似乎我需要使用僞退出狀態來將錯誤事件轉發給父狀態機。這最初起作用,但是當我添加更多僞退出狀態來處理來自每個子狀態機的錯誤時,一段時間後發生編譯器錯誤。不能固定它,可以有1

    2熱度

    1回答

    我正在開發一個使用boost MSM框架的狀態機。他們的教程states,boost :: any可以用作「Kleene事件」,如果當前狀態是源狀態,則允許在任何事件被觸發時轉換。然而,這對我不起作用。我只是收到「no_transition」。 這是我的示例代碼: #include <iostream> #include <boost/msm/back/state_machine.hpp>

    0熱度

    1回答

    我是新來的C++,boost和使用狀態機。 有誰知道多態boost :: msm狀態機的例子嗎? 我試圖在所提供的基本示例的過渡動作更改爲虛擬的,但所述接頭說: 未定義參考`虛表爲DerivedClass' 編輯: 錯誤是一個基本的和乏味包含/定義錯誤,通過分析代碼解決。 在仔細閱讀了基本示例之後,我意識到爲了使它具有多態性,我應該在子類中定義後端並從前端繼承。 波紋管的源文件定義多形態基本MSM

    2熱度

    1回答

    在boost :: msm教程中,有一個例子顯示了我們如何檢查當前狀態。 // Transition table for player struct transition_table : mpl::vector< // Start Event Next Action Guard // +---------+-------------+-------

    2熱度

    1回答

    我是新來提升元狀態庫。我正在構建一個應用程序,我必須使用msm。 我的應用程序有兩個線程,它們使用相同的msm對象作爲共享資源。現在,如果兩個線程在同一個msm對象上調用process_event,那麼msm會是線程安全的嗎? 任何想法是值得歡迎的。

    3熱度

    2回答

    我想用boost :: msm庫在我的代碼中創建一個狀態機。有沒有人知道一種方式來獲得一個國家的字符串名稱(不是int id)?我正在試圖獲得這個日誌/調試目的。例如,在no_transition功能,我得到的狀態ID,但我試圖讓一個名字,以便更容易閱讀: template <class Event ,class Fsm> void no_transition(Event const&