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