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

遠(yuǎn)程家電控制系統(tǒng)的移動(dòng)軟件框架設(shè)計(jì)

2018-12-27 11:35:56潘俊虹
無(wú)線互聯(lián)科技 2018年20期
關(guān)鍵詞:數(shù)據(jù)庫(kù)用戶設(shè)備

黃 鑫,潘俊虹

(1.昆山鑫盛盟創(chuàng)科技有限公司,江蘇 昆山 215300 ;2.武夷學(xué)院 數(shù)學(xué)與計(jì)算機(jī)學(xué)院,福建 武夷山 354300)

隨著計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)、控制技術(shù)及人工智能等的飛躍發(fā)展,智能化社會(huì)已成為新世紀(jì)的發(fā)展趨勢(shì)。在此之下,智能家居也隨之迅猛發(fā)展起來(lái)[1]。與普通家居相比,智能家居不僅具有傳統(tǒng)的居住功能,同時(shí)能夠提供信息交互功能,使得人們能夠在外部查看家居信息和控制家居的相關(guān)設(shè)備,便于人們有效安排時(shí)間,使得家居生活更加安全、舒適[2]。

在“物聯(lián)網(wǎng)”這個(gè)概念被提出后,智能家電之間各自獨(dú)立的狀態(tài)被打破。在標(biāo)準(zhǔn)的通信協(xié)議以及控制協(xié)議下,無(wú)線傳感器網(wǎng)絡(luò)在物聯(lián)網(wǎng)技術(shù)的利用下,把具有不同功能的節(jié)點(diǎn)組成一個(gè)整體,實(shí)現(xiàn)家庭設(shè)備的網(wǎng)絡(luò)化管理。

手機(jī)APP作為智能家居或智能家電控制系統(tǒng)中的核心部分,在用戶使用和體驗(yàn)中具有重要的作用,因此,對(duì)于開發(fā)人員來(lái)講,迫切需要一個(gè)能夠快速搭建起來(lái)的軟件框架。因此,本文采用流行的前端框架MUI,以APP的流暢性和良好的用戶體驗(yàn)作為目標(biāo),搭建了智能家電系統(tǒng)的APP和服務(wù)器軟件框架。

1 系統(tǒng)整體設(shè)計(jì)

本系統(tǒng)主要包括以下幾個(gè)部分,分別是:安卓終端、服務(wù)器端、設(shè)備網(wǎng)關(guān)、設(shè)備節(jié)點(diǎn),每部分的主要功能如下。

安卓終端:負(fù)責(zé)顯示設(shè)備信息,設(shè)備狀態(tài),傳遞用戶指令,給用戶提供可視化交互界面,是連接服務(wù)器和用戶的橋梁。

服務(wù)器端:負(fù)責(zé)處理用戶數(shù)據(jù)以及設(shè)備數(shù)據(jù),接收用戶指令和設(shè)備信息,并把信息以一定的格式傳遞給安卓終端和設(shè)備網(wǎng)關(guān)。

設(shè)備網(wǎng)關(guān):負(fù)責(zé)服務(wù)器端和設(shè)備節(jié)點(diǎn)之間的數(shù)據(jù)交換,包括設(shè)備節(jié)點(diǎn)信息和設(shè)備節(jié)點(diǎn)控制命令等。

設(shè)備節(jié)點(diǎn):具體的設(shè)備家電,如電燈、電扇、電視、空調(diào)等。

這4個(gè)雖然是不同的獨(dú)立個(gè)體,分屬于不同平臺(tái),負(fù)責(zé)不同的角色,但通過互聯(lián)網(wǎng),移動(dòng)互聯(lián)網(wǎng),物聯(lián)網(wǎng)相互協(xié)作共同構(gòu)成了本課題的智能家電系統(tǒng)。

如圖1所示,用戶打開APP通過互聯(lián)網(wǎng)或移動(dòng)互聯(lián)網(wǎng),通過HTTP請(qǐng)求連接服務(wù)器。服務(wù)器端由Tomcat服務(wù)器、SqlServer數(shù)據(jù)庫(kù)與Monitor偵聽程序組成。

服務(wù)器通過Tomcat接收并處理用戶請(qǐng)求,Monitor偵聽程序連接設(shè)備網(wǎng)關(guān)獲取網(wǎng)關(guān)和設(shè)備的信息并存入數(shù)據(jù)庫(kù),Tomcat連接數(shù)據(jù)庫(kù)獲取Monitor取回的信息并返回給用戶或者當(dāng)有新命令時(shí),Tomcat把命令存進(jìn)數(shù)據(jù)庫(kù),并通知Monitor有新的上行命令進(jìn)入,Monitor接收到Tomcat的通知,去數(shù)據(jù)庫(kù)取出數(shù)據(jù),發(fā)送給網(wǎng)關(guān),網(wǎng)關(guān)將命令發(fā)送給節(jié)點(diǎn)進(jìn)行數(shù)據(jù)采集和控制執(zhí)行操作。

圖1 遠(yuǎn)程家電控制系統(tǒng)整體結(jié)構(gòu)

2 客戶端APP設(shè)計(jì)

APP端以安卓為操作平臺(tái),采用時(shí)下流行的APP快速開發(fā)方案HTML5。HTML5是一種網(wǎng)頁(yè)開發(fā)語(yǔ)言,通過使用HTML5語(yǔ)言可以在任何移動(dòng)平臺(tái)進(jìn)行開發(fā),對(duì)于移動(dòng)端的大頭安卓和蘋果來(lái)說(shuō),除去原生的部分,HTML5一套代碼可以同時(shí)在這兩大平臺(tái)上運(yùn)行,對(duì)于開發(fā)人員來(lái)說(shuō)可以省去非常多的維護(hù)成本。對(duì)于網(wǎng)頁(yè)的開發(fā)語(yǔ)言HTML5來(lái)說(shuō),可以比原生系統(tǒng)更輕易地開發(fā)出漂亮實(shí)用的頁(yè)面[3]。

安卓端主要采用HTML5技術(shù),圍繞MUI框架進(jìn)行開發(fā)。MUI是一款能夠大大簡(jiǎn)化開發(fā)的框架,MUI框架是基于ratchet框架開發(fā)的,核心是webview[4]。在模擬原生應(yīng)用方面有著獨(dú)到的見解,能夠高效地解決在HTML5開發(fā)中遇到的各種常見的問題。遠(yuǎn)程家電控制系統(tǒng)APP功能如圖2所示。

圖2 遠(yuǎn)程家電控制系統(tǒng)APP功能

3 服務(wù)器端程序設(shè)計(jì)

3.1 Web服務(wù)器設(shè)計(jì)

服務(wù)器端以Java為主要編程語(yǔ)言,使用Tomcat為Web服務(wù)器。Tomcat服務(wù)器是一個(gè)免費(fèi)易上手,對(duì)于新手非常友好的Web應(yīng)用服務(wù)器,是一個(gè)簡(jiǎn)單、易用的JSP和Servlet容器。

開發(fā)工具采用Eclipse,Eclipse是一以Java為編程語(yǔ)言編寫的開發(fā)平臺(tái)。它以優(yōu)良布局的界面,簡(jiǎn)單易上手和豐富的插件組件著稱。而各種豐富的插件組件賦予了Eclipse靈活的開發(fā)風(fēng)格,豐富的開發(fā)環(huán)境,以及無(wú)限的可能性。

項(xiàng)目管理工具使用Maven,使用它可以簡(jiǎn)單地管理項(xiàng)目依賴的Jar包,生成項(xiàng)目框架以及項(xiàng)目的編譯打包。現(xiàn)版本的Eclipse完美支持Maven只需簡(jiǎn)單的配置,就能在Eclipse中使用Maven。

服務(wù)端采用MVC設(shè)計(jì)模式,是一種運(yùn)用廣泛的設(shè)計(jì)思想。這種技術(shù)是將應(yīng)用程序分離成模型、視圖和控制器3個(gè)核心部分[5],MVC包括以下3個(gè)部分。

模型(Model):模型是程序的業(yè)務(wù)處理部分,負(fù)責(zé)執(zhí)行復(fù)雜的業(yè)務(wù)邏輯。

視圖(View):視圖的應(yīng)用程序的表示層,代表與用戶的交互界面。

控制器(Controller):控制器就是一個(gè)轉(zhuǎn)發(fā)器,接收用戶請(qǐng)求,解析用戶數(shù)據(jù),把數(shù)據(jù)轉(zhuǎn)發(fā)給模型組件,控制器本身不參與邏輯的處理。

如圖3所示,APP客戶端發(fā)起HTTP請(qǐng)求,由在web.xml配好的默認(rèn)servlet類DispatcherServlet類接收請(qǐng)求,把請(qǐng)求轉(zhuǎn)發(fā)至對(duì)應(yīng)的ctrl中的類中處理,ctrl解析請(qǐng)求數(shù)據(jù)并把數(shù)據(jù)傳遞給service層,service接收數(shù)據(jù)并進(jìn)一步處理數(shù)據(jù),且按照需求調(diào)用dao層的方法。dao層訪問數(shù)據(jù)庫(kù)負(fù)責(zé)與數(shù)據(jù)庫(kù)進(jìn)交互。

圖3 Tomcat運(yùn)行流程

圖4所示為服務(wù)器目錄結(jié)構(gòu)圖,目錄功能如下。

ctrl:控制層,主要是負(fù)責(zé)接收和返回?cái)?shù)據(jù),以及把數(shù)據(jù)傳遞給service業(yè)務(wù)層。

service:業(yè)務(wù)層,分為api和impl兩個(gè)包。api存放業(yè)務(wù)層各個(gè)類的接口,impl里面存放了api包中各個(gè)接口的實(shí)現(xiàn)。service層負(fù)責(zé)處理數(shù)據(jù),并按需求訪問dao數(shù)據(jù)連接層。

dao:數(shù)據(jù)連接層,也分為api和impl兩個(gè)包。api存放數(shù)據(jù)連接層各個(gè)類的接口,impl里面存放了api中各個(gè)接口的實(shí)現(xiàn)。

model:模型層,分為entity和rowmapper兩個(gè)包。entity存放具體的實(shí)體類,如用戶、房間、網(wǎng)關(guān)等。rowmapper包存放各個(gè)實(shí)體類的對(duì)象關(guān)系映射工具,負(fù)責(zé)在dao層把數(shù)據(jù)庫(kù)的每一行數(shù)據(jù)封裝成一個(gè)entity包中對(duì)應(yīng)的Java對(duì)象。

interceptor:攔截器包,負(fù)責(zé)在執(zhí)行ctrl中的方法前或方法后插入方法執(zhí)行,例如檢查用戶是否登錄,對(duì)于沒登錄的用戶在執(zhí)行ctrl中方法前攔截下來(lái)并跳轉(zhuǎn)登錄頁(yè)面,以及各種操作日志等功能。

exception:異常類包,存放本系統(tǒng)的各種異常類,如權(quán)限異常等。

util:工具類包,存放本系統(tǒng)的工具類,例如時(shí)間轉(zhuǎn)換類,密碼加密類等。

dao層結(jié)構(gòu)和service層結(jié)構(gòu)類似都分為api接口和impl實(shí)現(xiàn)兩個(gè)包,這里把接口和實(shí)現(xiàn)分離開的做法體現(xiàn)了面向接口編程的思想(面向接口編程:在系統(tǒng)的架構(gòu)中,層次間并不是依賴于某個(gè)具體的類,而是下層給上層提供一組接口供上層調(diào)用,上層只關(guān)注接口的行為也就是上層需要達(dá)成的目的,并不關(guān)注這些行為是如何實(shí)現(xiàn)的)。在本系統(tǒng)中,ctrl層中的類只依賴于service層的接口,service層中的類只依賴于dao層的接口,層與層并不僅依賴于某個(gè)具體實(shí)現(xiàn)類,而是依賴于一組接口。把接口與實(shí)現(xiàn)分離開有助于提升系統(tǒng)的靈活性,降低層與層之間的耦合度。在本系統(tǒng)中,利用Spring的依賴注入,在下層的需要改變時(shí),由于下層只暴露了接口給上層,所以僅需要修改下層的實(shí)現(xiàn)類,上層的類并不需要進(jìn)行任何修改就可以使用。

圖4 服務(wù)器目錄結(jié)構(gòu)

3.2 Monitor偵聽程序設(shè)計(jì)

Monitor偵聽程序,是網(wǎng)關(guān)與數(shù)據(jù)庫(kù)及人機(jī)交互軟件的通信媒介,采用面向?qū)ο蠓椒ㄟM(jìn)行開發(fā)。Monitor傳輸方向分為上行與下行兩個(gè)方向,上行數(shù)據(jù)傳輸是指Monitor接收網(wǎng)絡(luò)端口的數(shù)據(jù),送入數(shù)據(jù)庫(kù);下行數(shù)據(jù)傳輸是指Monitor從數(shù)據(jù)庫(kù)中取數(shù)據(jù)向網(wǎng)關(guān)發(fā)送。下行數(shù)據(jù)中,Monitor亦可接受人機(jī)交互軟件命令,然后從數(shù)據(jù)庫(kù)中取數(shù)據(jù)向網(wǎng)關(guān)發(fā)送。這里的人機(jī)交互軟件命令,主要是指Web網(wǎng)頁(yè),也可指運(yùn)行Monitor程序時(shí),從控制臺(tái)(鍵盤)輸入的命令,也可指手機(jī)APP軟件向Monitor發(fā)送的命令。使用的語(yǔ)言是C#。本課題借用已經(jīng)實(shí)現(xiàn)的Monitor偵聽程序進(jìn)行與網(wǎng)關(guān)的連接(見圖5)。

圖5 偵聽程序結(jié)構(gòu)框架

4 系統(tǒng)測(cè)試

由于目前的設(shè)備連接狀態(tài)限制,APP必須與充當(dāng)服務(wù)器的電腦連接在同一局域網(wǎng)內(nèi),使得使用起來(lái)具有極大的局限性。所以測(cè)試時(shí)利用到了花生殼軟件,利用它就可以在沒有公網(wǎng)IP的情況下進(jìn)行內(nèi)網(wǎng)穿透,把當(dāng)前電腦與花生殼提供的域名綁定。這樣APP就可以在互聯(lián)網(wǎng)上訪問當(dāng)前電腦了。

測(cè)試APP控制設(shè)備開關(guān),APP開關(guān)狀態(tài)正常顯示,APP提示信息正常顯示,服務(wù)器接收請(qǐng)求正常執(zhí)行,服務(wù)器信息正常顯示。測(cè)試方法:點(diǎn)擊設(shè)備“電燈1”右側(cè)的開關(guān)按鈕。測(cè)試預(yù)期:按鈕由關(guān)轉(zhuǎn)為開,服務(wù)器提示設(shè)備被開啟。設(shè)備控制測(cè)試如圖6所示。

圖6 設(shè)備控制測(cè)試

5 結(jié)語(yǔ)

本文實(shí)現(xiàn)了基于Android的遠(yuǎn)程家電控制系統(tǒng)手機(jī)APP,基本實(shí)現(xiàn)了對(duì)于家電的控制,以及信息的傳輸,為智能家電的開發(fā)創(chuàng)建了一套流程以及搭建了基本框架。但是這還遠(yuǎn)遠(yuǎn)不夠,一些簡(jiǎn)單的控制還并不能體現(xiàn)智能家電中的智能性,控制系統(tǒng)中的多設(shè)備的聯(lián)動(dòng),復(fù)雜的場(chǎng)景控制都是日后能夠繼續(xù)開發(fā)的方向。

猜你喜歡
數(shù)據(jù)庫(kù)用戶設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
基于MPU6050簡(jiǎn)單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
數(shù)據(jù)庫(kù)
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數(shù)據(jù)庫(kù)
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
主站蜘蛛池模板: 成人久久精品一区二区三区 | 久久综合五月婷婷| 97无码免费人妻超级碰碰碰| 国产精品一区二区无码免费看片| 91日本在线观看亚洲精品| 91午夜福利在线观看精品| 国产一区免费在线观看| 免费无码网站| 欧美综合区自拍亚洲综合绿色 | 青青草原国产| 一区二区三区四区在线| 欧美国产日韩在线观看| 久久久精品久久久久三级| 亚洲人成网站色7799在线播放| 国产一级α片| 久久亚洲精少妇毛片午夜无码| 国产精品尤物在线| 九九热精品免费视频| 国产精品第一区| 欧美区在线播放| 免费无码AV片在线观看国产| 国产成人免费| 69av免费视频| 亚洲天堂网在线视频| 亚洲日本精品一区二区| 国产成人一区| 日韩二区三区无| 18禁影院亚洲专区| 97av视频在线观看| 久久亚洲AⅤ无码精品午夜麻豆| 国产精品3p视频| 99久久国产综合精品女同| 国产精品污视频| 四虎影院国产| 中国美女**毛片录像在线| 欧美午夜视频| 在线无码av一区二区三区| 国产欧美日韩91| 婷婷亚洲视频| 99青青青精品视频在线| 五月婷婷激情四射| 欧美亚洲一区二区三区在线| 国产在线观看精品| 国产亚洲欧美在线专区| 国产激情无码一区二区三区免费| 国产欧美日韩视频怡春院| 国产精品网址在线观看你懂的| 国产在线啪| 欧洲成人在线观看| 国产一级在线播放| 国产av一码二码三码无码| 啪啪免费视频一区二区| 国产三级精品三级在线观看| 欧洲亚洲欧美国产日本高清| 黄色网页在线播放| 91小视频版在线观看www| 国产福利微拍精品一区二区| 日韩 欧美 国产 精品 综合| 欧美色视频日本| 亚洲第一色视频| 亚洲一区免费看| 亚洲欧洲天堂色AV| 免费观看国产小粉嫩喷水 | 欧美亚洲第一页| 97人人模人人爽人人喊小说| 国产经典在线观看一区| 国产日韩丝袜一二三区| 国产农村1级毛片| 亚洲中文制服丝袜欧美精品| 精品视频福利| 亚洲第一在线播放| AV在线天堂进入| 亚洲v日韩v欧美在线观看| 麻豆精品国产自产在线| 波多野结衣中文字幕久久| 亚洲 欧美 偷自乱 图片| 欧美国产日本高清不卡| 成人福利在线视频免费观看| 亚洲天堂精品在线观看| 就去吻亚洲精品国产欧美| 综合久久久久久久综合网| 欧美区一区|