基于電力線傳輸媒介的通信終端設(shè)計
處理抽象。本應(yīng)用中需要派生一個QTcp 類,實現(xiàn)傳輸層的TCP 協(xié)議。一般基于 TCP 的網(wǎng)絡(luò)應(yīng)用程序都要繼承QTcp 類,然后在ESTABLISHED 狀態(tài)中添加 子狀態(tài)完成特定的功能。在服務(wù)器端,利用量子框架實現(xiàn)一個QServer 類,是一個活動對象,繼承自QTcp 類。QServer 活動對象同客戶端TCP Socket 連接后,進入ESTABLISHED狀態(tài)中,通過調(diào)用Recvfrom 函數(shù)接收客戶端的請求,然后解析請求的服務(wù)類型,根據(jù)不同請求做出不同的服務(wù)。其軟件流程圖如圖1 所示:
圖 1 QServer 活動對象狀態(tài)流程圖
服務(wù)器端需要提供的具體服務(wù)包括:(1)當接收到客戶端打開家用電器的請求是,使用GPIO口發(fā)出電平信號,通過繼電器打開相關(guān)的電器。(2)監(jiān)控客廳中的溫度,在夏天如果超過33 度,則會主動控制制冷空調(diào)打開。在冬天低于10度就會打開制熱空調(diào)。并及時地把空調(diào)開關(guān)的信息通過TCP 協(xié)議傳送給遠程的終端。(3)當有人觸發(fā)了安防系統(tǒng),發(fā)生外部中斷時,使用服務(wù)器向客戶端發(fā)送報警信號。并通過GPRS給110 報警臺、物業(yè)服務(wù)公司監(jiān)控室、業(yè)主辦公室電話或業(yè)主手機等,發(fā)送預(yù)警信息。
四、 PC 客戶端
PC 機作為遠程客戶端,主要的工作是向服務(wù)器發(fā)出服務(wù)請求,并且在收到服務(wù)器的響應(yīng)或者報警信號后把收到的具體內(nèi)容在屏幕上顯示以達到遠程控制和報警的功能。在本例中,我采用的是Qt 的可視化編程環(huán)境。以下介紹客戶端的具體功能以及實現(xiàn):在客戶端可視化界面上按下日光燈或者電飯煲按鈕,就可以向服務(wù)器端發(fā)送一個開關(guān)家用電器的請求,在服務(wù)器端收到請求后就會去執(zhí)行;同理,按下A/D 按鈕,就可以發(fā)送一個讀取A/D 的請求,在收到服務(wù)器端采集的A/D 數(shù)值后,客戶端就會在屏幕上顯示;溫度的測量則是每隔兩秒就會發(fā)送一個請求,讀取當前的溫度,顯示在屏幕上,并且判斷是否要打開空調(diào),并從服務(wù)器端讀取其狀態(tài)信息,更新空調(diào)的開關(guān)狀態(tài)欄,顯示在文本框中;當服務(wù)器端安防系統(tǒng)檢測到有人入侵時,就會向客戶端發(fā)送報警信號,客戶端需要相應(yīng)修改當前的安防系統(tǒng)狀態(tài)為報警。
評論