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