<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CMMB標(biāo)準(zhǔn)緊急廣播m務(wù)的研究與應(yīng)用

          CMMB標(biāo)準(zhǔn)緊急廣播m務(wù)的研究與應(yīng)用

          作者: 時(shí)間:2009-11-17 來源:網(wǎng)絡(luò) 收藏

          2 EBP客戶端在終端上的設(shè)計(jì)實(shí)現(xiàn)
          2.1 EBP客戶端的設(shè)計(jì)模型
          本EBP(Emergeney Broadcasting Protocol,協(xié)議)客戶端從解析到展現(xiàn)一共分為以下4層,如圖3所示。

          本文引用地址:http://www.ex-cimer.com/article/152281.htm

          EBP解析層:主要負(fù)責(zé)從協(xié)議棧提供的位于0時(shí)隙(MF_ID=0)中表標(biāo)識(shí)為0x10的復(fù)用子幀中解析出消息,并且抽象出相應(yīng)的數(shù)據(jù)結(jié)構(gòu)供上層使用。該層可編譯成庫(kù),在移植時(shí)可以不作修改。
          EBP本地管理層:主要負(fù)責(zé)已經(jīng)接收的消息本地相關(guān)的管理,如保存、獲取已接收的緊急廣播消息,刪除過期的緊急廣播消息等。該層在移植時(shí)需要做少量適配相應(yīng)終端文件系統(tǒng)的工作。
          接口抽象層:根據(jù)以上2層抽象出供用戶UI層使用的統(tǒng)一接口。用戶UI層使用的所有接口都通過該層提供,并保持不變,在一定程度上減少了用戶UI層的移植工作。用戶UI層:主要負(fù)責(zé)緊急廣播消息數(shù)據(jù)對(duì)用戶的展現(xiàn)。針對(duì)不同的終端,如支持技術(shù)的手機(jī)、游戲機(jī)、PDA、車載GPS、MP4,其屏幕大小、分辨率、支持的UI系統(tǒng)等都可能存在差異,所以將本EBP客戶端移植到不同終端上時(shí)主要工作便是移植該層。抽象接口層、EBP本地管理層、EBP解析層構(gòu)成了EBP客戶端的核心。
          2.2 EBP客戶端的處理流程
          (1)關(guān)鍵消息
          ①需要協(xié)議棧通知的消息:MSG_EBP_COME。當(dāng)CMMB協(xié)議棧發(fā)現(xiàn)有緊急廣播消息時(shí),給EBP客戶端發(fā)送預(yù)先定義好的MSG_EBP_COME消息。
          ②EBP客戶端核心給UI發(fā)送的消息:a.EBP_RECEIVE_OK,客戶端成功接收到新的緊急廣播消息,需要UI展現(xiàn)層做相應(yīng)的展現(xiàn);b.EBP_RECEIVE_TIMEOUT,客戶端接收緊急廣播消息超時(shí)失敗。
          (2)關(guān)鍵數(shù)據(jù)結(jié)構(gòu)
          ①EBP_Index:緊急廣播索引,圖3所示的本地管理層通過該數(shù)據(jù)結(jié)構(gòu)來管理本地保存的緊急廣播消息。
          ②EBP_Table:緊急廣播表,對(duì)應(yīng)圖2所示的表標(biāo)識(shí)為0x10的控制信息表的格式,圖3的解析層中第1次初步解析出的數(shù)據(jù)用該結(jié)構(gòu)保存。
          ③EBP_MessageInfo:非觸發(fā)消息,圖3的解析層中解析出的非觸發(fā)消息用該結(jié)構(gòu)保存。
          ④EBP_TriggerInfo:觸發(fā)消息,圖3的解析層中解析出的觸發(fā)消息用該結(jié)構(gòu)保存。
          ⑤EBF_MsgInfo:緊急廣播消息,由于1個(gè)緊急廣播消息只可能是觸發(fā)或者非觸發(fā)中的1種,為了邏輯上和流程上便于處理,該結(jié)構(gòu)聯(lián)合上述結(jié)構(gòu)3、4,統(tǒng)一為1個(gè)結(jié)構(gòu)。
          ⑥EBP:對(duì)本地管理層暴露的緊急廣播消息結(jié)構(gòu),對(duì)EBP_MsgInfo的封裝,加上一些上層需要用到的屬性域。
          ⑦EBP_CURSOR:本地管理層定義的數(shù)據(jù)結(jié)構(gòu),供接口層使用,通過該結(jié)構(gòu)訪問響應(yīng)的緊急廣播消息。
          ⑧EBP_LangContent:存儲(chǔ)非觸發(fā)緊急廣播消息中的語種相關(guān)信息。
          ⑨EBP_Ext:存儲(chǔ)非觸發(fā)緊急廣播消息中輔助信息的相關(guān)內(nèi)容。
          (3)關(guān)鍵接口
          (D int32_t ebp_receive_data(uint8_t*path);功能:接收緊急廣播表。
          ②static int32_t ebp_table_decoder(uint8_t*bur,int32_t len);
          功能:解析緊急廣播表。
          ③static int32_t ebp_message_decoder(uint8_t* *buf_adr,uint32_t len);
          功能:解析緊急廣播具體內(nèi)容。
          ④CMMB_EBP_CURSOR ebp_create_cursor(void_t);
          功能:創(chuàng)建游標(biāo)。
          ⑤CMMB_EBP_CURSOR ebp_get_nextcur(EBP_CURSOR cur);
          功能:獲取當(dāng)前游標(biāo)cur游標(biāo)的下一個(gè)游標(biāo)。
          ⑥int8_t ebp_getebp(EBP_CURSOR cur,EBP_MESSAGE*msg);
          功能:獲取cur游標(biāo)對(duì)應(yīng)的緊急廣播消息具體內(nèi)容填充在輸出參數(shù)msg中。
          ⑦static int32_t ebp_checkout(void_t);
          功能:檢查索引并刪除過期EBP索引及相關(guān)文件。
          ⑧int8_t ebp_cancel_receive(void_t);
          功能:取消緊急廣播消息接收。
          ⑨int32_t ebp_set_curfreq_ebpupdate(uint32_t cur_freq);
          功能:設(shè)置頻點(diǎn)cur_freq的緊急廣播消息更新序號(hào)。
          ⑩static int8_t ebp_read_sared_ebp(EBP*ebp,EBP_Index*index)
          功能:讀取本地保存的緊急廣播。
          ⑩int32_t ebp_suspend();
          功能:阻塞緊急廣播消息接收線程。
          ⑩int32_t ebp_active(void_t*param);
          功能:激活緊急廣播消息接收線程。
          (4)主要流程
          本EBP客戶端主要流程分為以下幾步:
          ①本客戶端啟動(dòng)后,等待CMMB協(xié)議棧發(fā)送MSG_EBP_COME消息。收到該消息后,表明當(dāng)前CMMB網(wǎng)絡(luò)中有緊急廣播消息。EBP客戶端使用ebp_receive_data(uint8_t*path)接口接收緊急廣播表。該接口同時(shí)設(shè)置標(biāo)志位,在其進(jìn)行緊急廣播消息接收的過程中,暫不響應(yīng)新的MSG_EBP_COME消息。
          ②用ebp_table_decoder接口對(duì)緊急廣播表進(jìn)行解析,得到1組EBP_Table數(shù)據(jù)。
          ③用ebp_message_decoder接口對(duì)EBP_Table數(shù)據(jù)進(jìn)行進(jìn)一步解析,得到1組EBP_MessageInfo或EBP_TriggerInfo數(shù)據(jù),并檢查刪除已經(jīng)接收過的消息,然后將新收到的緊急廣播消息封裝為EBP結(jié)構(gòu),并加入到已接收的EBP鏈上。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();