嵌入式智能家庭網(wǎng)關(guān)的軟件設(shè)計(jì)方案
智能家庭網(wǎng)關(guān)的實(shí)現(xiàn),PC機(jī)完全可以滿足要求。
雖然處理能力較強(qiáng),但以PC 機(jī)為載體存在著一些的缺點(diǎn),如成本昂貴,體積較大,不易移動(dòng)等,所以用其當(dāng)作硬件載體性價(jià)比太低。隨著現(xiàn)代電子技術(shù)的發(fā)展,嵌入式技術(shù)得到了空前的發(fā)展。本設(shè)計(jì)正是基于嵌入式系統(tǒng)進(jìn)行設(shè)計(jì)的。
1 操作系統(tǒng)與開發(fā)工具
1.1 Windows CE
本系統(tǒng)的操作系統(tǒng)采用的是微軟公司的嵌入式Windows CE 5.0.
Windows CE 是一個(gè)典型的嵌入式操作系統(tǒng),它是微軟專門為信息設(shè)備、移動(dòng)應(yīng)用、消費(fèi)類電子產(chǎn)品和嵌入式應(yīng)用等非PC 領(lǐng)域設(shè)計(jì)的操作系統(tǒng)產(chǎn)品。開發(fā)人員可以利用豐富靈活的控件庫(kù)在Windows CE環(huán)境下為嵌入式應(yīng)用建立各種專門的圖形用戶界面。
Windows CE 甚至還能支持諸如手寫體和聲音識(shí)別、動(dòng)態(tài)影像、3D圖形等特殊應(yīng)用。
Windows CE被設(shè)計(jì)成為一種高度模塊化的操作系統(tǒng),以適應(yīng)不同的類型智能設(shè)備對(duì)于操作系統(tǒng)映像大小的不同要求,系統(tǒng)設(shè)計(jì)者可以根據(jù)設(shè)備的性質(zhì)只選擇那些必要的模塊或模塊中的組件包含進(jìn)操作系統(tǒng)映像,其中內(nèi)核(Kernel)、圖形窗口事件子系統(tǒng)(GWES)、文件系統(tǒng)(Filesys)和通信(Communication)模塊是4個(gè)主要的模塊。
總之,Windows CE設(shè)計(jì)簡(jiǎn)單靈活,是為適應(yīng)嵌入式而推出的新型操作系統(tǒng),尤其友好的圖形界面正好迎合本設(shè)計(jì)的菜單界面開發(fā),成為本設(shè)計(jì)所采用的嵌入式操作系統(tǒng)。
1.2 Microsoft Visual Studio
本系統(tǒng)開發(fā)工具是Microsoft Visual Studio,采用的語(yǔ)言是C# .Microsoft Visual Studio 為Windows CE提供了可視化的開發(fā)環(huán)境。
Microsoft Visual Studio是微軟公司推出的開發(fā)環(huán)境。是目前流行的Windows 平臺(tái)應(yīng)用程序開發(fā)環(huán)境NET Compact Framework 是微軟為移動(dòng)智能設(shè)備開發(fā)的運(yùn)行環(huán)境,同時(shí)提供調(diào)用本機(jī)API的能力。
.NET Compact Framework 為設(shè)備提供了強(qiáng)大的。NET Framework 編程平臺(tái)。它是。NET Framework完整版的一個(gè)子集。為了適應(yīng)它所在設(shè)備本身的限制,.NET Compact Framework 大約實(shí)現(xiàn)了完整版框架30%的類和方法。
2 需求分析
2.1 需求分析
家庭網(wǎng)關(guān)的實(shí)際功能規(guī)劃應(yīng)該根據(jù)用戶的實(shí)際需求展開,對(duì)于一般住戶,家中普遍具有水電表及各種電器等,因此這里主要針對(duì)這幾項(xiàng),把系統(tǒng)在功能的實(shí)現(xiàn)分為以下幾大類:
(1) 設(shè)置:主要用于家庭網(wǎng)關(guān)本身的管理,以及增刪電器設(shè)備、修改遠(yuǎn)程服務(wù)器的IP和端口等;(2) 電器:包含幾種具有代表性的家庭常用電器,如熱水器、空調(diào)、冰箱等;(3) 抄表:管理各種抄表系統(tǒng),如水表、電表、煤氣量表等。
2.2 界面需求分析
界面的設(shè)計(jì)要求滿足以下幾點(diǎn):
(1) 界面美觀、簡(jiǎn)潔、用戶界面友好,易于被用戶接受;(2) 對(duì)菜單采用分級(jí)方式管理,易于用戶使用;(3) 使用盡可能大的字體,不會(huì)出現(xiàn)誤單擊操作,良好的人機(jī)交流。
2.3 安全需求分析
系統(tǒng)在安全管理方面分以下幾點(diǎn):
(1) 為了方便用戶,初次使用不需要密碼登錄;(2) 用戶可以根據(jù)需要是否設(shè)置密碼;(3) 根據(jù)需要可以對(duì)已經(jīng)設(shè)置的密碼進(jìn)行修改和刪除。
3 家庭網(wǎng)關(guān)的軟件設(shè)計(jì)
嵌入式智能家庭網(wǎng)關(guān)的具體功能包括:
本地控制:用戶通過(guò)網(wǎng)關(guān)上的鍵盤和顯示屏,對(duì)家用設(shè)備進(jìn)行現(xiàn)場(chǎng)控制。
遠(yuǎn)程控制:遠(yuǎn)程用戶可以通過(guò)Internet對(duì)家庭設(shè)備進(jìn)行控制和查詢。
其系統(tǒng)結(jié)構(gòu)圖如圖1 所示。
圖1 家庭網(wǎng)關(guān)應(yīng)用結(jié)構(gòu)圖
家庭網(wǎng)關(guān)對(duì)內(nèi)連接了家庭網(wǎng)絡(luò)、信息家電、智能儀表、消防與安防設(shè)備等。針對(duì)不同模塊的特點(diǎn),可以設(shè)計(jì)與家庭網(wǎng)關(guān)的不同接口。為了與現(xiàn)有設(shè)備的兼容及滿足各個(gè)組成部分的功能需求,與家庭網(wǎng)絡(luò)部分的連接采用RJ-45接口標(biāo)準(zhǔn);信息家電的種類繁多,無(wú)法用統(tǒng)一的接口來(lái)互聯(lián),可以選擇信息開關(guān)或繼電器等配合紅外遙控器使用;水表、電表、煤氣表等智能儀表設(shè)備一般是每月一次查看且需要傳輸?shù)臄?shù)據(jù)量不大,所以可以RS-485 或CAN 總線這些較為簡(jiǎn)單的總線接口標(biāo)準(zhǔn);對(duì)于消防和安防設(shè)備,長(zhǎng)期處于布防、監(jiān)控狀態(tài),且諸如視頻圖像對(duì)帶寬和速率要求比較嚴(yán)格,所以采用同軸電纜或光纖接入。
{$page$}
3.1 總體架構(gòu)
主程序的流程圖如圖2 所示。上電開機(jī)后程序進(jìn)入初始化(如判斷是否有預(yù)設(shè)密碼),在主窗體中有代表幾個(gè)不同類型的圖標(biāo),點(diǎn)擊不同的圖標(biāo)按鈕可以進(jìn)入相應(yīng)的子菜單中,對(duì)子菜單進(jìn)行操作。
圖2 主程序的流程圖
3.2 主窗體
主窗體要求簡(jiǎn)單、直觀。主窗口只顯示分成的幾個(gè)類型及所需的操作按鈕。為了更直觀的表示各個(gè)類型,分別使用相應(yīng)的圖標(biāo)來(lái)表示,以示區(qū)別,并在圖標(biāo)上方的中間顯示該類型的名稱,并且把選中狀態(tài)的類型顯示為浮動(dòng)狀態(tài)。主窗口界面如圖3所示。
圖3 主窗體界面
3.3 子窗體
3.3.1 "設(shè)置"子窗體
"設(shè)置"子窗體的界面如圖4 所示。
圖4 "設(shè)置"子窗體界面
(1) 修改密碼。
修改密碼時(shí),首先比較用戶輸入的原密碼經(jīng)過(guò)加密后與從Config.xml文件讀出的相應(yīng)信息進(jìn)行比較,若不同則提示用戶重新輸入,若相同則再次比較用戶兩次輸入的新密碼,只有兩次輸入一致才把新密碼替換原始密碼,然后將新密碼加密后重新寫入Config.xml文件中,下次登錄時(shí)使用。修改密碼流程圖如圖5所示。
圖5 修改密碼流程圖
(2) 添加/移除設(shè)備。
加載Config.xml數(shù)據(jù)并相應(yīng)填入Combox控件中,選擇Combox控件中的的設(shè)備名稱,然后點(diǎn)擊"添加"或"移除"按鈕對(duì)設(shè)備進(jìn)行增刪,并修改Config.xml中對(duì)應(yīng)的值。
(3) 設(shè)置服務(wù)器參數(shù)可以點(diǎn)擊"查看IP和端口"從Config.xml中獲取IP和端口;點(diǎn)擊"修改IP和端口"修改Comfig.xml中的對(duì)應(yīng)信息,并與服務(wù)器進(jìn)行重新連接。
{$page$}
3.3.2 "電器"子窗體
在"電器"子窗體中點(diǎn)擊對(duì)應(yīng)的電器設(shè)備彈出相應(yīng)的設(shè)備控制面板(如熱水器)對(duì)該設(shè)備進(jìn)行控制。熱水器面板中的初始化函數(shù)對(duì)設(shè)備的溫度和狀態(tài)進(jìn)行采集并把采集的數(shù)據(jù)顯示到相應(yīng)的控件上。熱水器控制面板界面如圖6所示。
圖6 熱水器控制面板界面
點(diǎn)擊"確定"按鈕,根據(jù)左邊NumericUpDown控件的數(shù)值和CheckBox控件來(lái)控制熱水器的溫度和開關(guān)、點(diǎn)擊"查看水溫" 按鈕可以從右邊的TextBox控件和CheckBox控件中看到當(dāng)前熱水器的溫度和開關(guān)狀態(tài)、點(diǎn)擊"返回" 按鈕退出。熱水器控制程序流程圖如圖7所示。
圖7 熱水器控制程序流程圖
3.3.3 "抄表"子窗體
可實(shí)現(xiàn)抄錄電表、水表和煤氣表的讀數(shù)。因?yàn)槌硐到y(tǒng)只需實(shí)現(xiàn)讀操作,而沒(méi)有寫操作,所以TextBox是只讀屬性。界面如圖8所示。
圖8 "抄表"子窗體
3.4 Internet遠(yuǎn)程控制
把家庭網(wǎng)關(guān)接入Internet并在"設(shè)置"子窗體的"Server"選項(xiàng)卡(見圖4)中輸入設(shè)置服務(wù)器的IP 地址和端口號(hào),然后啟動(dòng)網(wǎng)絡(luò)通信模塊,創(chuàng)建Winsock套接字,綁定IP地址和端口號(hào),服務(wù)器了保存了該系統(tǒng)的套接字。以后遠(yuǎn)程用戶通過(guò)Internet從服務(wù)器獲得保存在服務(wù)器端該系統(tǒng)Winsock 套接字并與處于偵聽狀態(tài)的套接字連接,從而對(duì)該系統(tǒng)進(jìn)行控制。 遠(yuǎn)程控制主機(jī)通過(guò)瀏覽器在遠(yuǎn)端可以實(shí)時(shí)地控制家用設(shè)備,從而實(shí)現(xiàn)遠(yuǎn)程控制的目標(biāo)。
家庭網(wǎng)關(guān)的網(wǎng)絡(luò)模塊主要有兩大功能:一方面負(fù)責(zé)對(duì)遠(yuǎn)程用戶控制命令的接收和分析,再根據(jù)結(jié)果控制家居設(shè)備;另一方面通過(guò)Internet將用戶需要獲取的家居設(shè)備狀態(tài)送到遠(yuǎn)程瀏覽器。
下面以對(duì)熱水器的控制為例進(jìn)行說(shuō)明。熱水器的遠(yuǎn)程控制界面如圖9所示。
圖9 熱水器的遠(yuǎn)程控制界面
(1) 獲取熱水器的狀態(tài)。
獲取熱水器的狀態(tài)是由"獲取"按鈕來(lái)處理的,它獲取熱水器的在當(dāng)前的溫度和開關(guān)狀態(tài),并顯示在文本框和復(fù)選框。
(2) 設(shè)置熱水器的狀態(tài)。
設(shè)置熱水器的狀態(tài)是由"設(shè)置"按鈕來(lái)處理的,它設(shè)置熱水器的開關(guān)和熱水器的要加熱到的溫度。
發(fā)送數(shù)據(jù)到設(shè)備的核心代碼如下:
3.5 文件的讀寫操作
在文件操作的過(guò)程中,因?yàn)檫@里并不是為了純文本的操作,而只是為了要提取或存儲(chǔ)配置的信息,所以需要精確地定位到對(duì)應(yīng)的信息在文件中的位置,為了實(shí)現(xiàn)這個(gè)要求,本設(shè)計(jì)對(duì)XML(可擴(kuò)展標(biāo)記語(yǔ)文)文件進(jìn)行了讀寫操作。XML具有易于編輯、便于管理、適于存檔、容易查詢等諸多優(yōu)點(diǎn)。
其中有一個(gè)只對(duì)文件進(jìn)行讀操作,采用的方法是對(duì)XML 文件進(jìn)行反序列化操作,把XML 文件加載到內(nèi)存中去。
4 結(jié)語(yǔ)
本文介紹了嵌入式智能家庭網(wǎng)關(guān)的軟件設(shè)計(jì)過(guò)程,主體界面采用的是Microsoft Visual Studio 編寫,應(yīng)用于硬件上采用觸摸屏作為輸入輸出設(shè)備的系統(tǒng)。Internet遠(yuǎn)程控制功能給居家生活帶來(lái)更多安全、舒適和便利。為現(xiàn)代智能家庭常用的一些設(shè)備的統(tǒng)一管理提供一個(gè)可行的管理框架和實(shí)現(xiàn)方案。