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