狀態機這個東西,我們使用c++來實現,在實際中的應用是非常廣泛的,假如我們實現一個這樣的機器人的demo,我們要讓這個機器人有這樣的功能:首先,開機進入初始化狀態,執行觸發條件1,進入建圖狀態,執行觸發條件2,進入導航狀態,在建圖狀態和導航狀態執行觸發條件0,均可回到初始化狀態。在導航狀態下,執行觸發條件3可進入充電狀態,自動充電完成後,又回到導航狀態。那麼我們以建圖和導航為基類,可衍生很多的子類,實現其他的功能。這是不是一個很常見的demo呢,其實掃地機器人基本上就是這麼運行的。
我們在簡化一下,實現一個簡單的狀態機來實現兩個狀態之間的切換
基本代碼
1.定義機器人的兩個動作,並在機器人類裡定義一個狀態類的對象。
2.兩個動作函數的實現
3.兩個狀態的定義。主要要使用虛函數
4.兩個狀態的切換實現
5.主函數
附上完整的代碼:直接用吧,,,
看一下效果:
閱讀更多 小5嵌入式 的文章