基于EP7312的新型嵌入式系統(tǒng)的實(shí)現(xiàn)
通過響應(yīng)鼠標(biāo)事件將圖形和相應(yīng)的事件關(guān)聯(lián)起來(lái)。 在viewml應(yīng)用層中原有兩個(gè)函數(shù)static int send(fl_widget* o, int event) :向http發(fā)送請(qǐng)求并將請(qǐng)求事例放入隊(duì)列;int vmlappwindow::handle(int event):調(diào)用線程對(duì)事例隊(duì)列進(jìn)行處理。除了實(shí)例化上面定義的函數(shù),在這里還加入處理網(wǎng)頁(yè)的保存,后退,前進(jìn)的函數(shù)都要用到的函數(shù)int vmlappwindow::temp(int event),其功能是臨時(shí)保存網(wǎng)頁(yè)。其處理流程為: (1)在處理事例隊(duì)列為非空時(shí),從隊(duì)列中取出一處理過的http請(qǐng)求 (2)將http請(qǐng)求結(jié)果用html三步:tokenizer , htnl-parser , html-layout進(jìn)行處理 (3)把http處理的結(jié)果加入臨時(shí)保存隊(duì)列中 (4)從處理事例隊(duì)列中刪除此請(qǐng)求結(jié)果 隊(duì)列采用鏈表實(shí)現(xiàn),當(dāng)需要從當(dāng)前頁(yè)面后退時(shí),其處理流程為: (1)捕獲鼠標(biāo)事件 (2)從隊(duì)首搜索至工作指針的下一個(gè)元素為當(dāng)前指針時(shí),當(dāng)前指針后退 (3)將當(dāng)前指針?biāo)赶虻脑卣{(diào)用html引擎處理 前進(jìn)和刷新功能實(shí)現(xiàn)流程與后退類似,這里就不贅敘了。保存當(dāng)前htm法略微復(fù)雜些,因?yàn)樵诒4骓?yè)面時(shí)還要同時(shí)保存頁(yè)面中的圖像文件,算法如下: (1)輸入存盤路徑和文件名 (2)對(duì)文件名進(jìn)行自動(dòng)處理如加上后綴htm,創(chuàng)建一個(gè)目錄,以files為后綴存放圖形文件 (3)從臨時(shí)保存隊(duì)列中取當(dāng)前指針,指針為非頭指針時(shí)取其所指向html文件,處理文件。 (4)將文件存入磁盤 基于嵌入式系統(tǒng)的硬件條件有限,無(wú)存儲(chǔ)量大的磁盤等設(shè)備.,且flash或rom等存儲(chǔ)介質(zhì)的價(jià)格相對(duì)于臺(tái)式機(jī)上使用的硬盤﹑光盤等是比較昂貴的 。所以嵌入式系統(tǒng)只能以小巧且高效來(lái)贏得市場(chǎng)。完善了窗口功能的系統(tǒng)完全能滿足大部分用戶的應(yīng)用需求了。 4 結(jié)束語(yǔ) 參考文獻(xiàn) |