基於執行時棧的狀態機設計

2021-07-23 08:03:07 字數 554 閱讀 9441

狀態機執行時狀態之間的跳轉會由乙個棧來維護和管理,用於記錄狀態的跳轉上下文。狀態之間的跳轉方式有以下幾種方式:

exit(targetstatewhenempty):跳到上乙個狀態,當前狀態彈出棧頂,targetstatewhenempty表示當棧彈空的時候進入的狀態,沒有則如今到預設狀態。clearstack(targetstate):清空棧至最底層狀態或者清空棧並且進入指定的目標狀態targetstate,如果棧中只有乙個狀態並且targetstate為空則進入預設狀態。

狀態切換的時候會觸發以下幾個狀態事件:

-onenter:第一次壓入棧頂的時候

-onexit:彈出棧的時候

-onpause:作為棧頂的時候壓入新元素的時候

-onresume:彈出棧頂元素,該狀態變為棧頂的時候

在實踐中,該設計可以用於簡單的狀態機需求,例如基於執行時棧的ui管理,但暫不支援層次狀態機。

基於proteus的狀態機設計

參考資料 理論上說,任何乙個需要周而復始的執行一系列任務 例如cpu中按順序從儲存器取出指令 再執行指令 的時序系統都可以用狀態機 state machine 模型來描述。時序系統的執行週期可以描述為乙個預定順序的時間週期序列,每個週期都對應狀態機中乙個指定的狀態。狀態機在每個週期中產生特定的操作,...

三段式狀態機 基於FPGA的有限狀態機設計

一 什麼是有限狀態機 有限狀態機 簡稱狀態機 相當於乙個控制器,它將一項功能的完成分解為若干步,每一步對應於二進位制的乙個狀態,通過預先設計的順序在各狀態之間進行轉換,狀態轉換的過程就是實現邏輯功能的過程。二 為什麼使用狀態機 使用狀態機有以下好處 1 有限狀態機克服了純硬體數字系統順序方式控制不靈...

5 方法執行時的棧幀

方法執行時通過區域性變數表完成引數值到引數變數列表的傳遞過程。非static方法第乙個slot儲存物件的例項 也就是this引用 slot是可以重用的,slot可以在超出變數作用域後存放之後的變數。區域性變數不像類變數一樣存在準備階段 附上系統預設的初值 因此必須進行初始化。方法退出時相當於把當前棧...