boost-msm

    1熱度

    2回答

    假設我有2個狀態,一個活動狀態和一個空閒狀態。如果我收到一些活動狀態的事件,我想推遲它們並在我回到空閒狀態時執行它們。 但是當我回到空閒狀態時有沒有辦法選擇哪個以前的延遲事件來處理?還是有辦法優先考慮他們,甚至忽略他們中的少數? 謝謝,

    0熱度

    1回答

    如果我添加屬性的事件,我知道,那麼我就可以使用事件名稱,如函數... BOOST_MSM_EUML_EVENT_WITH_ATTRIBUTES(*someEvent*, *someAttributeList*) someStateMachine.process_event( someEvent ( valueOfSomeAttribute1, // sets the attr

    0熱度

    1回答

    我的轉換表和事件有問題。 讓我解釋說明問題的假設計: 我有一個包含2個狀態(s0和s1)和1個子狀態機(subm1)的狀態機(myStateMachine)。 substatemachine subm1包含初始狀態'sub0'以及s1(與myStateMachine中的狀態相同)。 這是主要的轉換表: S0-> S1上事件 'ES1' S0-> S2上事件 'ES2' S0-> subm1上事件

    5熱度

    1回答

    我正在使用新的Boost 1.44.0 MSM庫來生成狀態機。在這個狀態機中有兩類事件class1和class2。 class1事件可以由狀態S1或S2進行處理,而class2事件只能由狀態S2進行處理。 一個特殊的class1事件upgrade_req請求從狀態S1升級到狀態S2。 ,我實現了在升壓:: MSM如下: // State S1 and S2 allow any class1 eve

    1熱度

    1回答

    由於某些原因,我不能通過構造函數 設置狀態機的參數所以我想通過元數據訪問元狀態機的公共成員函數 後端。也就是說,我想是這樣 typedef msm::back::state_machine<player_> player; player p; p.get_front_end(); //get the address of the front end p.get_front_end().se

    2熱度

    1回答

    newbi問題請與我一起裸露,因爲我正在努力與此。 我想使用boost msm狀態機,但我很難想象它是如何工作的。假設我們只有2個狀態(s1,s2),並且從s1到s2,則需要觸發事件e1,並返回您需要的另一個e2。 e1和e2只能分別在s1和s2內被觸發。我開始啓動statemachine(start())然後生病有一個while循環,每1分鐘將返回到狀態機,但必須從它的左邊拿起。 main()

    1熱度

    1回答

    當我觸發process_event(「eventname」)時,如何檢查狀態轉換是否發生或者是否調用了no_transition? 基本上,我希望觸發/調用process_event(「eventname」)的類能夠判斷轉換是否發生。目前我無法確定這一點。 任何想法? 謝謝

    2熱度

    2回答

    有沒有辦法在boost msm中訪問所有狀態(不僅是活動狀態)? 例如無論狀態是否處於活動狀態,放置在狀態中的所有UI控件都應在調整大小事件上調整大小。 更新: 讓我澄清一下,我需要某種迭代器通過我的狀態機創建的所有對象狀態。 更新#2: 下面是一個例子。我需要調用所有狀態的resize方法。 struct EventOne {}; struct EventTwo {}; struct St

    1熱度

    1回答

    我想用在我的國家on_entry模板函數的一個is_flag_active()函數: struct StBladeDown : public msm::front::state<> { template<class Event, class FSM> void on_entry(Event const& event, FSM& fsm) { if(fsm.is_fl

    1熱度

    1回答

    以下代碼是在functor前端的boost msm文檔中給出的示例。 #include <vector> #include <iostream> // back-end #include <boost/msm/back/state_machine.hpp> //front-end #include <boost/msm/front/state_machine_def.hpp> // f