基于ARM的無(wú)線氣象數(shù)據(jù)通信系統(tǒng)設(shè)計(jì)
3.2 網(wǎng)絡(luò)通信程序設(shè)計(jì)
網(wǎng)絡(luò)傳輸是本設(shè)計(jì)的主要任務(wù)之一,將數(shù)據(jù)通信器接收的數(shù)據(jù)經(jīng)過(guò)Socket發(fā)送給遠(yuǎn)程服務(wù)器。而Qt提供了QTcpSocket類(lèi),用于編寫(xiě)TCP客戶端的應(yīng)用程序。QTcpSocket類(lèi)提供了一個(gè)有緩沖的TCP連接,可以用來(lái)實(shí)現(xiàn)其他標(biāo)準(zhǔn)協(xié)議也可以用來(lái)實(shí)現(xiàn)自定義的協(xié)議。OTcpSocket采用異步工作方式,它依靠Qt事件循環(huán)發(fā)現(xiàn)外來(lái)數(shù)據(jù)和向外發(fā)送數(shù)據(jù),并以信號(hào)的方式報(bào)告狀態(tài)的改變或產(chǎn)生的錯(cuò)誤,一旦網(wǎng)絡(luò)的某一種狀態(tài)發(fā)生改變(如網(wǎng)絡(luò)斷開(kāi)),就會(huì)發(fā)出信號(hào)(如connectionClosed()),再通過(guò)信號(hào)與槽函數(shù)相關(guān)聯(lián)進(jìn)行處理。服務(wù)器設(shè)置界面如圖5所示。本文引用地址:http://www.ex-cimer.com/article/148802.htm
下面是網(wǎng)絡(luò)傳輸相應(yīng)槽函數(shù):
4 結(jié)論
首次使用時(shí),在系統(tǒng)設(shè)置界面對(duì)服務(wù)器地址、服務(wù)器端口、經(jīng)度、緯度、臺(tái)站號(hào)進(jìn)行設(shè)置,在串口設(shè)置界面對(duì)串口的波特率、數(shù)據(jù)位、停止位等信息進(jìn)行設(shè)置。設(shè)置完成后連接服務(wù)器并打開(kāi)串口,在數(shù)據(jù)顯示界面將會(huì)實(shí)時(shí)動(dòng)態(tài)顯示各傳感器節(jié)點(diǎn)發(fā)來(lái)的氣象數(shù)據(jù)。與服務(wù)器的連接狀態(tài)等信息在程序狀態(tài)欄會(huì)有相關(guān)提示,一旦與服務(wù)器斷開(kāi),系統(tǒng)將會(huì)自動(dòng)連接服務(wù)器并將這段時(shí)間內(nèi)收到的數(shù)據(jù)保存起來(lái)等待連接成功后重新發(fā)送。
系統(tǒng)已經(jīng)完成制作調(diào)試,效果良好,可以成功地實(shí)現(xiàn)數(shù)據(jù)通信、處理、存儲(chǔ)、網(wǎng)絡(luò)連接以及網(wǎng)絡(luò)異常處理等功能。本系統(tǒng)低成本、無(wú)布線、可擴(kuò)展性強(qiáng)等特點(diǎn),在自動(dòng)氣象站應(yīng)用中具有廣泛的潛在市場(chǎng)和應(yīng)用空間。
評(píng)論