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

基于MQTT 協(xié)議的遠(yuǎn)程管理智能化Android系統(tǒng)設(shè)計與實現(xiàn)

2020-08-11 03:24:04王彥冰
科學(xué)技術(shù)創(chuàng)新 2020年22期
關(guān)鍵詞:用戶服務(wù)方法

趙 政 王彥冰

(中電科鵬躍電子科技有限公司,山西 太原030000)

1 概述

目前,移動互聯(lián)網(wǎng)正逐漸滲透到人們生活、工作的各個領(lǐng)域,各類豐富多彩的移動互聯(lián)網(wǎng)應(yīng)用迅猛發(fā)展,正在深刻改變信息時代的社會生活,近幾年,更是實現(xiàn)了3G 經(jīng)4G 到5G 的跨越式發(fā)展。

隨著它的發(fā)展,物聯(lián)網(wǎng)技術(shù)的發(fā)展也日趨完整、成熟,通過信息傳感器將各種設(shè)備與互聯(lián)網(wǎng)連接在一起而形成的巨大網(wǎng)絡(luò),是需要基礎(chǔ)網(wǎng)絡(luò)設(shè)施提供更多的支持,所以移動互聯(lián)網(wǎng)對物聯(lián)網(wǎng)的發(fā)展起到了重要的促進(jìn)作用。

物聯(lián)網(wǎng)的應(yīng)用領(lǐng)域涉及到方方面面,在工業(yè)、農(nóng)業(yè)、環(huán)境、交通、物流、安保等基礎(chǔ)設(shè)施領(lǐng)域的應(yīng)用,有效的推動了這些方面的智能化發(fā)展,使得有限的資源更加合理的使用分配,從而提高了行業(yè)效率、效益。所以,再結(jié)合移動互聯(lián)網(wǎng)、云計算、人工智能等技術(shù),可在基礎(chǔ)設(shè)施領(lǐng)域發(fā)展更多遠(yuǎn)程智能化控制管理的應(yīng)用。

物聯(lián)網(wǎng)的核心是物與物、人與物之間的信息交互,因此,遠(yuǎn)程智能化控制管理應(yīng)用的重要核心,是移動互聯(lián)網(wǎng)的綜合消息推送。

其中,由于MQTT 協(xié)議的特點,基于MQTT 協(xié)議的即時消息業(yè)務(wù)解決方案,更適合移動互聯(lián)網(wǎng),更符合可靠消息傳輸方式的設(shè)計和實現(xiàn)。

2 相關(guān)概念介紹

2.1 MQTT 協(xié)議

MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是ISO 標(biāo)準(zhǔn)下基于發(fā)布/訂閱范式的消息協(xié)議。該協(xié)議構(gòu)建于TCP/IP 協(xié)議族上,是為硬件性能低下的遠(yuǎn)程設(shè)備以及網(wǎng)絡(luò)狀況糟糕的情況下而設(shè)計的發(fā)布/訂閱型消息協(xié)議。該協(xié)議支持所有平臺,幾乎可以把所有聯(lián)網(wǎng)物品和外部連接起來,被用來當(dāng)做傳感器和致動器的通信協(xié)議。

MQTT 協(xié)議是為大量計算能力有限,且工作在低帶寬、不可靠的網(wǎng)絡(luò)的遠(yuǎn)程傳感器和控制設(shè)備通訊而設(shè)計的協(xié)議,它具有以下主要的幾項特性:

(1)使用發(fā)布/訂閱消息模式,提供一對多的消息發(fā)布,解除應(yīng)用程序耦合;[3]

(2)對負(fù)載內(nèi)容屏蔽的消息傳輸;

(3)使用TCP/IP 提供網(wǎng)絡(luò)連接;

(4)有三種消息發(fā)布服務(wù)質(zhì)量,“至多一次”、“至少一次”、“只有一次”,分別對應(yīng)于有效值“0”、“1”、“2”,可供不同應(yīng)用、不同情境下選擇;[4]

(5)小型傳輸,開銷很小,協(xié)議交換最小化,以降低網(wǎng)絡(luò)流量;

(6)使用Last Will 和Testament 特性通知有關(guān)各方客戶端異常中斷的機(jī)制。

基于MQTT 的這些特點,它的適用范圍就非常廣泛,在很多情況下,包括受限的環(huán)境中,如機(jī)器與機(jī)器(M2M)通信和物聯(lián)網(wǎng)(IoT)。

隨著移動互聯(lián)網(wǎng)的發(fā)展,MQTT 由于開放源碼、耗電量小等特點,會在移動消息推送領(lǐng)域有更多的貢獻(xiàn),作為Android 手機(jī)客戶端與服務(wù)器端推送消息的協(xié)議而被廣泛使用;在物聯(lián)網(wǎng)領(lǐng)域,傳感器與服務(wù)器的通信,信息的收集,MQTT 都可作為考慮的方案之一。

2.2 Service 服務(wù)

服務(wù)是Android 中實現(xiàn)程序后臺運行的解決方案,它非常適合執(zhí)行那些不需要和用戶交互且需長期運行的任務(wù)。服務(wù)的運行不依賴與任何用戶界面,即時程序被切換到后臺,或者用戶打開了另一個應(yīng)用程序,服務(wù)仍能保持獨立運行。不過,服務(wù)并不是運行在一個獨立的進(jìn)程當(dāng)中,而是依賴于創(chuàng)建服務(wù)時所在的應(yīng)用程序進(jìn)程。

當(dāng)某個應(yīng)用程序被殺掉時,所有依賴該進(jìn)程的服務(wù)也會停止運行。

Service 的其中一種形式是本地服務(wù),該服務(wù)依附在主進(jìn)程上而不是獨立的進(jìn)程,這樣在一定程度上節(jié)約了資源,另外本地服務(wù)是在同一進(jìn)程因此不需要IPC,也不需要AIDL。相應(yīng)bindService 會方便很多,當(dāng)主進(jìn)程被Kill 后,服務(wù)便會終止。一般使用在不需要常駐的服務(wù),故服務(wù)和啟動服務(wù)的activity 在同一個進(jìn)程中。[2]

2.3 定時任務(wù)

在Android 開發(fā)中,有些任務(wù)不是當(dāng)時就執(zhí)行,而是過了一個規(guī)定時間再執(zhí)行,那么就需要使用定時器。Java 提供了計時器工具類,即Timer 和TimerTask。Timer 是用來在主線程之外的一個后臺線程執(zhí)行指定計劃任務(wù),可執(zhí)行一次或多次,TimerTask是一個實現(xiàn)了Runnable 接口的抽象類,其子類代表一個可以被Timer 執(zhí)行的任務(wù)。[1]

3 系統(tǒng)框架設(shè)計

遠(yuǎn)程管理智能化系統(tǒng)是一套物聯(lián)網(wǎng)系統(tǒng),總體主要包括了MQTT 公共云服務(wù)、監(jiān)控點群部署與用戶終端。

3.1 MQTT 公共云服務(wù):是指物聯(lián)網(wǎng)云平臺,即為一個代理,轉(zhuǎn)發(fā)各方發(fā)來的數(shù)據(jù)。

3.2 監(jiān)控點群部署:主要包括物聯(lián)網(wǎng)控制器、傳感器、執(zhí)行機(jī)構(gòu)等,負(fù)責(zé)采集、上報環(huán)境中各類數(shù)據(jù),同時控制執(zhí)行機(jī)構(gòu)的執(zhí)行。

3.3 用戶終端:主要功能有查看實時監(jiān)測數(shù)據(jù)、發(fā)送控制指令使物聯(lián)網(wǎng)控制器可執(zhí)行。

系統(tǒng)的主要結(jié)構(gòu)如下圖1 所示:

圖1 系統(tǒng)組織架構(gòu)

本系統(tǒng)的主要結(jié)構(gòu)與功能,通過MQTT 協(xié)議的實現(xiàn)方式即可滿足。

實現(xiàn)MQTT 協(xié)議需要客戶端和服務(wù)器端通訊完成,在通訊過程中,MQTT 協(xié)議中有3 種身份:發(fā)布者、代理(服務(wù)器)、訂閱者。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器,消息發(fā)布者可以同時是訂閱者。

MQTT 傳輸?shù)南⒎譃橹黝}和負(fù)載兩部分:主題為消息類型,負(fù)載為消息內(nèi)容,即具體使用的內(nèi)容。訂閱者訂閱消息后,可收到該主題的負(fù)載。

在本系統(tǒng)中,代理(服務(wù)器)是MQTT 公共云服務(wù);發(fā)布者和訂閱者則根據(jù)功能不同而不同。在監(jiān)控點上報數(shù)據(jù)、用戶查看數(shù)據(jù)功能中,監(jiān)控點是發(fā)布者,用戶終端是訂閱者;在用戶根據(jù)具體情況控制監(jiān)控點的執(zhí)行機(jī)構(gòu)功能中,用戶終端是發(fā)布者,監(jiān)控點是訂閱者。

因此,監(jiān)控點與用戶終端均為MQTT 客戶端,而用戶終端APP 以Android 版本為主。在MQTT 客戶端中,核心業(yè)務(wù)即為訂閱- 發(fā)布消息,其流程圖如下圖2 所示:

圖2 訂閱- 發(fā)布消息流程圖

4 系統(tǒng)客戶端設(shè)計實現(xiàn)

使用手機(jī)APP 是用戶操作本系統(tǒng)最重要的方式,提升了用戶操作的便利性和友好性,且本系統(tǒng)Android 端的實現(xiàn)為后續(xù)遠(yuǎn)程控制方面的工業(yè)APP 開發(fā)提供范例,有重大意義。MQTT 在Android 端的具體實現(xiàn)方法如下:

①添加依賴:

首先,在項目根目錄下的build.gradle 文件中添加如下代碼:

②添加權(quán)限:

在AndroidManifest.xml 文件中添加使用權(quán)限,聲明MQTT服務(wù)MqttService,代碼如下:

MQTTService 類的功能中包括 MQTT 安卓客戶端MqttAndroidClient () 的 初 始 化 ,MQTT 連 接 參 數(shù)MqttConnectOptions () 的 設(shè) 置,MQTT 連 接 服 務(wù) 器MqttAndroidClient.connect()、訂閱MqttAndroidClient. subscribe()[5]并監(jiān)聽接受消息MqttCallback(),也包括一些公共方法,如消息發(fā)布方法publish(),Service 父類的綁定服務(wù)方法onBind()、解綁服務(wù)方法onUnbind()、銷毀方法onDestroy()。

其次,為了代碼模塊的低耦合性,當(dāng)獲取從服務(wù)器推送過來的消息時,使用回調(diào)接口IGetMessageCallBack 去更新UI。

最后,為了實現(xiàn)通過回調(diào)接口去傳遞從服務(wù)器獲取到的消息,創(chuàng)建MyServiceConnection 類,來實現(xiàn)ServiceConnection 接口,并通過綁定方法onBind()來在Service 和Activity 之間傳遞數(shù)據(jù),更新UI。

根據(jù)對本系統(tǒng)Android 端的功能定義,進(jìn)行了如下設(shè)計。

4.1 查看數(shù)據(jù)功能設(shè)計

本系統(tǒng)Android 端基于MQTT 協(xié)議接受服務(wù)器推送的消息,并將消息顯示在界面以供用戶查看。具體實現(xiàn)方法如下:

①為了根據(jù)接受到的消息而定時更新UI,采用定時器類Timer 和TimerTask:在MQTTService 類中,MQTT 監(jiān)聽接受消息的變量MqttCallback()是接口,繼承了接受服務(wù)器推送消息的方法messageArrived(),在此方法中添加Timer 和TimerTask。將消息的發(fā)送放在TimerTask 的Runnable 接口的后臺線程中,Timer設(shè)置執(zhí)行任務(wù)的頻率為1 次/30s,且只有在退出本系統(tǒng)Android端時才終止定時器線程,否則會一直定時接受消息并更新;若在定時器任務(wù)中未定時接受到消息,則更新界面以提示用戶“(控制器xxx)下線”。這樣既可避免因主線程運行緩慢而導(dǎo)致用戶體驗差,也可實現(xiàn)實時的效果。[1]

②定時更新消息顯示:主線程所在的Activity 繼承了接口IGetMessageCallBack,根據(jù)本系統(tǒng)功能設(shè)計,具體實現(xiàn)了接口中的方法setMessage(),即接受到的消息以UI 界面定義的形式顯示出來供用戶方便查看。

③啟動MQTT 服務(wù):在主線程所在的Activity 中,調(diào)用bindService()來啟動MQTT,即可開始定時接受消息數(shù)據(jù)。

4.2 發(fā)送指令功能設(shè)計

用戶根據(jù)顯示的消息數(shù)據(jù),可操作本APP 來控制監(jiān)控點的設(shè)備狀態(tài)。具體實現(xiàn)方法如下:

①在用戶可操作界面的Activity 中,監(jiān)聽每個操作按鈕、選擇框、圖標(biāo)等的動作變化狀態(tài),在監(jiān)聽過程中調(diào)用消息發(fā)布方法publish()。

②在消息發(fā)布方法publish()中,使用MQTT 安卓客戶端的發(fā)布方法MqttAndroidClient.publish(),通過對此方法傳遞特定參數(shù),如消息主題、消息負(fù)載的有效字節(jié)數(shù)組、消息發(fā)布服務(wù)質(zhì)量、服務(wù)器是否保留此消息,發(fā)送消息請求至服務(wù)器。[5]

5 結(jié)論

本文主要描述了遠(yuǎn)程管理智能化系統(tǒng)Android 端的查看數(shù)據(jù)、發(fā)送指令等功能的實現(xiàn)。系統(tǒng)利用了具有低功耗和移動互聯(lián)網(wǎng)帶寬利用率高等特點的MQTT 協(xié)議來進(jìn)行消息數(shù)據(jù)在客戶端與服務(wù)端之間的傳輸,通過實時接受消息數(shù)據(jù),用戶可隨時操作APP 發(fā)送指令來遠(yuǎn)程控制監(jiān)控點各項設(shè)備。系統(tǒng)實現(xiàn)了消息數(shù)據(jù)與遠(yuǎn)程控制指令的實時傳輸,有效提高了用戶操作的便利性與友好性,為“數(shù)據(jù)遠(yuǎn)傳+實時控制”甚至更多功能模式的工業(yè)控制系統(tǒng),包括APP 的開發(fā),提供了范例基礎(chǔ),意義重大,可推廣運用于工業(yè)、農(nóng)業(yè)、環(huán)境等遠(yuǎn)程控制方面的應(yīng)用。

猜你喜歡
用戶服務(wù)方法
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
招行30年:從“滿意服務(wù)”到“感動服務(wù)”
商周刊(2017年9期)2017-08-22 02:57:56
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 日韩视频免费| 久久中文电影| 欧美激情伊人| 免费全部高H视频无码无遮掩| 91欧美亚洲国产五月天| 91美女视频在线| 亚洲天堂视频在线观看免费| 青青草原国产精品啪啪视频| 一级在线毛片| 九色91在线视频| 狠狠躁天天躁夜夜躁婷婷| 国产理论一区| 老熟妇喷水一区二区三区| 中文字幕免费视频| 久久精品无码专区免费| 国产99精品久久| 亚洲综合狠狠| 亚洲无码精品在线播放| www.亚洲一区| 99这里只有精品在线| 亚洲国产日韩欧美在线| 亚洲欧美另类专区| 爆操波多野结衣| 男人天堂亚洲天堂| 久久精品91麻豆| 日韩AV无码免费一二三区| 91啦中文字幕| 一级毛片a女人刺激视频免费| 国产剧情伊人| 国产黄色视频综合| 就去吻亚洲精品国产欧美| 婷婷综合缴情亚洲五月伊| 波多野结衣一二三| 亚洲国产成人自拍| 国产91色在线| 一级全黄毛片| 无码视频国产精品一区二区| 日韩精品一区二区深田咏美| 无码啪啪精品天堂浪潮av| av在线手机播放| 97视频在线精品国自产拍| 九九香蕉视频| 精品久久蜜桃| 亚洲永久视频| 亚洲成人黄色网址| 国产欧美在线| 激情无码字幕综合| 美女国产在线| www亚洲精品| 国产美女视频黄a视频全免费网站| 国产亚洲精品91| 五月天综合婷婷| 国产精品30p| 久久久久无码精品| 女高中生自慰污污网站| 无码一区二区三区视频在线播放| 蜜臀AVWWW国产天堂| 国产乱人伦精品一区二区| 久久情精品国产品免费| 亚洲激情区| 任我操在线视频| 精品国产成人a在线观看| 9久久伊人精品综合| 国产亚洲欧美在线中文bt天堂| 久久99久久无码毛片一区二区| 黄片在线永久| 亚洲日本韩在线观看| 欧美精品v日韩精品v国产精品| 亚洲第一视频免费在线| 国产亚洲欧美日韩在线一区| 国产黄色视频综合| 精品伊人久久久大香线蕉欧美| 日本一区高清| 国产成年女人特黄特色大片免费| 亚洲中文字幕97久久精品少妇| 97se亚洲| 国产成人三级| 国产免费高清无需播放器| 国产精品久久久久久久伊一| 在线综合亚洲欧美网站| 国产美女无遮挡免费视频网站| 国产三级视频网站|