一種嵌入式無線智能家居網(wǎng)關(guān)系統(tǒng)的設(shè)計方案
4.3 網(wǎng)關(guān)應(yīng)用程序設(shè)計
本次網(wǎng)關(guān)系統(tǒng)的應(yīng)用軟件架構(gòu)圖4所示。其主要功能是依據(jù)傳感器配置文件,分類解析WSN中的數(shù)據(jù),為用戶提供Socket數(shù)據(jù)服務(wù)和XML-RPC遠程調(diào)用服務(wù)。其工作流程是:網(wǎng)關(guān)程序啟動以后,從XML文件夾中解析所有的傳感器配置文件;*串口數(shù)據(jù),利用傳感器配置文件解析數(shù)據(jù)生成XML數(shù)據(jù)流;創(chuàng)建Socket服務(wù)器,等待客戶端數(shù)據(jù)請求,提供XML格式的Socket服務(wù);創(chuàng)建XML-Socket遠程調(diào)用服務(wù)器,完成用戶的XML請求。
圖4 網(wǎng)關(guān)系統(tǒng)的軟件架構(gòu)
程序設(shè)計思路如圖5所示:網(wǎng)關(guān)程序啟動,完成參數(shù)初始化,解析XML文件夾下的所有傳感器配置文件,創(chuàng)建3個類的實例。4個任務(wù)隊列。Serialcomm類創(chuàng)建兩條線程用讀串口和寫串口,這樣可以保證數(shù)據(jù)的實時性?;谕瑯拥牡览?,XMLParser類和XMLComm類也是雙線程并行工作。這樣就組成了從WSN和Internet的上行通道(圖5中的虛線表示),以及Internet到WSN的下行通道(圖5中的粗線表示)。
圖5 網(wǎng)關(guān)應(yīng)用設(shè)計思路圖
4.4 人機接口模塊的設(shè)計
人機接口使用的是項目中使用的觸摸屏是240×320 TFT彩屏LCD。該模塊主要設(shè)計以下4個菜單供用戶操作:文件菜單,查詢菜單,報警菜單和管理菜單。這部分的設(shè)計使用Qt設(shè)計。Qt是一個跨平臺的C++圖形用戶界面庫,由挪威TrollTech公司開發(fā),目前包括Qt/X11、基于Framebuffer的Qt/Embedded、快速開發(fā)工具Qt Designer以及國際化工具Qt Linguist等。Qt的良好封裝機制使其模塊化程度非常高,可重用性較好,對于用戶來說非常的方便。Qt API和開發(fā)工具對所有支持平臺都是一致的,從而可以進行獨立于平臺的程序開發(fā)和配置。它使得跨平臺軟件編程直觀、簡易和方便。
本文所有的可視化界面都是通過Qt自帶的工具Qt designer設(shè)計,它是一個可視化的界面設(shè)計工具,對于其每個組件內(nèi)部的關(guān)系通過編寫代碼來實現(xiàn)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論