CMMB標(biāo)準(zhǔn)緊急廣播m務(wù)的研究與應(yīng)用
④EBP客戶端核心層給用戶UI層發(fā)送EBP_RECEIVE_OK(如前三步失敗發(fā)送:EBP_RECEIVE_TIMEOUT)消息。
⑤用戶UI層根據(jù)步驟4發(fā)送的消息來(lái)做相應(yīng)的處理。a.如果是EBP_RECEIVE_OK消息,則使用關(guān)鍵接口中的4、5、6接口便可以獲取各個(gè)緊急廣播消息,并在界面上做響應(yīng)展現(xiàn)。接口4內(nèi)部會(huì)去判斷并刪除過(guò)期的緊急廣播消息。
當(dāng)新接收的緊急廣播消息中有緊急程度為1級(jí)或者2級(jí)的緊急廣播時(shí),直接彈出圖4所示的界面。新接收的緊急廣播消息緊急程度都是3級(jí)或者4級(jí)時(shí),僅需要給用戶1個(gè)閃爍提示,由用戶選擇是否觀看緊急程度不太高的廣播消息。b.如果是EBP_RECEIVE_TIMEOUT消息,本客戶端采用的策略是首先調(diào)用ebp_cancel_receive接口,對(duì)此次接收失敗的環(huán)境進(jìn)行清理,然后過(guò)10分鐘再次進(jìn)入步驟②。本文引用地址:http://www.ex-cimer.com/article/152281.htm
(5)減少客戶端移植工作量的探討
嵌入式軟件開發(fā)與PC軟件開發(fā)很大的區(qū)別是,嵌入式軟件設(shè)計(jì)中必須考慮目標(biāo)機(jī)的差異性,如不同屏幕尺寸、不同分辨率、不同硬件接口、不同GUI系統(tǒng),甚至不同操作系統(tǒng)。如果本EBP客戶端軟件的設(shè)計(jì)中沒(méi)有考慮便于移植的因素,那么適配這些適用于CMMB技術(shù)的手機(jī)、游戲機(jī)、PDA、車載GPS、MP4,所需工作量將是非常大的。正是考慮到這個(gè)因素,所以本客戶端做了以下2方面工作來(lái)簡(jiǎn)化移植工作。
①邏輯與GUI的解耦,也就是圖3所展現(xiàn)的核心層與UI層的分離。核心層的職責(zé)是管理緊急廣播消息的接收、解析、本地管理。UI層的職責(zé)是監(jiān)聽核心層發(fā)送的EBP_RECEIVE_OK消息,收到該消息就利用接口層提供的3個(gè)接口ebp_create_cursor、ebp_get_nextcur、ebp_getebp,像使用迭代器那樣訪問(wèn)接收到的緊急廣播數(shù)據(jù)。這樣的好處之一是,在支持相同GUI系統(tǒng)的終端間移植該客戶端時(shí),在用戶UI層不需要任何的移植工作。好處二是,該層使用EBP_CURSOR(當(dāng)前版本定義是typedefvoid_t*CMMB_EBP_CURSOR;)訪問(wèn)頂層數(shù)據(jù),如果以后核心層使用的數(shù)據(jù)結(jié)構(gòu)改變,如“typedef int CMMB_EBP_CURSOR;”,也就是說(shuō)存儲(chǔ)緊急廣播消息由鏈表改為數(shù)組,該層也不需要作任何改變。
②核心層中的分層。核心層之所以分為3層的原因是,接口抽象層和EBP解析層在移植的過(guò)程中可以保持不變,而本地管理層在移植的過(guò)程中可能因?yàn)槲募到y(tǒng)不同而必須修改具體操作。所以在核心層中將該層抽取出來(lái),在移植客戶端核心層時(shí)只需要關(guān)注該層即可。將EBP解析層與接口層分離的目的是,給用戶UI層僅暴露出接口層的接口以及數(shù)據(jù)結(jié)構(gòu),使其關(guān)心的內(nèi)容局限于自己所需要的數(shù)據(jù)結(jié)構(gòu),不需要去關(guān)心不會(huì)直接使用且可能會(huì)因?yàn)榧軜?gòu)上的調(diào)整而發(fā)生變化的問(wèn)題。這樣如果由第三方來(lái)實(shí)現(xiàn)用戶UI層,可以簡(jiǎn)化其開發(fā)。
在最初的原型設(shè)計(jì)中,并沒(méi)有采取這種分層的結(jié)構(gòu),而是將邏輯與GUI混合在一起,在移植到不同的平臺(tái)時(shí)發(fā)現(xiàn)增加的工作量十分大且極易出錯(cuò)。所以決定在移植前采取重構(gòu),重構(gòu)后的結(jié)構(gòu)就是本文所描述的設(shè)計(jì)架構(gòu),后來(lái)的移植工作量就很少,也很簡(jiǎn)單了。本次設(shè)計(jì)令筆者切身感受到這種邏輯與UI分離的思想帶來(lái)的好處。
2.3 運(yùn)行效果截圖
本客戶端接收過(guò)程是后臺(tái)接收,運(yùn)行效果如圖4所示,該圖是在支持CMMB的Windows Mobile5手機(jī)上運(yùn)行,用SuperSnap工具截屏得到的。左邊的標(biāo)簽表示接收緊急廣播消息的時(shí)間,通過(guò)標(biāo)簽可以切換右側(cè)內(nèi)容,觀看具體的緊急廣播消息。所使用的測(cè)試數(shù)據(jù)為中國(guó)數(shù)字電視論壇上的CMMBMFS測(cè)試樣本碼流。
結(jié) 語(yǔ)
以上的設(shè)計(jì)和實(shí)現(xiàn)充分考慮了空間和效率這兩大要素,通過(guò)和市面上其他產(chǎn)品進(jìn)行比較,該系統(tǒng)能夠在存儲(chǔ)空間更小、處理速度更慢的移動(dòng)設(shè)備上流暢地運(yùn)行,取得了令人滿意的效果。
本設(shè)計(jì)中的EBP客戶端程序能夠成功接收CMMB網(wǎng)絡(luò)中多個(gè)頻點(diǎn)發(fā)送的緊急廣播消息,并且客戶端具有一定的鍵壯性,可以通過(guò)較少的移植工作量使其工作在適用于CMMB技術(shù)的手機(jī)、游戲機(jī)、PDA、車載GPS、MP4,達(dá)到了預(yù)期目的。相信隨著CMMB網(wǎng)絡(luò)的日漸成熟,CMMB標(biāo)準(zhǔn)的緊急廣播應(yīng)用必然會(huì)在我國(guó)災(zāi)害預(yù)警中起到重要作用。
評(píng)論