999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Qt on Android平臺(tái)的空氣質(zhì)量監(jiān)測(cè)系統(tǒng)手機(jī)客戶端設(shè)計(jì)

2017-03-15 17:05:53曹龍劉煒曾力
電子技術(shù)與軟件工程 2017年2期
關(guān)鍵詞:界面用戶信息

曹龍+劉煒+曾力

摘 要 利用Qt on Android平臺(tái)設(shè)計(jì)出了一種針對(duì)空氣質(zhì)量監(jiān)測(cè)系統(tǒng)的Android手機(jī)客戶端,該客戶端實(shí)現(xiàn)了手機(jī)與服務(wù)器的信息交互,使得用戶可以通過(guò)手機(jī)方便快捷的查詢選定監(jiān)測(cè)端當(dāng)前的空氣質(zhì)量數(shù)據(jù),實(shí)現(xiàn)了室內(nèi)環(huán)境監(jiān)測(cè)的網(wǎng)絡(luò)化。同時(shí)為C/C++程序員在Android平臺(tái)開(kāi)發(fā)APP提供了范例。

【關(guān)鍵詞】Qt on Android 空氣質(zhì)量 監(jiān)測(cè) C/S XML

1 引言

Android平臺(tái)已成為智能手機(jī)領(lǐng)域舉足輕重的平臺(tái),由于其只支持Java開(kāi)發(fā)應(yīng)用,對(duì)C/C++開(kāi)發(fā)的支持有限,大多數(shù)C/C++程序員若想進(jìn)行Android平臺(tái)的開(kāi)發(fā)只好轉(zhuǎn)型。而Qt on Android的出現(xiàn)為眾多C/C++程序員提供了福音。利用Qt Creator可以輕松將Qt程序部署到Android平臺(tái)上,從而實(shí)現(xiàn)Qt在Android平臺(tái)上的應(yīng)用。筆者設(shè)計(jì)了一種針對(duì)空氣質(zhì)量監(jiān)測(cè)系統(tǒng)的Android手機(jī)客戶端,為操作人員提供更加靈活的環(huán)境監(jiān)測(cè)手段,隨時(shí)獲取環(huán)境信息。

2 手機(jī)客戶端的軟件功能

空氣質(zhì)量監(jiān)測(cè)系統(tǒng)手機(jī)客戶端的主要作用是按照用戶的需求,向服務(wù)器發(fā)出相應(yīng)的請(qǐng)求,從而獲取當(dāng)前室內(nèi)的溫度、濕度、光照強(qiáng)度、PM2.5和氨硫類氣體等環(huán)境數(shù)據(jù)信息,并對(duì)數(shù)據(jù)進(jìn)行解析后存儲(chǔ),通過(guò)相應(yīng)的控件在手機(jī)上顯示出來(lái),從而實(shí)現(xiàn)室內(nèi)環(huán)境監(jiān)測(cè)的網(wǎng)絡(luò)化、智能化。

手機(jī)客戶端軟件主要由用戶登錄模塊、用戶注冊(cè)模塊、通信設(shè)置模塊、室內(nèi)環(huán)境數(shù)據(jù)顯示界面,數(shù)據(jù)曲線繪制模塊等組成。其結(jié)構(gòu)如圖1所示。

登錄模塊:主要實(shí)現(xiàn)用戶的登錄功能。當(dāng)手機(jī)客戶端發(fā)出登錄請(qǐng)求后,服務(wù)器匹配用戶數(shù)據(jù)庫(kù)的信息,若匹配成功,則返回登錄成功的指令,進(jìn)入數(shù)據(jù)顯示界面。

注冊(cè)模塊:為用戶提供注冊(cè)功能。用戶確定注冊(cè)信息后,服務(wù)器將用戶名和密碼信息查詢用戶數(shù)據(jù)庫(kù)中用戶是否已存在,若用戶名不存在,則完成注冊(cè),否則提示用戶出錯(cuò)。

網(wǎng)絡(luò)設(shè)置:設(shè)置客戶端網(wǎng)絡(luò)連接的服務(wù)器IP和端口。

數(shù)據(jù)顯示界面:客戶端登錄后會(huì)實(shí)時(shí)顯示當(dāng)前時(shí)段各個(gè)終端的數(shù)據(jù)情況;點(diǎn)擊對(duì)應(yīng)的圖標(biāo)會(huì)進(jìn)入數(shù)據(jù)曲線顯示界面。如圖2所示。

客戶端中界面設(shè)計(jì)采用堆棧的思想,使用QStackedWidget類對(duì)各個(gè)界面進(jìn)行存放,將不同的widget使用UI控件類將其放進(jìn)該類的對(duì)象中,并進(jìn)行編號(hào),也可顯式編號(hào),默認(rèn)從0開(kāi)始。利用Qt中的信號(hào)與槽機(jī)制(singnals and slots),可以很好的實(shí)現(xiàn)各個(gè)界面的切換,以界面中的“登錄”功能為例,當(dāng)用戶點(diǎn)擊“DL_Btn”控件(登錄按鈕名稱)時(shí),控件發(fā)出信號(hào)clicked(),從而觸發(fā)與之相關(guān)聯(lián)的槽函數(shù)on_DL_Btn_clicked(),在函數(shù)中處理登錄過(guò)程的信息交互,當(dāng)滿足登錄條件時(shí),調(diào)用setCurrentIndex(int) 來(lái)顯示該頁(yè)號(hào)的widget。進(jìn)入數(shù)據(jù)顯示界面。

3 手機(jī)客戶端與服務(wù)器的通信

該平臺(tái)采用C/S(Client/Server)結(jié)構(gòu),客戶端程序與服務(wù)器通過(guò)Socket套接字建立TCP/IP連接,從而實(shí)現(xiàn)客戶端與服務(wù)器的網(wǎng)絡(luò)數(shù)據(jù)通信。在Qt中QTcpSocket類為TCP提供了一個(gè)接口,可以使用QTcpSocket來(lái)實(shí)現(xiàn)標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議。

服務(wù)器啟動(dòng)后,調(diào)用QTcpServer::listen()函數(shù)來(lái)設(shè)置服務(wù)器的IP及端口號(hào),如server->listen(QHostAddress::Any,ui->txtPort->text().toInt()),使服務(wù)器進(jìn)入監(jiān)聽(tīng)狀態(tài),等待客戶端的連接。配置代碼如下:

bool ok=server->listen(QHostAddress::Any,ui->txtPort->text().toInt());//啟動(dòng)監(jiān)聽(tīng)

客戶端負(fù)責(zé)建立Socket連接,用戶輸入用戶名和密碼進(jìn)行登錄后,系統(tǒng)進(jìn)入Sockt連接槽函數(shù),通過(guò)QTcpSocket::connectToHost()函數(shù)建立與服務(wù)器的連接,同時(shí)使用QTcpSocket::waitForConnected()函數(shù)設(shè)置連接超時(shí)時(shí)間。Socket連接成功后,服務(wù)器就可以接收客戶端發(fā)出的請(qǐng)求信息,與客戶端進(jìn)行環(huán)境信息的交互。部分代碼如下:

tcpClient->connectToHost(ui->txtIP->text(),ui->txtPort->text().toInt());//連接服務(wù)器

tcpClient->waitForConnected(1000);//連接超時(shí)設(shè)置

4 手機(jī)客戶端與服務(wù)器間的通訊協(xié)議

服務(wù)器和手機(jī)客戶端數(shù)據(jù)通訊采用的是用TCP/IP傳輸XML的消息的方式,其幀結(jié)構(gòu)如表1所示。

其中開(kāi)始表示采用0C55CH,報(bào)文內(nèi)容為XML文件的數(shù)據(jù)流。XML格式部分報(bào)文如下:

請(qǐng)求監(jiān)測(cè)參數(shù)報(bào)文:

<?xml version="1.0" encoding="UTF-8"?>

需求數(shù)據(jù)版本號(hào)

回復(fù)報(bào)文:

<?xml version="1.0" encoding="UTF-8"?>

監(jiān)測(cè)終端編號(hào)

溫度

濕度

光強(qiáng)PM2.5

有害氣體

日期

時(shí)間段

.......

服務(wù)器接收到客戶端的請(qǐng)求命令后,獲取數(shù)據(jù)庫(kù)中存儲(chǔ)版本后到當(dāng)前時(shí)間段版本的數(shù)據(jù),按照上述格式回復(fù)報(bào)文的形式保存為xml文件,讀取文件并轉(zhuǎn)化為字節(jié)流,再進(jìn)行幀格式的拼接,封裝成TCP/IP數(shù)據(jù)幀發(fā)送;手機(jī)客戶端將接收的數(shù)據(jù)幀去掉幀頭后,提取有效信息保存為xml文件,應(yīng)用程序解析xml文件中的監(jiān)測(cè)信息,最后通過(guò)界面進(jìn)行顯示。

5 結(jié)語(yǔ)

本文提出的使用Qt on Android設(shè)計(jì)的空氣質(zhì)量監(jiān)測(cè)系統(tǒng)在Android智能機(jī)上得以實(shí)現(xiàn),增強(qiáng)空氣質(zhì)量監(jiān)測(cè)系統(tǒng)監(jiān)測(cè)數(shù)據(jù)查詢的便捷性,同時(shí)為C/C++程序員開(kāi)發(fā)Android手機(jī)APP提供了范例,具有很好的借鑒價(jià)值。

參考文獻(xiàn)

[1]安曉輝.Qt on Android核心編程[M].電子工業(yè)出版社,2015.

[2]霍亞飛.Qt Creator快速入門[M].北京航空航天大學(xué)出版社,2012.

[3]孫賀.室內(nèi)環(huán)境監(jiān)測(cè)系統(tǒng)中客戶端的設(shè)計(jì)與實(shí)現(xiàn)[D].信息技術(shù),2014.

作者簡(jiǎn)介

曹龍,碩士學(xué)歷。主要研究方向?yàn)樾盘?hào)檢測(cè)與信息處理。

劉煒,副教授,碩士研究生導(dǎo)師。

曾力,碩士學(xué)歷。主要研究方向?yàn)樾盘?hào)檢測(cè)與信息處理。

作者單位

北方民族大學(xué)電氣信息工程學(xué)院 寧夏回族自治區(qū)銀川市 750021

猜你喜歡
界面用戶信息
國(guó)企黨委前置研究的“四個(gè)界面”
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開(kāi)發(fā)方法研究
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
人機(jī)交互界面發(fā)展趨勢(shì)研究
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
手機(jī)界面中圖形符號(hào)的發(fā)展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
如何獲取一億海外用戶
展會(huì)信息
主站蜘蛛池模板: 在线看免费无码av天堂的| 伊人久久久大香线蕉综合直播| 成人小视频在线观看免费| 亚洲—日韩aV在线| 国内精品视频在线| 亚洲国产天堂久久综合226114| 中文精品久久久久国产网址 | 国产毛片网站| 精品久久人人爽人人玩人人妻| 亚洲视频在线青青| 萌白酱国产一区二区| 欧美精品亚洲二区| 亚洲av无码久久无遮挡| 国产a v无码专区亚洲av| 欧美成人精品一级在线观看| 青青青国产免费线在| 国产在线一区二区视频| 在线观看免费国产| 精品第一国产综合精品Aⅴ| 色有码无码视频| 人妻中文久热无码丝袜| 国产精品污污在线观看网站| 无码电影在线观看| 天堂av综合网| 日韩无码视频专区| 国产成人一区免费观看| 国产欧美精品专区一区二区| 97se亚洲综合在线天天| 亚洲免费播放| 亚洲综合国产一区二区三区| 欧美精品色视频| 91免费精品国偷自产在线在线| 亚洲午夜综合网| 久操中文在线| 好吊妞欧美视频免费| 国产精品分类视频分类一区| 国产精品毛片一区视频播| 欧美无专区| 欧美一区二区三区国产精品| 国产精品免费久久久久影院无码| 国产日韩欧美精品区性色| 国产欧美日韩免费| 人人爱天天做夜夜爽| 国产门事件在线| 青草免费在线观看| 青青青伊人色综合久久| 国产精品久久久久无码网站| 午夜精品久久久久久久无码软件 | 亚洲黄网视频| 国产人在线成免费视频| 伊人激情综合网| 午夜不卡视频| 亚洲精品第一页不卡| 国产成人高清精品免费5388| 成人午夜免费观看| 亚洲欧洲一区二区三区| 九九九精品成人免费视频7| 少妇被粗大的猛烈进出免费视频| 天天躁夜夜躁狠狠躁图片| 亚洲A∨无码精品午夜在线观看| 99er精品视频| 中文字幕亚洲电影| h网址在线观看| 2022国产无码在线| 毛片网站在线看| 91亚洲精品国产自在现线| 伊在人亞洲香蕉精品區| 日韩欧美综合在线制服| 久久国产精品嫖妓| 欧美日本视频在线观看| 日韩欧美视频第一区在线观看| 欧美一区二区三区国产精品| 国产人碰人摸人爱免费视频| 国产91小视频| 成年人午夜免费视频| 国产H片无码不卡在线视频| 国产成本人片免费a∨短片| 亚洲另类第一页| 污污网站在线观看| 天天躁夜夜躁狠狠躁躁88| 一级片一区| 亚洲精品视频在线观看视频|