本發(fā)明涉及安防通信技術(shù)領(lǐng)域,尤其涉及一種UI和業(yè)務(wù)邏輯分離方法和裝置。
背景技術(shù):
隨著計算機(jī)技術(shù)的迅猛發(fā)展以及Internet進(jìn)入商業(yè)和社會應(yīng)用階段,設(shè)備的種類、數(shù)量越來越多,如何利用先進(jìn)的網(wǎng)絡(luò)技術(shù)和日新月異的計算機(jī)設(shè)備來有效地收集、處理這些設(shè)備,建立以信息化為核心的管理體制,減輕管理人員和業(yè)務(wù)人員的數(shù)據(jù)處理負(fù)擔(dān),極大地提高設(shè)備管理效率和管理手段,己經(jīng)成為當(dāng)今社會的潮流。
設(shè)備管理系統(tǒng)(Equipment Management System)是將信息化了的設(shè)備技術(shù)信息與現(xiàn)代化管理相結(jié)合,是實現(xiàn)研究級管理信息化的先導(dǎo)。設(shè)備管理軟件是設(shè)備管理模式與計算機(jī)技術(shù)結(jié)合的產(chǎn)物,設(shè)備管理的對象是各種各樣的設(shè)備。
然而,現(xiàn)有設(shè)備管理軟件通過UI界面對設(shè)備進(jìn)行功能操作時,有些設(shè)備功能執(zhí)行時間較長,如果UI界面等待這些設(shè)備功能執(zhí)行完成后才能響應(yīng)其他UI操作,則會降低UI響應(yīng)速率,
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例提供了一種UI和業(yè)務(wù)邏輯分離方法和裝置,以解決現(xiàn)有設(shè)備管理軟件中UI界面需要等待設(shè)備功能執(zhí)行完成后才可以響應(yīng)其他UI操作,UI響應(yīng)速率慢的問題。
第一方面,本發(fā)明實施例提供了一種UI和業(yè)務(wù)邏輯分離方法,所述方法包括:
UI層將識別出來的UI操作消息發(fā)送至消息分發(fā)模塊;
消息分發(fā)模塊根據(jù)從UI層獲取的UI操作消息確定對應(yīng)的功能消息,并分發(fā)所述功能消息至對應(yīng)的功能模塊中;
功能模塊根據(jù)從消息分發(fā)模塊獲取的功能消息從設(shè)備層中調(diào)用對應(yīng)的接口函數(shù)和設(shè)備進(jìn)行通信,功能模塊執(zhí)行所述功能消息對應(yīng)的業(yè)務(wù)邏輯操作;
功能模塊在執(zhí)行完所述功能消息對應(yīng)的業(yè)務(wù)邏輯操作后,調(diào)用接口函數(shù)修改公共狀態(tài)模塊中對應(yīng)的功能狀態(tài);
當(dāng)修改后的功能狀態(tài)與UI層的當(dāng)前功能狀態(tài)不一致時,公共狀態(tài)模塊發(fā)送UI更新消息至UI層。
第二方面,本發(fā)明實施例提供了一種UI和業(yè)務(wù)邏輯分離裝置,所述裝置包括UI操作消息發(fā)送單元、分發(fā)單元、調(diào)用單元、修改單元和UI更新消息發(fā)送單元;
其中,UI操作消息發(fā)送單元,用于由UI層將識別出來的UI操作消息發(fā)送至消息分發(fā)模塊;
分發(fā)單元,用于由消息分發(fā)模塊根據(jù)從UI層獲取的UI操作消息確定對應(yīng)的功能消息,并分發(fā)所述功能消息至對應(yīng)的功能模塊中;
調(diào)用單元,用于由功能模塊根據(jù)從消息分發(fā)模塊獲取的功能消息從設(shè)備層中調(diào)用對應(yīng)的接口函數(shù)和設(shè)備進(jìn)行通信,功能模塊執(zhí)行所述功能消息對應(yīng)的業(yè)務(wù)邏輯操作;
修改單元,用于由功能模塊在執(zhí)行完所述功能消息對應(yīng)的業(yè)務(wù)邏輯操作后,調(diào)用接口函數(shù)修改公共狀態(tài)模塊中對應(yīng)的功能狀態(tài);
UI更新消息發(fā)送單元,用于當(dāng)修改后的功能狀態(tài)與UI層的當(dāng)前功能狀態(tài)不一致時,由公共狀態(tài)模塊發(fā)送UI更新消息至UI層。
在本發(fā)明實施例中,通過由UI層將識別出來的UI操作消息發(fā)送至消息分發(fā)模塊;再由消息分發(fā)模塊根據(jù)從UI層獲取的UI操作消息確定對應(yīng)的功能消息,并分發(fā)所述功能消息至對應(yīng)的功能模塊中;由功能模塊根據(jù)從消息分發(fā)模塊獲取的功能消息從設(shè)備層中調(diào)用對應(yīng)的接口函數(shù)和設(shè)備進(jìn)行通信后,在功能模塊在執(zhí)行完所述功能消息對應(yīng)的業(yè)務(wù)邏輯操作后,調(diào)用接口函數(shù)修改公共狀態(tài)模塊中對應(yīng)的功能狀態(tài);當(dāng)功能狀態(tài)發(fā)生變化時,由公共狀態(tài)模塊發(fā)送UI更新消息至UI層,實現(xiàn)了在UI層向業(yè)務(wù)邏輯層發(fā)送UI操作消息后,可以立刻響應(yīng)新的UI操作,不需要等待設(shè)備功能執(zhí)行完成,提高了UI操作的響應(yīng)速率。
附圖說明
圖1是本發(fā)明實施例提供的一種UI和業(yè)務(wù)邏輯分離方法的實現(xiàn)流程圖;
圖2是本發(fā)明實施例提供的一種UI層將識別出來的UI操作消息發(fā)送至消
息分發(fā)模塊的方法的具體實現(xiàn)流程圖;
圖3是本發(fā)明實施例提供的一種消息分發(fā)模塊根據(jù)從UI層獲取的UI操作
消息確定對應(yīng)的功能消息,并分發(fā)功能消息至對應(yīng)的功能模塊中的方法的
具體實現(xiàn)流程圖;
圖4是本發(fā)明實施例提供的一種消息分發(fā)模塊根據(jù)預(yù)設(shè)規(guī)則將UI操作消息
分解成與主功能模塊和次功能模塊對應(yīng)的功能消息的方法的實現(xiàn)流程圖;
圖5是本發(fā)明實施例提供的一種UI和業(yè)務(wù)邏輯分離裝置的結(jié)構(gòu)框圖。
具體實施方式
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而非全部實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
應(yīng)理解,在本發(fā)明各個實施例中,各過程的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對本發(fā)明實施例的實施過程構(gòu)成任何限定。
以下結(jié)合具體實施例對本發(fā)明的實現(xiàn)進(jìn)行詳細(xì)描述:
圖1示出了本發(fā)明實施例提供的一種UI和業(yè)務(wù)邏輯分離方法的實現(xiàn)流程,詳述如下:
在步驟S101中,UI層將識別出來的UI操作消息發(fā)送至消息分發(fā)模塊。
在本發(fā)明實施例中,業(yè)務(wù)邏輯層包括消息分發(fā)模塊和功能模塊其中,所述功能模塊至少為一個;當(dāng)所述功能模塊大于一個時,所述功能模塊并行處理由消息分發(fā)模塊分發(fā)過來的功能消息;在這里,上述功能模塊包括但不限于預(yù)覽功能模塊、錄像功能模塊、控球功能模塊、報警功能模塊和上墻功能模塊。
在本發(fā)明實施例中,為了進(jìn)一步實現(xiàn)將UI層和業(yè)務(wù)邏輯層分離開來,將UI層和業(yè)務(wù)邏輯層中具有相同狀態(tài)特征的功能狀態(tài)都納入到公共狀態(tài)模塊中,以供UI層和業(yè)務(wù)邏輯層調(diào)用,在這里,UI層和業(yè)務(wù)邏輯層通過接口函數(shù)的方式訪問公共狀態(tài)模塊確定當(dāng)前要操作的功能模塊的功能狀態(tài),即所述公共狀態(tài)模塊中包含有由UI層和業(yè)務(wù)邏輯層中具有相同特征的功能狀態(tài)的集合,UI層和業(yè)務(wù)邏輯層通過接口函數(shù)訪問所述公共狀態(tài)模塊。
具體地,UI操作指令中包含有功能模塊的模塊標(biāo)識,根據(jù)該模塊標(biāo)識調(diào)用接口函數(shù)可以從公共狀態(tài)模塊中獲取對應(yīng)功能模塊的當(dāng)前功能狀態(tài)。
具體地,上述步驟S101的具體實現(xiàn)流程如圖2所示:
在步驟S201中,UI層接收用戶輸入的UI操作指令,識別出所述UI操作指令中包含的模塊標(biāo)識和功能操作。
在本發(fā)明實施例中,當(dāng)用戶在UI界面進(jìn)行操作時,UI層接收用戶輸入的UI操作指令,例如用戶使用鼠標(biāo)點擊或者觸摸點擊等方式點擊UI界面中的錄像播放按鈕時,UI層識別出用戶當(dāng)前點擊的是錄像功能模塊中的播放/暫停按鈕,這時,UI操作指令中包含的模塊標(biāo)識為錄像功能模塊標(biāo)識,UI操作指令中包含的功能操作為播放操作或者暫停操作。
在步驟S202中,UI層調(diào)用接口函數(shù)從公共狀態(tài)模塊中查詢與所述UI操作指令關(guān)聯(lián)的功能模塊的功能狀態(tài),根據(jù)所述功能狀態(tài)確定所述UI操作指令對應(yīng)的功能操作和與所述功能操作對應(yīng)的功能狀態(tài)。
上述與UI操作指令關(guān)聯(lián)的功能模塊的功能狀態(tài),具體是指與UI操作指令中的模塊標(biāo)識對應(yīng)的功能模塊的當(dāng)前功能狀態(tài),例如,當(dāng)前用戶是要進(jìn)行錄像回放,那么,當(dāng)用戶在UI界面進(jìn)行操作時,UI操作指令中包含有錄像功能模塊的模塊標(biāo)識,在公共狀態(tài)模塊中記錄有該錄像功能模塊的當(dāng)前功能狀態(tài),根據(jù)該模塊標(biāo)識調(diào)用接口函數(shù)就可以從公共狀態(tài)模塊中查詢到錄像功能模塊的當(dāng)前功能狀態(tài),即該錄像功能模塊當(dāng)前處于播放狀態(tài)還是處于暫停狀態(tài),在確定該錄像功能模塊的當(dāng)前功能狀態(tài)后,即在確定錄像功能模塊的當(dāng)前功能狀態(tài)時播放狀態(tài)還是暫停狀態(tài)后,就可以確定UI操作指令對應(yīng)的功能操作是播放操作還是暫停操作,以及與該功能操作對應(yīng)的功能狀態(tài)為播放狀態(tài)還是暫停狀態(tài),例如,當(dāng)錄像功能模塊的當(dāng)前功能狀態(tài)為暫停狀態(tài)時,UI操作指令對應(yīng)的功能操作為播放操作,與該播放操作對應(yīng)的功能狀態(tài)為播放狀態(tài)。
具體地,在UI層識別出所述UI操作指令中包含的模塊標(biāo)識和功能操作后,當(dāng)UI操作指令中包含的功能操作的操作數(shù)量大于1時,即UI操作指令中包含的功能操作有多個操作動作時,需要確定UI操作指令對應(yīng)的功能操作具體是哪個功能操作,這時,UI層調(diào)用接口函數(shù)從公共狀態(tài)模塊中查詢與所述UI操作指令關(guān)聯(lián)的功能模塊的當(dāng)前功能狀態(tài),當(dāng)確定與所述UI操作指令關(guān)聯(lián)的功能模塊的當(dāng)前功能狀態(tài)后,根據(jù)當(dāng)前功能狀態(tài)確定所述UI操作指令對應(yīng)的功能操作,例如,當(dāng)確定與當(dāng)前UI操作指令關(guān)聯(lián)的錄像功能模塊的當(dāng)前功能狀態(tài)為暫停狀態(tài)時,那么,UI操作指令對應(yīng)的功能操作為播放操作,與該播放操作對應(yīng)的功能狀態(tài)為播放狀態(tài)。
在步驟S203中,UI層將包含所述模塊標(biāo)識、所述功能操作和與所述功能操作對應(yīng)的功能狀態(tài)的UI操作消息發(fā)送至消息分發(fā)模塊。
在本發(fā)明實施例中,當(dāng)UI層調(diào)用接口函數(shù)從公共狀態(tài)模塊中查詢到與UI操作指令對應(yīng)的功能操作和與功能操作對應(yīng)的功能狀態(tài)后,公共狀態(tài)模塊將包含與UI操作指令對應(yīng)的功能操作和與功能操作對應(yīng)的功能狀態(tài)的消息反饋回來給UI層,UI層根據(jù)反饋回來的消息生成對應(yīng)的UI操作消息后,UI層將該UI操作消息發(fā)送至業(yè)務(wù)邏輯層中的消息分發(fā)模塊;其中,該UI操作消息包括模塊標(biāo)識、與UI操作指令對應(yīng)的功能操作和與該功能操作對應(yīng)的功能狀態(tài)。
在本發(fā)明實施例中,當(dāng)UI層根據(jù)當(dāng)前功能狀態(tài)確定UI操作指令對應(yīng)的功能操作后,UI層向業(yè)務(wù)邏輯層中的消息分發(fā)模塊發(fā)送包含所述模塊標(biāo)識、所述功能操作和與所述功能操作對應(yīng)的功能狀態(tài)的UI操作消息,例如,當(dāng)UI層根據(jù)當(dāng)前功能狀態(tài)確定UI操作指令對應(yīng)的功能操作為播放操作,和與所述功能操作對應(yīng)的功能狀態(tài)為播放狀態(tài)時,UI層向業(yè)務(wù)邏輯層中的消息分發(fā)模塊發(fā)送包含錄像功能模塊標(biāo)識、播放操作和播放狀態(tài)的UI操作消息,UI層在發(fā)送該UI操作消息后,可以立刻響應(yīng)新的UI操作指令,而不必等待設(shè)備將上一個UI操作消息執(zhí)行完成后才可以響應(yīng)新的UI操作指令,減少了設(shè)備等待的時間,避免在進(jìn)行軟件操作時出現(xiàn)界面卡住的情況,有效提高了UI的響應(yīng)效率。
在步驟S102中,消息分發(fā)模塊根據(jù)從UI層獲取的UI操作消息確定對應(yīng)的功能消息,并分發(fā)所述功能消息至對應(yīng)的功能模塊中。
在本發(fā)明實施例中,UI操作消息中包含有模塊標(biāo)識、功能操作和與所述功能操作對應(yīng)的功能狀態(tài)。
具體地,上述步驟S102的具體實現(xiàn)流程如圖3所示:
在步驟S301中,消息分發(fā)模塊在獲取UI層發(fā)送的UI操作消息后,根據(jù)所述UI操作消息調(diào)用接口函數(shù)從公共狀態(tài)模塊中查詢所述模塊標(biāo)識所屬的主功能模塊是否存在相互關(guān)聯(lián)的次功能模塊。
在本發(fā)明實施例中,上述模塊標(biāo)識所屬的主功能模塊是否存在相互關(guān)聯(lián)的次功能模塊,具體是指模塊標(biāo)識所屬的功能模塊中存在依賴關(guān)系的功能模塊,例如,在預(yù)覽狀態(tài)下打開正在播放的錄像視頻的音頻輸出,這時預(yù)覽功能模塊中存在依賴關(guān)系的錄像功能模塊。
具體地,上述主功能模塊具體為存在依賴關(guān)系的功能模塊中處于主導(dǎo)地位的功能模塊,次功能模塊為存在依賴關(guān)系的功能模塊中處于次要地位的功能模塊,例如,預(yù)覽狀態(tài)下的錄像功能模塊,這時,預(yù)覽功能模塊處于主導(dǎo)地位,錄像功能模塊處于次要地位。
在步驟S302中,如果不存在相互關(guān)聯(lián)的次功能模塊,消息分發(fā)模塊直接分發(fā)所述UI操作消息至所述模塊標(biāo)識所屬的主功能模塊中。
在本發(fā)明實施例中,在確定不存在相互關(guān)聯(lián)的次功能模塊后,消息分發(fā)模塊就直接分發(fā)從UI層獲取的UI操作消息至模塊標(biāo)識所述主功能模塊中。
在一個應(yīng)用場景中,用戶在UI界面中點擊當(dāng)前顯示的錄像視頻界面中的播放/暫停按鈕時,UI層識別出用戶點擊的UI操作指令中的模塊標(biāo)識為視頻功能模塊標(biāo)識,為區(qū)分UI操作指令中的功能操作具體為播放操作還是暫停操作,UI層調(diào)用接口函數(shù)查詢公共狀態(tài)模塊中的視頻功能模塊的當(dāng)前功能狀態(tài)時播放狀態(tài)還是暫停狀態(tài),如果時暫停狀態(tài),那么UI層識別出用戶要進(jìn)行的UI操作為播放視頻,向業(yè)務(wù)邏輯層的消息分發(fā)模塊發(fā)送包含視頻功能模塊標(biāo)識和播放視頻的UI操作消息。
消息分發(fā)模塊在獲取到該包含視頻功能模塊標(biāo)識和播放視頻的UI操作消息后,調(diào)用接口函數(shù)從公共狀態(tài)模塊中查詢到該視頻功能模塊不存在相互關(guān)聯(lián)的次功能模塊,這時,消息分發(fā)模塊直接將從UI層獲取的UI操作消息分發(fā)給錄像功能模塊。
在步驟S303中,如果存在相互關(guān)聯(lián)的次功能模塊,消息分發(fā)模塊根據(jù)預(yù)設(shè)規(guī)則將所述UI操作消息分解成與所述主功能模塊和次功能模塊對應(yīng)的功能消息,并將分解后的功能消息對應(yīng)分發(fā)至所述主功能模塊和所述次功能模塊中。
具體地,上述預(yù)先設(shè)置的規(guī)則具體為沖突規(guī)則,步驟S303中消息分發(fā)模塊根據(jù)預(yù)設(shè)規(guī)則將所述UI操作消息分解成與所述主功能模塊和次功能模塊對應(yīng)的功能消息的具體實現(xiàn)流程如圖4所示:
在步驟S401中,消息分發(fā)模塊調(diào)用接口函數(shù)查詢所述次功能模塊的當(dāng)前功能狀態(tài)。
在步驟S402中,消息分發(fā)模塊確定所述次功能模塊的當(dāng)前功能狀態(tài)與所述UI操作消息中包含的與所述功能操作對應(yīng)的功能狀態(tài)是否存在沖突。
例如,當(dāng)用戶UI操作消息中包含的功能操作為音頻輸出的打開功能操作,與音頻輸出的打開功能操作對應(yīng)的功能狀態(tài)是音頻輸出打開狀態(tài)時,消息分發(fā)模塊判斷作為次功能模塊的錄像功能模塊的當(dāng)前功能狀態(tài)如音頻輸出打開狀態(tài)或音頻輸出關(guān)閉狀態(tài)與音頻輸出的打開功能操作對應(yīng)的功能狀態(tài)是音頻輸出打開狀態(tài)是否存在沖突。
在步驟S403中,如果存在沖突,消息分發(fā)模塊生成包含與所述UI操作消息中包含的功能操作相反的功能操作的次功能消息,按照預(yù)設(shè)優(yōu)先級將所述UI操作消息和所述次功能消息分發(fā)至對應(yīng)的主功能模塊和次功能模塊中。
在本發(fā)明實施例中,上述預(yù)設(shè)優(yōu)先級為優(yōu)先發(fā)送次功能消息至次功能模塊中,再發(fā)送UI操作消息至主功能模塊中。
進(jìn)一步地,如果不存在沖突,則不向次功能模塊執(zhí)行任何操作,保留該次功能模塊的當(dāng)前功能狀態(tài)。
在一個應(yīng)用場景中,用戶在UI界面顯示的預(yù)覽狀態(tài)下點擊音頻輸出打開時,UI層識別出用戶點擊的UI操作指令中的模塊標(biāo)識為預(yù)覽功能模塊標(biāo)識后,調(diào)用接口函數(shù)查詢公共狀態(tài)中的預(yù)覽功能模塊中的音頻輸出的當(dāng)前播放狀態(tài)為關(guān)閉狀態(tài),這時,UI層向業(yè)務(wù)邏輯層中的消息分發(fā)模塊發(fā)送包含預(yù)覽功能模塊標(biāo)識和打開音頻輸出的UI操作消息。
消息分發(fā)模塊在獲取到該包含預(yù)覽功能模塊標(biāo)識和打開音頻輸出的UI操作消息后,調(diào)用接口函數(shù)從公共狀態(tài)模塊中查詢到有與該預(yù)覽功能模塊存在關(guān)聯(lián)的錄像功能模塊,這時,消息分發(fā)模塊調(diào)用接口函數(shù)從公共狀態(tài)模塊中查詢到該錄像功能模塊中的音頻輸出為打開狀態(tài),由消息分發(fā)模塊生成包含關(guān)閉音頻輸出的次功能消息,這時,UI操作消息相當(dāng)于是預(yù)覽功能模塊的主功能消息,消息分發(fā)模塊按照預(yù)設(shè)優(yōu)先級將主功能消息和次功能消息分發(fā)至對應(yīng)的主功能模塊和次功能模塊中。
在步驟S103中,功能模塊根據(jù)從消息分發(fā)模塊獲取的功能消息從設(shè)備層中調(diào)用對應(yīng)的接口函數(shù)和設(shè)備進(jìn)行通信,功能模塊執(zhí)行所述功能消息對應(yīng)的業(yè)務(wù)邏輯操作。
在本發(fā)明實施例中,功能模塊在獲取到由消息分發(fā)模塊分發(fā)的對應(yīng)的功能消息后,從設(shè)備層中調(diào)用與該功能消息對應(yīng)的接口函數(shù)和設(shè)備層進(jìn)行通信,對設(shè)備執(zhí)行功能消息對應(yīng)的業(yè)務(wù)邏輯操作,例如,錄像功能模塊調(diào)用設(shè)備層的錄像播放函數(shù)對設(shè)備進(jìn)行錄像播放。
在一個應(yīng)用場景中,預(yù)覽功能模塊中關(guān)聯(lián)的次功能模塊為多個錄像功能模塊,在消息分發(fā)模塊給錄像功能模塊分發(fā)關(guān)閉音頻輸出的功能消息后,消息分發(fā)模塊按時序繼續(xù)調(diào)用接口函數(shù)查詢公共狀態(tài)模塊中的錄像功能模塊的音頻輸出狀態(tài),直到預(yù)覽功能模塊中關(guān)聯(lián)的所有錄像功能模塊的音頻輸出狀態(tài)均為關(guān)閉狀態(tài)后,才將作為預(yù)覽功能模塊的主功能消息分發(fā)給預(yù)覽模塊,以避免預(yù)覽功能模塊下出現(xiàn)音頻異常的情況,給用戶更好的操作體驗。
在步驟S104中,功能模塊在執(zhí)行完所述功能消息對應(yīng)的業(yè)務(wù)邏輯操作后,調(diào)用接口函數(shù)修改公共狀態(tài)模塊中對應(yīng)的功能狀態(tài)。
在一個應(yīng)用場景中,錄像功能模塊調(diào)用設(shè)備層的錄像播放函數(shù)對設(shè)備進(jìn)行錄像播放后,再調(diào)用接口函數(shù)修改公共狀態(tài)模塊中的錄像功能狀態(tài)為播放。
在另一個應(yīng)用場景中,錄像功能模塊在調(diào)用設(shè)備層的關(guān)閉音頻輸出函數(shù),關(guān)閉設(shè)備的音頻輸出后,調(diào)用接口函數(shù)修改公共狀態(tài)模塊中的錄像功能模塊的音頻輸出狀態(tài)為關(guān)閉。
在步驟S105中,當(dāng)修改后的功能狀態(tài)與UI層的當(dāng)前功能狀態(tài)不一致時,公共狀態(tài)模塊發(fā)送UI更新消息至UI層。
在本發(fā)明實施例中,當(dāng)功能模塊的功能狀態(tài)發(fā)生變化時,即修改后的功能狀態(tài)與UI層的當(dāng)前功能狀態(tài)不一致時,公共狀態(tài)模塊向UI層發(fā)送UI更新消息,UI層根據(jù)接收到UI更新消息對UI進(jìn)行相應(yīng)的顯示更新,例如,公共狀態(tài)模塊發(fā)送更新錄像功能狀態(tài)的UI更新消息給UI層,UI層接收到UI更新消息后就更新錄像功能模塊中播放/暫停按鈕的UI顯示。
在本發(fā)明實施例中,通過由UI層將識別出來的UI操作消息發(fā)送至消息分發(fā)模塊;再由消息分發(fā)模塊根據(jù)從UI層獲取的UI操作消息確定對應(yīng)的功能消息,并分發(fā)所述功能消息至對應(yīng)的功能模塊中;由功能模塊根據(jù)從消息分發(fā)模塊獲取的功能消息從設(shè)備層中調(diào)用對應(yīng)的接口函數(shù)和設(shè)備進(jìn)行通信后,在功能模塊在執(zhí)行完所述功能消息對應(yīng)的業(yè)務(wù)邏輯操作后,調(diào)用接口函數(shù)修改公共狀態(tài)模塊中對應(yīng)的功能狀態(tài);當(dāng)功能狀態(tài)發(fā)生變化時,由公共狀態(tài)模塊發(fā)送UI更新消息至UI層,實現(xiàn)了在UI層向業(yè)務(wù)邏輯層發(fā)送UI操作消息后,可以立刻響應(yīng)新的UI操作,不需要等待設(shè)備功能執(zhí)行完成,提高了UI操作的響應(yīng)速率。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述各實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,相應(yīng)的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中,上述的存儲介質(zhì),如ROM/RAM、磁盤或光盤等。
圖5示出了本發(fā)明實施例提供的一種UI和業(yè)務(wù)邏輯分離裝置5的具體結(jié)構(gòu)框圖,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。
本發(fā)明實施例提供的一種UI和業(yè)務(wù)邏輯分離裝置5,包括UI操作消息發(fā)送單元51、分發(fā)單元52、調(diào)用單元53、修改單元54和UI更新消息發(fā)送單元55。
其中,UI操作消息發(fā)送單元51,用于由UI層將識別出來的UI操作消息發(fā)送至消息分發(fā)模塊;
進(jìn)一步地,所述UI操作消息發(fā)送單元51包括:
指令識別子單元,用于由UI層接收用戶輸入的UI操作指令,識別出所述UI操作指令中包含的模塊標(biāo)識和功能操作;
狀態(tài)查詢子單元,用于由UI層調(diào)用接口函數(shù)從公共狀態(tài)模塊中查詢與所述UI操作指令關(guān)聯(lián)的功能模塊的功能狀態(tài),根據(jù)所述功能狀態(tài)確定所述UI操作指令對應(yīng)的功能操作和與所述功能操作對應(yīng)的功能狀態(tài);
UI操作消息發(fā)送子單元,用于由UI層將包含所述模塊標(biāo)識、所述功能操作和與所述功能操作對應(yīng)的功能狀態(tài)的UI操作消息發(fā)送至消息分發(fā)模塊。
分發(fā)單元52,用于由消息分發(fā)模塊根據(jù)從UI層獲取的UI操作消息確定對應(yīng)的功能消息,并分發(fā)所述功能消息至對應(yīng)的功能模塊中;
進(jìn)一步地,所述分發(fā)單元52包括:
關(guān)聯(lián)查詢子單元,用于由消息分發(fā)模塊在獲取UI層發(fā)送的UI操作消息后,根據(jù)所述UI操作消息調(diào)用接口函數(shù)從公共狀態(tài)模塊中查詢所述模塊標(biāo)識所屬的主功能模塊是否存在相互關(guān)聯(lián)的次功能模塊;
第一分發(fā)子單元,用于如果不存在相互關(guān)聯(lián)的次功能模塊,由消息分發(fā)模塊直接分發(fā)所述UI操作消息至所述模塊標(biāo)識所屬的主功能模塊中;
第二分發(fā)子單元,用于如果存在相互關(guān)聯(lián)的次功能模塊,由消息分發(fā)模塊根據(jù)預(yù)設(shè)規(guī)則將所述UI操作消息分解成與所述主功能模塊和次功能模塊對應(yīng)的功能消息,并將分解后的功能消息對應(yīng)分發(fā)至所述主功能模塊和所述次功能模塊中。
進(jìn)一步地,所述第二分發(fā)子單元包括:
關(guān)聯(lián)狀態(tài)查詢子單元,用于由消息分發(fā)模塊調(diào)用接口函數(shù)查詢所述次功能模塊的當(dāng)前功能狀態(tài);
沖突確定子單元,用于由消息分發(fā)模塊確定所述次功能模塊的當(dāng)前功能狀態(tài)與所述UI操作消息中包含的與所述功能操作對應(yīng)的功能狀態(tài)是否存在沖突;
第三分發(fā)子單元,用于如果存在沖突,由消息分發(fā)模塊生成包含與所述UI操作消息中包含的功能操作相反的功能操作的次功能消息,按照預(yù)設(shè)優(yōu)先級將所述UI操作消息和所述次功能消息分發(fā)至對應(yīng)的主功能模塊和次功能模塊中。
調(diào)用單元53,用于由功能模塊根據(jù)從消息分發(fā)模塊獲取的功能消息從設(shè)備層中調(diào)用對應(yīng)的接口函數(shù)和設(shè)備進(jìn)行通信,功能模塊執(zhí)行所述功能消息對應(yīng)的業(yè)務(wù)邏輯操作;
修改單元54,用于由功能模塊在執(zhí)行完所述功能消息對應(yīng)的業(yè)務(wù)邏輯操作后,調(diào)用接口函數(shù)修改公共狀態(tài)模塊中對應(yīng)的功能狀態(tài);
UI更新消息發(fā)送單元55,用于當(dāng)修改后的功能狀態(tài)與UI層的當(dāng)前功能狀態(tài)不一致時,由公共狀態(tài)模塊發(fā)送UI更新消息至UI層。
具體地,所述功能模塊至少為一個;當(dāng)所述功能模塊大于一個時,所述功能模塊并行處理由消息分發(fā)模塊分發(fā)過來的功能消息。
在本發(fā)明實施例中,通過由UI層將識別出來的UI操作消息發(fā)送至消息分發(fā)模塊;再由消息分發(fā)模塊根據(jù)從UI層獲取的UI操作消息確定對應(yīng)的功能消息,并分發(fā)所述功能消息至對應(yīng)的功能模塊中;由功能模塊根據(jù)從消息分發(fā)模塊獲取的功能消息從設(shè)備層中調(diào)用對應(yīng)的接口函數(shù)和設(shè)備進(jìn)行通信后,在功能模塊在執(zhí)行完所述功能消息對應(yīng)的業(yè)務(wù)邏輯操作后,調(diào)用接口函數(shù)修改公共狀態(tài)模塊中對應(yīng)的功能狀態(tài);當(dāng)功能狀態(tài)發(fā)生變化時,由公共狀態(tài)模塊發(fā)送UI更新消息至UI層,實現(xiàn)了在UI層向業(yè)務(wù)邏輯層發(fā)送UI操作消息后,可以立刻響應(yīng)新的UI操作,不需要等待設(shè)備功能執(zhí)行完成,提高了UI操作的響應(yīng)速率。
本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及步驟,能夠以電子硬件、或者計算機(jī)軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同裝置來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的裝置和單元的具體工作過程,可以參考前述裝置實施例中的對應(yīng)過程,在此不再贅述。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,上述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
上述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
上述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例上述裝置的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上上述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到狀態(tài)或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)上述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。