有限狀態機的執行系統及執行方法
2023-07-29 18:57:21 2
有限狀態機的執行系統及執行方法
【專利摘要】一種有限狀態機的執行系統包括引擎單元、存儲單元及執行單元。引擎單元用於接收輸入事件。存儲單元用於存儲有限狀態機的當前狀態以及狀態轉移表。執行單元用於從存儲單元中獲取有限狀態機的當前狀態,並根據引擎單元提供的輸入事件以及存儲單元中存儲的狀態轉移表獲取當前狀態機要轉移的下一狀態機以及使用獲取的下一狀態機更新有限狀態機的當前狀態。所述狀態轉移表包括N層狀態機,上層狀態機包括若干相斥的下層狀態機,下層狀態機是通過繼承上層狀態機而獲得,下層狀態機設置有進入其所繼承的上層狀態機的接口模塊。N層狀態機中的每個狀態機只有一個實例,只處理與該實例直接關聯的輸入事件。本發明還提供了一種有限狀態機的執行方法。
【專利說明】有限狀態機的執行系統及執行方法
【技術領域】
[0001]本發明涉及有限狀態機,特別涉及有限狀態機的執行系統及執行方法。
【背景技術】
[0002]有限狀態機具有有限個狀態,一般包括狀態及狀態之間的轉移關係。在有限狀態機的系統開發中,狀態之間的轉移根據當前狀態及當前的輸入事件設定相應的條件語句而實現。如此,當系統包括大量的狀態時,各個狀態在轉移過程中相互交叉,相互影響,導致系統設計越來越複雜,使得系統難以維護和擴展。
【發明內容】
[0003]有鑑於此,本發明提供了一種易於維護和擴展的有限狀態機的執行系統及執行方法。
[0004]一種有限狀態機的執行系統,所述有限狀態機的執行系統包括:引擎單元,用於接收輸入事件,作為有限狀態機的觸發事件;存儲單元,用於存儲有限狀態機的當前狀態以及狀態轉移表;執行單元,用於從存儲單元中獲取有限狀態機的當前狀態,並根據引擎單元提供的輸入事件以及存儲單元中存儲的狀態轉移表獲取當前狀態機要轉移的下一狀態機以及根據獲取的下一狀態機更新有限狀態機的當前狀態;所述狀態轉移表包括N層狀態機,上層狀態機包括若干相斥的下層狀態機,屬於同一上層狀態機的若干個下層狀態機是通過繼承該上層狀態機而獲得,下層狀態機設置有進入其所繼承的上層狀態機的接口模塊,使得下層狀態機可以將消息傳遞給其繼承的上層狀態機,N層狀態機中的每個狀態機只有一個實例,只處理與該實例直接關聯的輸入事件,N層中的狀態機層在接收到與其並無直接聯繫的輸入事件時,通過接口模塊將該輸入事件傳送至上層的狀態機處理,如上層的狀態機與該輸入事件也不直接關聯,則上層的狀態機通過其接口模塊將該輸入事件傳送至更上層的狀態機,直至傳送至處理該輸入事件的狀態機。
[0005]一種有限狀態機的執行方法,包括步驟:接收輸入事件,作為有限狀態機的觸發事件;獲取有限狀態機的當前狀態,並根據引擎單元提供的輸入事件以及一狀態轉移表,獲取當前狀態機要轉移的下一狀態機,所述狀態轉移表包括N層狀態機,上層狀態機包括若干相斥的下層狀態機,屬於同一上層狀態機的若干個下層狀態機是通過繼承該上層狀態機而獲得,下層狀態機設置有進入其所繼承的上層狀態機的接口模塊,使得下層狀態機可以將消息傳遞給其繼承的上層狀態機,N層狀態機中的每個狀態機只有一個實例,只處理與該實例直接關聯的輸入事件,N層中的狀態機層在接收到與其並無直接聯繫的輸入事件時,通過接口模塊將該輸入事件傳送至上層的狀態機處理,如上層的狀態機與該輸入事件也不直接關聯,則上層的狀態機通過其接口模塊將該輸入事件傳送至更上層的狀態機,直至傳送至處理該輸入事件的狀態機;根據獲取的下一狀態機更新有限狀態機的當前狀態。
[0006]上述有限狀態機的執行系統及執行方法在刪除某狀態機時只需刪除該狀態機即可,並不影響其他狀態機的設置,而在建立新的狀態機時,只需建立該新的狀態機及該新的狀態機與對應的上層狀態機之間的繼承關係即可,易於維護和擴展。
【專利附圖】
【附圖說明】
[0007]圖1為一實施方式中有限狀態機的執行系統的模塊圖。
[0008]圖2為圖1中的狀態轉移表的示意圖。
[0009]圖3為一實施方式中有限狀態機的執行方法的流程圖。
[0010]主要元件符號說明
【權利要求】
1.一種有限狀態機的執行系統,所述有限狀態機的執行系統包括: 引擎單元,用於接收輸入事件,作為有限狀態機的觸發事件; 存儲單元,用於存儲有限狀態機的當前狀態以及狀態轉移表; 執行單元,用於從存儲單元中獲取有限狀態機的當前狀態,並根據引擎單元提供的輸入事件以及存儲單元中存儲的狀態轉移表獲取當前狀態機要轉移的下一狀態機以及根據獲取的下一狀態機更新有限狀態機的當前狀態;其特徵在於: 所述狀態轉移表包括N層狀態機,上層狀態機包括若干相斥的下層狀態機,屬於同一上層狀態機的若干個下層狀態機是通過繼承該上層狀態機而獲得,下層狀態機設置有進入其所繼承的上層狀態機的接口模塊,使得下層狀態機可以將消息傳遞給其繼承的上層狀態機,N層狀態機中的每個狀態機只有一個實例,只處理與該實例直接關聯的輸入事件,N層中的狀態機層在接收到與其並無直接聯繫的輸入事件時,通過接口模塊將該輸入事件傳送至上層的狀態機處理,如上層的狀態機與該輸入事件也不直接關聯,則上層的狀態機通過其接口模塊將該輸入事件傳送至更上層的狀態機,直至傳送至處理該輸入事件的狀態機。
2.一種有限狀態機的執行方法,包括步驟: 接收輸入事件,作為有限狀態機的觸發事件; 獲取有限狀態機的當前狀態,並根據引擎單元提供的輸入事件以及一狀態轉移表,獲取當前狀態機要轉移的下一狀態機,所述狀態轉移表包括N層狀態機,上層狀態機包括若干相斥的下層狀態機,屬於同一上層狀態機的若干個下層狀態機是通過繼承該上層狀態機而獲得,下層狀態機設置有進入其所繼承的上層狀態機的接口模塊,使得下層狀態機可以將消息傳遞給其繼承的上層狀態機,N層狀態機中的每個狀態機只有一個實例,只處理與該實例直接關聯的輸入事件,N層中的狀態機層在接收到與其並無直接聯繫的輸入事件時,通過接口模塊將該輸入事件傳送至上層的狀態機處理,如上層的狀態機與該輸入事件也不直接關聯,則上層的狀態機通過其接口模塊將該輸入事件傳送至更上層的狀態機,直至傳送至處理該輸入事件的狀態機; 根據獲取的下一狀態機更新有限狀態機的當前狀態。
【文檔編號】G06F9/44GK103513971SQ201210204651
【公開日】2014年1月15日 申請日期:2012年6月20日 優先權日:2012年6月20日
【發明者】章國全, 王登勇 申請人:鴻富錦精密工業(深圳)有限公司, 鴻海精密工業股份有限公司