專利名稱:一種stk菜單處理系統及其對菜單的處理方法
技術領域:
本發明涉及智能卡應用領域,尤其涉及一種STK菜單處理系統及其對菜單的處理方法。
背景技術:
隨著手機的普及和移動通訊技術的迅猛發展,移動互聯網和移動電子商務,移動電子證務也得到很大發展。新的業務的不斷推出和舊有業務的迅速淘汰使得SIM卡上菜單列表經過增加、刪除后的重組顯示的需求越來越迫切。例如排行榜類和業務推薦等功能需要利用SIM卡內有限資源顯示按照指定順序業務列表,而且經常需要對顯示的列表進行更改。目前一些移動終端上的應用本身也用列表顯示來直觀的和用戶交互,傳遞信息,并有動態更新菜單項和顯示順序的需求。現有技術中存在利用SIM卡內的循環文件來增加菜單列表項,但是該技術卻無法處理刪除菜單以及刪除后的菜單重新排列及顯示問題。傳統的鏈表結構雖然可以滿足菜單的重新排列問題,但是不管是菜單的修改還是顯示都需要查找整個鏈表來查找指定位置,并在查找和鏈表維護過程中多次擦寫FLASH,這就造成了 SIM卡使用壽命縮短和程序結構復雜,執行效率低等問題。而且一旦出現意外掉電,將有可能造成整個鏈表斷裂,顯示結果不可控。并且這些方法在用戶企圖建立多于應用支持的菜單項時,束手無策。這種實現方式無法方便的替換掉最老的菜單項,用戶感受相當不好。
發明內容
本發明的目的就是提供一種高效準確的STK菜單處理系統對菜單進行動態處理的技術方案,減少傳統的通過鏈表查找和維護的方式導致的在執行效率和FLASH讀寫上的開銷,從而實現菜單處理的靈活快速。本發明提供一種STK菜單處理系統對菜單的處理方法,包括如下步驟 步驟Sl 從手機終端接收到菜單更新APDU命后將命令轉換成菜單更新數據; 步驟S2 解析該菜單更新數據獲得更新類型、要更新的菜單序號和菜單屬性數據; 步驟S3 從存儲器中的菜單存儲區讀取有效菜單項個數和原有排序的線性關聯數據,
根據更新類型和要更新的菜單序號對有效菜單項個數、線性關聯數據進行處理,獲得新的有效菜單項個數和線性關聯數據,所述菜單序號通過所述線性關聯數據索引菜單存儲區數據;
步驟S4 根據更新類型的不同將相應的數據寫入菜單存儲區; 步驟S5:處理完數據寫入菜單存儲區后,讀取菜單存儲區的內容,把菜單屬性數據區內容按照現有的菜單存儲區中的線性關聯區內容和有效菜單項個數內容組織成菜單顯示數據存到緩存,發送狀態字通知手機終端讀取數據并處理。
進一步地,所述菜單屬性數據包括菜單名稱、菜單所對應應用的大小和菜單所對應應用的信息。進一步地,所述步驟S3中根據更新類型和要更新的菜單序號對有效菜單項個數和線性關聯數據進行處理包括
如果所述更新類型為刪除N個菜單,則將有效菜單項個數減小要刪除的菜單項個數N, 線性關聯區的新的排序為原排序從要更新的菜單序號對應的線性關聯區字節開始到線性關聯區的末字節,循環左移N字節,即要更新的菜單序號對應的線性關聯區的字節之前的字節不變,要更新的菜單序號對應的線性關聯區的字節之后的排序整體前移N個字節,要刪除的菜單序號對應的字節循環移到線性關聯區的末位;
如果所述更新類型為增加菜單,且菜單增加后,菜單項個數仍未超過最大菜單項個數, 則將有效菜單項個數增加需要增加菜單的數目,原有線性關聯區的字節排序不變;
如果所述更新類型為增加菜單,且菜單增加后,菜單項個數超過最大菜單項個數X個, 則將有效菜單項個數修改為最大菜單項個數,新的線性關聯區的字節為原線性關聯區的字節循環左移X字節,即原線性關聯區的前X字節為新排序線性關聯區的最后X字節,原排序線性關聯區字節從X+1字節開始左移X字節。進一步地,所述步驟S4中根據更新類型的不同將相應的數據寫入菜單存儲區的步驟包括
如果更新類型是增加菜單操作,則把菜單屬性數據按照新的線性關聯區的字節寫入關聯的菜單存儲區內的菜單屬性數據區;完成所有菜單屬性數據的寫入后將新的有效菜單項個數、線性關聯區的字節一次性寫入;
如果更新類型是刪除菜單操作,直接將新的有效菜單項個數、線性關聯區的字節一次性寫入。進一步地,在所述步驟Sl之前還包括初始化過程,具體如下
步驟1 從手機終端接收到直接顯示菜單的APDU命后轉換成菜單更新數據; 步驟2 解析該菜單更新數據,獲得更新類型為直接顯示菜單; 步驟3 從菜單存儲區讀取有效菜單項個數區和線性關聯區數據,并按照線性關聯區內容和有效菜單項個數內容讀取菜單存儲區的菜單屬性數據區數據組織成命令為顯示菜單的菜單顯示數據存到緩存,發送狀態字通知手機終端讀取數據并處理。本發明還提供一種STK菜單處理系統,包括數據接收模塊、解析模塊、排序模塊、 數據寫入及呈現模塊及存儲器;其中
數據接收模塊從手機終端接收菜單更新APDU命后將命令轉換成菜單更新數據后發送給所述解析模塊;
解析模塊用于接收到數據接收模塊發送的菜單更新數據后,解析該數據,獲得更新類型、要更新的菜單序號和菜單屬性數據并發送給排序模塊;
排序模塊用于接收到解析模塊發送的更新類型、要更新的菜單序號和菜單屬性數據后,從存儲器的菜單存儲區讀取有效菜單項個數和原有排序線性關聯數據,根據更新類型和要更新的菜單序號對有效菜單項個數、線性關聯數據進行處理,處理完排序后,將新的有效菜單項個數、線性關聯區的字節、菜單屬性數據和更新類型發送給數據寫入及呈現模塊;數據寫入及呈現模塊用于接收到排序模塊發送的新的有效菜單項個數、線性關聯區的字節、菜單屬性數據和更新類型后,根據上述數據進行存儲器的菜單存儲區的數據更新并重新讀取菜單存儲區數據,按照現有的菜單存儲區中的線性關聯區內容和有效菜單項個數內容將菜單屬性數據區數據組織成命令為顯示菜單的菜單顯示數據存到緩存,發送狀態字通知手機終端讀取數據并處理;
存儲器包括菜單存儲區,用于存儲菜單數據,所述菜單數據為數據寫入及呈現模塊寫入及讀出,并為排序模塊提供菜單數據讀出服務。進一步地,所述解析模塊如果解析菜單更新數據僅獲得更新類型,且更新類型為直接顯示菜單,則將菜單更新數據發送給數據寫入及呈現模塊;
數據寫入及呈現模塊接收到直接顯示菜單的菜單更新數據后,從菜單存儲區讀取有效菜單項個數區和線性關聯區數據,并按照線性關聯區內容和有效菜單項個數內容讀取菜單存儲區的菜單屬性數據區數據組織成命令為顯示菜單的菜單顯示數據存到緩存,發送狀態字通知手機終端讀取數據并處理。進一步地,所述菜單屬性數據包括菜單名稱、菜單所對應應用的大小和菜單所對應應用的信息。進一步地,所述排序模塊根據更新類型和要更新的菜單序號對有效菜單項個數和線性關聯數據進行處理的過程如下
如果所述更新類型為刪除N個菜單,則將有效菜單項個數減小要刪除的菜單項個數N, 線性關聯區的新的排序為原排序從要更新的菜單序號對應的線性關聯區字節開始到線性關聯區的末字節,循環左移N字節,即要更新的菜單序號對應的線性關聯區的字節之前的字節不變,要更新的菜單序號對應的線性關聯區的字節之后的排序整體前移N個字節,要更新的菜單序號對應的字節移到線性關聯區的末位;
如果所述更新類型為增加菜單,且菜單增加后,菜單項個數仍未超過最大菜單項個數, 則將有效菜單項個數增加需要增加菜單的數目,原有線性關聯區的字節排序不變;
如果所述更新類型為增加菜單,且菜單增加后,菜單項個數超過最大菜單項個數X個, 則將有效菜單項個數修改為最大菜單項個數,新的線性關聯區的字節為原線性關聯區的字節循環左移X字節,即原線性關聯區的前X字節為新排序線性關聯區的最后X字節,原排序線性關聯區字節從X+1字節開始前移X字節。進一步地,所述數據寫入及呈現模塊進行菜單存儲區的數據更新具體如下
如果更新類型是增加菜單操作,則把菜單屬性數據按照新的線性關聯區的字節寫入關聯的菜單存儲區內的菜單屬性數據區;
完成所有菜單屬性數據的寫入后將新的有效菜單項個數、線性關聯區的字節一次性寫
入;
如果更新類型是刪除菜單操作,直接將新的有效菜單項個數、線性關聯區的字節一次性寫入。按照本發明上述方案,在整個菜單處理操作中,效果遠優于傳統的鏈表結構實現中既需要維護鏈表又需要把實際菜單數據區擦寫為無效的方法。通過以下結合附圖對本發明優選實施方式的描述,本發明的其他特點、目的和效果將變得更加清楚和易于理解。
圖1為本發明SIM卡中STK菜單處理系統結構圖2為本發明提供的動態菜單實現方法中無菜單顯示情況示意圖; 圖3為本發明提供的動態菜單實現方法中增加菜單示意圖;; 圖4為本發明提供的動態菜單實現方法中的增加菜單數目超過最大菜單項個數的示意圖5為本發明提供的動態菜單實現方法中的刪除菜單的示意圖; 在所有的上述附圖中,相同的標號表示具有相同、相似或相應的特征或功能。
具體實施例方式為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明的技術方案進行進一步詳細的說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。SIM卡是符合IS07816規范的智能卡。手機與SIM之間的數據交互過程符合 IS07816-3 T=O協議,GSMl 1. 11及GSMl 1. 14規范。智能卡安裝在手機終端,通過一種可以運行在SIM卡的小應用程序一SIM應用工具(SIM Tools Kit),向手機用戶提供SIM卡應用。SIM卡應用簡單方便,不依賴于手機終端,可以擴展各種手機上業務應用。參見圖1,為本發明的一種SIM卡中STK菜單處理系統結構圖,智能卡STK應用系統通過手機終端向用戶提供菜單更新應用服務,應用服務包括菜單的選擇、刪除和添加等, 手機終端接收用戶的操作,將其以APDU命令的形式發送到智能卡STK應用系統;該智能卡 STK應用系統中的STK菜單處理系統處理系統主要包括數據接收模塊1,解析模塊2,排序模塊3,數據寫入及呈現模塊4及存儲器。其中
數據接收模塊1 主要用于從手機終端接收菜單更新APDU命后將命令轉換成菜單更新數據后發送給解析模塊2 ;
解析模塊2 主要用于接收到數據接收模塊1發送的菜單更新數據后,解析該數據,獲得更新類型、要更新的菜單序號和菜單屬性數據或者僅有更新類型(直接顯示菜單),如果獲得更新類型、要更新的菜單序號和菜單屬性數據,則發送給排序模塊3 ;如果更新類型為 “直接顯示菜單”,則發送給數據寫入及呈現模塊4 ;
排序模塊3 主要用于接收到解析模塊2發送的更新類型、要更新的菜單序號和菜單屬性數據后,從存儲器中的菜單存儲區讀取有效菜單項個數和線性關聯數據(原有排序),根據更新類型和要更新的菜單序號對有效菜單項個數和線性關聯數據進行針對性的處理,處理完排序后,將新的有效菜單項個數、線性關聯區的字節,菜單屬性數據和更新類型發送給數據寫入及呈現模塊4;
數據寫入及呈現模塊4 主要用于接收到排序模塊3發送的新的有效菜單項個數、線性關聯區的字節、菜單屬性數據和更新類型后,根據上述數據進行菜單存儲區的數據更新并重新讀取菜單存儲區數據,按照現有的菜單存儲區中的線性關聯區內容和有效菜單項個數內容將菜單屬性數據區數據組織成命令為顯示菜單的菜單顯示數據存到緩存,發送狀態字通知手機終端讀取數據,手機終端讀取到該數據后解析出菜單顯示數據并根據菜單顯示數據中包含的顯示命令顯示菜單。如果接收到解析模塊2發送的菜單更新類型為“直接顯示菜單”的菜單更新數據后從菜單存儲區讀取有效菜單項個數區和線性關聯區數據,并按照線性關聯區內容和有效菜單項個數內容讀取菜單存儲區的菜單屬性數據區數據組織成命令為顯示菜單的菜單顯示數據存到緩存,發送狀態字通知手機終端讀取數據,手機終端讀取到該數據后解析出菜單顯示數據并根據菜單顯示數據中包含的顯示命令顯示菜單。存儲器5 包括菜單存儲區,用于存儲菜單數據,所述菜單數據為數據寫入及呈現模塊4寫入及讀出,并為排序模塊3提供菜單數據讀出服務。排序模塊3處于解析模塊2和數據寫入及呈現模塊4之間,起到決定存儲位置和確定修改數據所在位置的關鍵作用。經過解析模塊2解析后的菜單屬性數據進入排序模塊 3之后會依照更新類型的不同修改線性關聯區字節。而經由排序模塊3處理后,數據寫入及呈現模塊4只需按照線性關聯區的字節所指示的位置進行菜單屬性數據的存儲即可。數據之間的相互關系通過對存儲區的數據結構設計體現。菜單初始化過程如下
步驟1 數據接收模塊1在從手機終端接收到直接顯示菜單的APDU命后轉換成菜單更新數據后發送給解析模塊2 ;所述更新數據中的更新類型為直接顯示菜單;
步驟2 解析模塊2接收到數據接收模塊1發送的菜單更新數據后,解析該數據,獲得更新類型為直接顯示菜單,于是將內容為直接顯示菜單的菜單更新類型發送給數據寫入及呈現模塊4 ;
步驟3 數據寫入及呈現模塊4接收到直接顯示菜單的菜單更新類型數據后從存儲器中的菜單存儲區讀取有效菜單項個數區和線性關聯區的數據,按菜單存儲區中的線性關聯區內容和有效菜單項個數內容讀取菜單屬性數據區域數據并組織成命令為顯示菜單的菜單顯示數據存到緩存,發送狀態字通知手機終端讀取數據,手機終端讀取到該數據后解析出菜單顯示數據并根據菜單顯示數據中包含的顯示命令顯示菜單。菜單的刪除和添加過程如下
步驟Sl 數據接收模塊1在從手機終端接收到代表菜單項的更新APDU命后將命令轉換成菜單更新數據后發送給解析模塊2。步驟S2 解析模塊2收到菜單更新數據后,解析該數據獲得更新類型、要更新的菜單序號和菜單屬性數據(包括菜單名稱、菜單對應應用的大小和菜單對應應用的信息),而后,解析模塊2將以上數據發送給排序模塊3。步驟S3 排序模塊3收到數據后,首先從存儲器中的菜單存儲區讀取有效菜單項個數和線性關聯數據(原有排序),然后根據更新類型和要更新的菜單序號對有效菜單項個數和線性關聯數據進行針對性的處理,獲得新的有效菜單項個數、線性關聯數據和菜單屬性數據,所述菜單序號通過所述線性關聯數據索引菜單存儲區數據;
如果所述更新類型為刪除菜單,則排序模塊3將有效菜單項個數減小1,線性關聯區的新的排序為原排序從要更新的菜單序號對應的線性關聯區字節開始到線性關聯區的末字節,循環左移1字節。即要更新的菜單序號對應的線性關聯區的字節之前的字節不變,要更新的菜單序號對應的線性關聯區的字節之后的排序整體前移一個字節,要更新的菜單序號對應的字節移到線性關聯區的末位。
如果所述更新類型為增加菜單,且菜單增加后,菜單項個數仍未超過最大菜單項個數,則排序模塊3將有效菜單項個數增加需要增加菜單的數目。原有線性關聯區的字節排序不變。如果所述更新類型為增加菜單,且菜單增加后,菜單項個數超過最大菜單項個數X 個,則排序模塊3將有效菜單項個數修改為最大菜單項個數,新的線性關聯區的字節為原線性關聯區的字節循環左移X字節。即原線性關聯區的前X字節為新排序線性關聯區的最后X字節,原排序線性關聯區字節從X+1字節開始左移X字節。排序模塊3在整理排序時暫時不將新線性關聯區的字節存儲到FLASH上,而是留待存儲模塊將有效菜單項個數和新的線性關聯區的字節一次性寫入FLASH。這種一次寫入 FLASH的處理機制能夠簡化程序流程,減少FLASH的讀寫次數,提高模塊處理效率。排序模塊3處理完排序后,將新的有效菜單項個數、線性關聯區的字節,菜單屬性數據和更新類型發送給數據寫入及呈現模塊4。步驟S4 數據寫入及呈現模塊4接收到更新類型、新的有效菜單項個數、線性關聯區的字節和菜單屬性數據后,根據更新類型的不同對數據進行針對性的處理。如果排序模塊3傳入的更新類型是增加菜單操作數據寫入及呈現模塊4把菜單屬性數據按照新的線性關聯區的字節寫入關聯的菜單存儲區內的菜單屬性數據區。例如
數據寫入及呈現模塊4接收的更新類型為新增m個菜單項,則數據寫入及呈現模塊4 從新的線性關聯區有效菜單項個數的倒數第m個字節開始依次將菜單屬性數據寫入對應的菜單屬性數據區。
數據寫入及呈現模塊4完成所有菜單屬性數據的寫入后將新的有效菜單項個數、線性關聯區的字節一次性寫入。如果排序模塊3傳入的數據是刪除菜單操作數據數據寫入及呈現模塊4直接將新的有效菜單項個數、線性關聯區的字節一次性寫入。S5 數據寫入及呈現模塊4處理完數據寫入菜單存儲區后,讀取菜單存儲區的內容,把菜單屬性數據區內容按照線形關聯區數據組織菜單顯示數據,指示手機終端讀取該菜單顯示數據,完成菜單顯示。表1是菜單存儲結構權利要求
1.一種STK菜單處理系統對菜單的處理方法,包括如下步驟步驟Sl 從手機終端接收到菜單更新APDU命后將命令轉換成菜單更新數據; 步驟S2 解析該菜單更新數據獲得更新類型、要更新的菜單序號和菜單屬性數據; 步驟S3 從存儲器中的菜單存儲區讀取有效菜單項個數和原有排序的線性關聯數據, 根據更新類型和要更新的菜單序號對有效菜單項個數、線性關聯數據進行處理,獲得新的有效菜單項個數和線性關聯數據,所述菜單序號通過所述線性關聯數據索引菜單存儲區數據;步驟S4 根據更新類型的不同將相應的數據寫入菜單存儲區; 步驟S5:處理完數據寫入菜單存儲區后,讀取菜單存儲區的內容,把菜單屬性數據區內容按照現有的菜單存儲區中的線性關聯區內容和有效菜單項個數內容組織成菜單顯示數據存到緩存,發送狀態字通知手機終端讀取數據并處理。
2.根據權利要求1所述的一種STK菜單處理系統對菜單的處理方法,其特征在于, 所述菜單屬性數據包括菜單名稱、菜單所對應應用的大小和菜單所對應應用的信息。
3.根據權利要求1所述的一種STK菜單處理系統對菜單的處理方法,其特征在于,所述步驟S3中根據更新類型和要更新的菜單序號對有效菜單項個數和線性關聯數據進行處理包括如果所述更新類型為刪除N個菜單,則將有效菜單項個數減小要刪除的菜單項個數N, 線性關聯區的新的排序為原排序從要更新的菜單序號對應的線性關聯區字節開始到線性關聯區的末字節,循環左移N字節,即要更新的菜單序號對應的線性關聯區的字節之前的字節不變,要更新的菜單序號對應的線性關聯區的字節之后的排序整體前移N個字節,要刪除的菜單序號對應的字節循環移到線性關聯區的末位;如果所述更新類型為增加菜單,且菜單增加后,菜單項個數仍未超過最大菜單項個數, 則將有效菜單項個數增加需要增加菜單的數目,原有線性關聯區的字節排序不變;如果所述更新類型為增加菜單,且菜單增加后,菜單項個數超過最大菜單項個數X個, 則將有效菜單項個數修改為最大菜單項個數,新的線性關聯區的字節為原線性關聯區的字節循環左移X字節,即原線性關聯區的前X字節為新排序線性關聯區的最后X字節,原排序線性關聯區字節從X+1字節開始左移X字節。
4.根據權利要求1所述的一種STK菜單處理系統對菜單的處理方法,其特征在于,所述步驟S4中根據更新類型的不同將相應的數據寫入菜單存儲區的步驟包括如果更新類型是增加菜單操作,則把菜單屬性數據按照新的線性關聯區的字節寫入關聯的菜單存儲區內的菜單屬性數據區;完成所有菜單屬性數據的寫入后將新的有效菜單項個數、線性關聯區的字節一次性寫入;如果更新類型是刪除菜單操作,直接將新的有效菜單項個數、線性關聯區的字節一次性寫入。
5.根據權利要求1所述的一種STK菜單處理系統對菜單的處理方法,其特征在于,在所述步驟Sl之前還包括初始化過程,具體如下步驟1 從手機終端接收到直接顯示菜單的APDU命后轉換成菜單更新數據; 步驟2 解析該菜單更新數據,獲得更新類型為直接顯示菜單; 步驟3 從菜單存儲區讀取有效菜單項個數區和線性關聯區數據,并按照線性關聯區內容和有效菜單項個數內容讀取菜單存儲區的菜單屬性數據區數據組織成命令為顯示菜單的菜單顯示數據存到緩存,發送狀態字通知手機終端讀取數據并處理。
6.一種STK菜單處理系統,包括數據接收模塊、解析模塊、排序模塊、數據寫入及呈現模塊及存儲器;其中數據接收模塊用于從手機終端接收菜單更新APDU命后將命令轉換成菜單更新數據后發送給所述解析模塊;解析模塊用于接收到數據接收模塊發送的菜單更新數據后,解析該數據,獲得更新類型、要更新的菜單序號和菜單屬性數據并發送給排序模塊;排序模塊用于接收到解析模塊發送的更新類型、要更新的菜單序號和菜單屬性數據后,從存儲器的菜單存儲區讀取有效菜單項個數和原有排序線性關聯數據,根據更新類型和要更新的菜單序號對有效菜單項個數、線性關聯數據進行處理,處理完排序后,將新的有效菜單項個數、線性關聯區的字節、菜單屬性數據和更新類型發送給數據寫入及呈現模塊;數據寫入及呈現模塊用于接收到排序模塊發送的新的有效菜單項個數、線性關聯區的字節、菜單屬性數據和更新類型后,根據上述數據進行存儲器的菜單存儲區的數據更新并重新讀取菜單存儲區數據,按照現有的菜單存儲區中的線性關聯區內容和有效菜單項個數內容將菜單屬性數據區數據組織成命令為顯示菜單的菜單顯示數據存到緩存,發送狀態字通知手機終端讀取數據并處理;存儲器包括菜單存儲區,用于存儲菜單數據,所述菜單數據為數據寫入及呈現模塊寫入及讀出,并為排序模塊提供菜單數據讀出服務。
7.根據權利要求6所述的一種STK菜單處理系統,其特征在于,所述解析模塊如果解析菜單更新數據僅獲得更新類型,且更新類型為直接顯示菜單, 則將菜單更新數據發送給數據寫入及呈現模塊;數據寫入及呈現模塊接收到直接顯示菜單的菜單更新數據后,從菜單存儲區讀取有效菜單項個數區和線性關聯區數據,并按照線性關聯區內容和有效菜單項個數內容讀取菜單存儲區的菜單屬性數據區數據組織成命令為顯示菜單的菜單顯示數據存到緩存,發送狀態字通知手機終端讀取數據并處理。
8.根據權利要求6所述的一種STK菜單處理系統,其特征在于,所述菜單屬性數據包括菜單名稱、菜單所對應應用的大小和菜單所對應應用的信息。
9.根據權利要求6所述的一種STK菜單處理系統,其特征在于,所述排序模塊根據更新類型和要更新的菜單序號對有效菜單項個數和線性關聯數據進行處理的過程如下如果所述更新類型為刪除N個菜單,則將有效菜單項個數減小要刪除的菜單項個數N, 線性關聯區的新的排序為原排序從要更新的菜單序號對應的線性關聯區字節開始到線性關聯區的末字節,循環左移N字節,即要更新的菜單序號對應的線性關聯區的字節之前的字節不變,要更新的菜單序號對應的線性關聯區的字節之后的排序整體前移N個字節,要更新的菜單序號對應的字節移到線性關聯區的末位;如果所述更新類型為增加菜單,且菜單增加后,菜單項個數仍未超過最大菜單項個數, 則將有效菜單項個數增加需要增加菜單的數目,原有線性關聯區的字節排序不變;如果所述更新類型為增加菜單,且菜單增加后,菜單項個數超過最大菜單項個數X個, 則將有效菜單項個數修改為最大菜單項個數,新的線性關聯區的字節為原線性關聯區的字節循環左移X字節,即原線性關聯區的前X字節為新排序線性關聯區的最后X字節,原排序線性關聯區字節從X+1字節開始前移X字節。
10.根據權利要求6所述的一種STK菜單處理系統,其特征在于, 所述數據寫入及呈現模塊進行菜單存儲區的數據更新具體如下 如果更新類型是增加菜單操作,則把菜單屬性數據按照新的線性關聯區的字節寫入關聯的菜單存儲區內的菜單屬性數據區;完成所有菜單屬性數據的寫入后將新的有效菜單項個數、線性關聯區的字節一次性寫入;如果更新類型是刪除菜單操作,直接將新的有效菜單項個數、線性關聯區的字節一次性寫入。
全文摘要
本發明公開了一種STK菜單處理系統及方法,包括數據接收模塊,從手機終端接收命令轉換成菜單更新數據;解析模塊,解析該菜單更新數據,獲得更新類型、要更新的菜單序號和菜單屬性數據并發送給排序模塊;排序模塊,接收從排序模塊接收的數據,從存儲器的菜單存儲區讀取有效菜單項個數和原有排序線性關聯數據,根據更新類型和要更新的菜單序號對有效菜單項個數、線性關聯數據進行處理,處理完排序后,發送給數據寫入及呈現模塊;數據寫入及呈現模塊,根據接收的數據進行存儲器的菜單存儲區的數據更新并組織成命令為顯示菜單的菜單顯示數據存到緩存,發送狀態字通知手機終端讀取數據并處理。本發明的上述方案使得菜單處理靈活快速。
文檔編號H04M1/725GK102436380SQ20111036106
公開日2012年5月2日 申請日期2011年11月15日 優先權日2011年11月15日
發明者鄒勇 申請人:福源立信(北京)科技有限公司