、3、4等有相同的形參,符合回調函數的要求。而且上述結構中完整記錄了所有可能出現的過程狀態(tài)事件及處理函數,如狀態(tài)O下收到事件I,執(zhí)行函數I動作;在上述記錄表中,過程之間的相互關系以及優(yōu)先級體現在附圖2的狀態(tài)轉移表中。此處給出的狀態(tài)只是狀態(tài)中一部分,在具體應用中可以根據已該結構為基礎進行增加。
[0022]2)當接收到事件后(消息或定時器到達),確定事件類型,再判斷當前的狀態(tài),看在當前的狀態(tài)下收到的事件是否在上述記錄表中有相應的處理函數,若有,調用回調函數執(zhí)行相應的函數,將狀態(tài)改變到新的狀態(tài);若沒有相應的處理函數,丟棄收到的消息,不處理,狀態(tài)保持不變。
[0023]調用回調函數的偽碼如下: for (i=0; i<rrm_sm 數組大?。籭++)
{
if(rrc_state == rrm_sm[i].state&& event==rrm_sm[i].event){執(zhí)行 rrm_sm[i].route (int a, int b, void* c)}
}
3)重復2)過程直至結束。
[0024]如圖2所示,比方RRC層的信令過程有RRC連接建立過程(相當于a過程)、初始直傳過程(相當于b過程)、上下行直傳過程(相當于c過程)、小區(qū)更新過程(相當于d過程)等等,設定狀態(tài)0、1、2是過程a的子狀態(tài),狀態(tài)3、4、5是過程b的子狀態(tài),狀態(tài)6、7是過程c的子狀態(tài),狀態(tài)8、9、10是過程d的子狀態(tài)。假定過程a完成之后變到狀態(tài)2,這時可以用一個主狀態(tài)(4個基本狀態(tài)之一)去表示,在該狀態(tài)(對應子狀態(tài)2 )下,過程b、過程c、過程d都可以發(fā)生,但是過程c必須等到過程b完成之后才完成,這兩個過程有先后順序,而過程d和過程b完全是并行的,之間沒有聯系,但是過程d的執(zhí)行優(yōu)先級最高,也就是說,狀態(tài)3、
4、5、6、7、8、9、10都處在一個大的主狀態(tài)下,在這個大的主狀態(tài)下,只要收到最高優(yōu)先級的事件觸發(fā)過程d發(fā)生,就立即轉到子狀態(tài)8,執(zhí)行過程d,不管狀態(tài)是處在過程b還是過程c的任一子狀態(tài)。圖2中的在狀態(tài)3、4、5、6、7狀態(tài)下收到事件10都會轉到狀態(tài)8,表明事件10的優(yōu)先級要高于事件6、7、8、9。
[0025]我們分解RRC協議棧中的過程,將過程執(zhí)行分解為子狀態(tài)觸發(fā),將子狀態(tài)和事件以及對應的處理函數都記錄到前面定義的數組結構中,同時按照上述的描述,記錄好過程之間的聯系,對并行執(zhí)行的過程,如果有優(yōu)先級的過程,要記錄所有低優(yōu)先級過程子狀態(tài)收到高優(yōu)先級事件及對應的處理函數。這樣,維護RRC的狀態(tài)機就變得簡單,只需要一個數組結構就可以實現。后續(xù)若有新的過程加入,分析過程關系,分解過程子狀態(tài),就很方便地加入到狀態(tài)機中運行;而且運行時,通過調用回調函數,無需多次查找,耗費的資源也較少,使狀態(tài)機能高效穩(wěn)定的運行。另外,本提案中只為狀態(tài)機分配一個線程,一個時序只接收一個事件,保證了狀態(tài)機的穩(wěn)定,減少狀態(tài)機實現的復雜度。
[0026]如圖3所示,相應地,與上述實現方法對應,本發(fā)明提案還提出了一種狀態(tài)機實現裝置,包括:
記錄單元:記錄所有過程的子狀態(tài)以及在該子狀態(tài)下可能收到哪個事件,并能作出哪種響應,按照本發(fā)明申請?zhí)岢龅姆椒ù鎯ο聛怼?br>[0027]接收單元:當狀態(tài)機啟動后,用于接收外部來的或本身的觸發(fā)事件,確定事件類型,在記錄單元中查找對應當前狀態(tài)和事件存在的響應。
[0028]回調單元:回調當前狀態(tài)和事件對應的響應。
[0029]執(zhí)行單元:執(zhí)行實際的響應,轉變到新的狀態(tài)。
[0030]上述實現裝置與本提案中狀態(tài)機的實現方法流程一一對應,在具體的實現過程中,可以將各單元在同一個軟件和硬件上實現。
[0031]以上給出的a、b、c、d四個過程只是一部分,若在此基礎上進行增加,本提案所提供的思想仍然適用。如RRC層的信令過程還包括系統消息廣播過程、尋呼過程、RB管理過程、測量控制過程、加密過程等等;RRC層過程多,過程之間的相互交叉融合,有些過程之間存在執(zhí)行邏輯先后順序,有些過程之間存在優(yōu)先級高低順序,所以設計一個高效的狀態(tài)機程序對維護RRC層來說就非常重要。這些過程之間的執(zhí)行順序就可通過設計一個高效的狀態(tài)機來管理和維護。
[0032]以上所列舉的過程僅為本提案的較佳實施例而已,并非用于限定本提案的保護范圍。
[0033]本發(fā)明未涉及部分均與現有技術相同或可采用現有技術加以實現。
【主權項】
1.一種RRC狀態(tài)機實現方法,其特征在于:將RRC的各個功能分類,明確過程之間的相互關系和優(yōu)先級,對每一個可能引起RRC_Idle、RRC-Cell_Shared、RRC-Cell_Dedicated和RRC-GRA_PCH基本狀態(tài)改變的功能過程,添加過程執(zhí)行的各個觸發(fā)子狀態(tài);實現步驟如下: (O用結構數組記錄所有過程中出現的狀態(tài)事件及對應的處理函數,并初始化; (2)當接收到事件后,確定事件類型,再判斷當前的狀態(tài),判斷當前的狀態(tài)下收到的事件是否在結構數組記錄中有相應的處理函數,若有,調用回調函數執(zhí)行相應的函數,將狀態(tài)改變到新的狀態(tài);若沒有相應的處理函數,則丟棄收到的消息,不作處理,狀態(tài)保持不變; (3)重復步驟(2),過程直至結束。
2.根據權利要求1所述的一種RRC狀態(tài)機實現方法,其特征在于:所述結構數組的構成如下: 結構數組3{ 參數I狀態(tài); 參數2事件; 參數3回調函數(形參1,形參2,形參3);} rrc_sm[] = { {狀態(tài)O,事件1,函數1}, {狀態(tài)1,事件2,函數2}, {狀態(tài)2,事件3,函數3}, {狀態(tài)2,事件1,函數4}, {狀態(tài)4,事件1,函數2} 1
3.根據權利要求2所述的一種RRC狀態(tài)機實現方法,其特征在于:所述結構數組中的參數3是一個回調函數,函數1、2、3、4有相同的形參,符合回調函數的要求。
4.根據權利要求1所述的一種RRC狀態(tài)機實現方法,其特征在于:所述回調函數構成如下: 循環(huán)判斷for(i=0; i〈rrm_sm數組大小;i++) { if (收到事件所處的狀態(tài)==rrm_sm[i]中的狀態(tài) 且收到的事件==rrm_sm[i]中的事件){執(zhí)行rrm_sm[i]對應的回調函數} 1
5.根據權利要求1所述的一種RRC狀態(tài)機實現方法,其特征在于:所述的方法中,RRC層的信令過程包括RRC連接建立過程、初始直傳過程、上下行直傳過程、小區(qū)更新過程;其中RRC連接建立過程要先完成,這個過程分為O、1、2三個小的子狀態(tài),該過程完成后基本狀態(tài)從空閑狀態(tài)轉到連接狀態(tài),在所述的連接狀態(tài)下,初始直傳過程、上下行直傳過程、小區(qū)更新過程都可以發(fā)生,但是上下行直傳過程必須要等到初始直傳過程發(fā)生后才能完成,而小區(qū)更新過程和初始直傳過程沒有聯系,小區(qū)更新過程的優(yōu)先級高。
6.根據權利要求5所述的一種RRC狀態(tài)機實現方法,其特征在于:所述的方法中,有邏輯先后順序的,先執(zhí)行邏輯在前的過程,有優(yōu)先級高低的先執(zhí)行高優(yōu)先級的過程;所述初始直傳過程包括子狀態(tài)3、4、5,上下行直傳過程包括子狀態(tài)6、7,小區(qū)更新過程包括子狀態(tài)8、9、10 ;所述子狀態(tài)3、4、5、6、7、8、9、10都處在一個大的基本狀態(tài)下,在這個大的基本狀態(tài)下,只要收到最高優(yōu)先級的事件觸發(fā)小區(qū)更新過程,就立即轉到子狀態(tài)8執(zhí)行小區(qū)更新過程。
7.—種RRC狀態(tài)機實現裝置,其特征在于,包括: 記錄單元:記錄所有過程的子狀態(tài)以及在該子狀態(tài)下可能收到哪個事件,并能作出哪種響應;然后存儲下來; 接收單元:當狀態(tài)機啟動后,用于接收外部來的或本身的觸發(fā)事件,確定事件類型,在記錄單元中查找對應當前狀態(tài)和事件存在的響應; 回調單元:回調當前狀態(tài)和事件對應的響應; 執(zhí)行單元:執(zhí)行實際的響應,轉變到新的狀態(tài)。
【專利摘要】本發(fā)明公開了一種RRC狀態(tài)機實現方法及裝置,根據RRC層協議棧的復雜度以及涉及到的過程的相互關系,對每一個可能引起4個基本狀態(tài)改變的功能過程,添加了該過程執(zhí)行的各個觸發(fā)子狀態(tài),以此來控制各個過程中對接收到相應消息的處理判斷,通過單一線程來管理協議棧的運行,保證了協議棧運行的高效和穩(wěn)定;相應地,與上述實現方法對應,本發(fā)明還提出了一種RRC狀態(tài)機實現裝置,其包括記錄單元,接收單元,回調單元和執(zhí)行單元。本發(fā)明解決了協議棧開發(fā)運行時資源消耗多、運行維護復雜等問題,簡化了狀態(tài)機的復雜度,保證系統運行的高效性和穩(wěn)定性。
【IPC分類】H04W72-04, H04W80-06
【公開號】CN104853440
【申請?zhí)枴緾N201510251597
【發(fā)明人】汪小軍, 劉劍鋒, 朱禮勇, 王波, 孫亮亮, 肖躍
【申請人】熊貓電子集團有限公司, 南京熊貓漢達科技有限公司
【公開日】2015年8月19日
【申請日】2015年5月18日