• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于云端服務(wù)檢測(cè)設(shè)備的虛擬控制面板開發(fā)

      2021-09-06 12:30:20李志軍朱書村
      關(guān)鍵詞:控制面板按鍵面板

      劉 丹 李志軍 朱書村

      (吉林大學(xué) 通信工程學(xué)院,長(zhǎng)春 130012)

      0 引 言

      在第四次工業(yè)革命蓬勃發(fā)展的大環(huán)境下,新理念催生了越來越多智能化實(shí)驗(yàn)室[1-3]。智能設(shè)備儀器與產(chǎn)品的應(yīng)用,推動(dòng)了生產(chǎn)過程智能化,促進(jìn)了新型生產(chǎn)方式的產(chǎn)生,同時(shí)也對(duì)實(shí)驗(yàn)室的日常管理提出了更高要求。筆者研究的實(shí)驗(yàn)室擁有眾多的智能化設(shè)備,雖然大多數(shù)智能設(shè)備都提供了相應(yīng)的控制軟件與APP(application),但由于傳統(tǒng)的控制方法具有很大的局限性,這種針對(duì)每類設(shè)備都在APP 上設(shè)計(jì)與之對(duì)應(yīng)的界面和控制邏輯實(shí)現(xiàn),隨著智能設(shè)備數(shù)量的增多,用戶體驗(yàn)將會(huì)變得非常艱難[4-5]。諸如數(shù)字化檢測(cè)設(shè)備需要預(yù)熱與調(diào)試,實(shí)驗(yàn)室內(nèi)的溫度濕度檢測(cè)傳感器與電源控制系統(tǒng)也需要實(shí)時(shí)監(jiān)控,面對(duì)各種APP 與控制軟件,對(duì)管理人員是一個(gè)艱巨的任務(wù)。而且,這種低效率操作模式的最終結(jié)果使實(shí)驗(yàn)室的利用效率低下,因此急需解決“人等機(jī)器”的難題。

      筆者針對(duì)智能終端檢測(cè)實(shí)驗(yàn)室設(shè)備監(jiān)控和管理的實(shí)際問題,提出了檢測(cè)設(shè)備的虛擬控制面板的技術(shù)方案,在面向設(shè)備管理的IoT(Internet of Things)云服務(wù)平臺(tái)上構(gòu)建了Web(World Wide Web)接口服務(wù)器,建立物聯(lián)網(wǎng)檢測(cè)終端的Web 抽象操作接口。基于此Web 服務(wù),在Android wear[6-7]平臺(tái)上設(shè)計(jì)開發(fā)了一款虛擬面板APP的虛擬客戶端,其主要功能是用戶可以基于自身喜好,自主定義界面的按鍵功能,實(shí)現(xiàn)實(shí)驗(yàn)室設(shè)備與虛擬面板的綁定連接交互,以方便用戶的操作,從而大大提升移動(dòng)終端的智能化操作體驗(yàn)。

      1 總體方案設(shè)計(jì)

      虛擬面板云服務(wù)設(shè)備檢測(cè)系統(tǒng)包括連接平臺(tái)的設(shè)備、云平臺(tái)服務(wù)器、WSGI(Web Server Gateway Interface) Web 服務(wù)器、虛擬操控APP。云平臺(tái)將原檢測(cè)設(shè)備通過適配接入云端服務(wù)平臺(tái),從而可構(gòu)建管理者和設(shè)備基于Internet的信息交互通道。該服務(wù)平臺(tái)基于SOA(Service-Oriented Architecture)架構(gòu)[8-10](面向服務(wù)的體系結(jié)構(gòu))和jetty 容器技術(shù),為用戶提供標(biāo)準(zhǔn)化的設(shè)備連接接口服務(wù)。

      WSGI Web 服務(wù)器,目的是為第三方服務(wù)請(qǐng)求提供規(guī)范接口,WSGI Web 服務(wù)器可將第三方服務(wù)請(qǐng)求映射為不同云服務(wù)平臺(tái)上的操作??蓪?shí)現(xiàn)不同服務(wù)平臺(tái)不同種類設(shè)備的一致性操作規(guī)范。如圖1 所示構(gòu)建的WSGI Web 服務(wù)器,即檢測(cè)設(shè)備Web 服務(wù)接口,它為基于智能手表上的虛擬控制面板的APP 提供統(tǒng)一的接口,服務(wù)器端響應(yīng)客戶端虛擬面板的請(qǐng)求將之映射成為對(duì)底層基礎(chǔ)云平臺(tái)的操作。

      圖1 物聯(lián)設(shè)備的管控機(jī)制Fig.1 Control mechanism of IoT devices

      在虛擬操控面板APP的設(shè)計(jì)中,筆者提出虛擬控制面板的設(shè)計(jì),其整體邏輯設(shè)計(jì)框架如圖2 所示。人機(jī)交互模塊完成虛擬控制面板APP 與人之間的交互,包括實(shí)現(xiàn)APP 對(duì)用戶操作信息的獲取和對(duì)用戶通知的操作;自定義模塊完成用戶對(duì)虛擬面板自定義的邏輯處理;控制模塊包括用戶對(duì)設(shè)備進(jìn)行監(jiān)控操作的邏輯處理;而邏輯處理模塊則協(xié)調(diào)上述兩個(gè)模塊,實(shí)現(xiàn)人機(jī)界面操作和設(shè)備監(jiān)控邏輯處理的統(tǒng)一。

      圖2 虛擬控制面板設(shè)計(jì)結(jié)構(gòu)Fig.2 Design structure of virtual control panel

      2 系統(tǒng)內(nèi)部消息傳遞機(jī)制

      WSGI 服務(wù)器和云平臺(tái)之間、虛擬操控APP 和WSGI 服務(wù)器之間采用C/S(Client-Server)架構(gòu)模式,均采用url 消息格式發(fā)出請(qǐng)求和http+json的消息格式接收返回消息完成信息交互。

      2.1 WSGI 服務(wù)器和云平臺(tái)的交互

      云平臺(tái)服務(wù)器以HTTP(Hyper Text Transfer Protocol)消息的格式給第三方應(yīng)用暴露了一個(gè)設(shè)備的接口。這個(gè)接口以u(píng)rl的形式呈現(xiàn):

      2.2 虛擬面板APP 和WSGI 服務(wù)器的交互

      虛擬面板APP 和WSGI 服務(wù)器間消息傳遞的格式,可使用統(tǒng)一HTTP 消息請(qǐng)求格式,例如服務(wù)器暴露的HTTP 格式的接口形式為

      urlPath 用于映射服務(wù)器內(nèi)不同的處理函數(shù),利用urlPath 建立分類訪問控制,例如urlPath 為controlAirconditioner 時(shí)表示是對(duì)空調(diào)進(jìn)行控制的請(qǐng)求,而param 參數(shù)則可為deviceId、temp 等,表示對(duì)指定設(shè)備號(hào)請(qǐng)求溫度信息。

      WSGI 響應(yīng)消息格式同云平臺(tái)服務(wù)器返回的消息格式。

      3 虛擬控制面板實(shí)現(xiàn)

      3.1 虛擬控制面板的功能

      首先在Android 端建數(shù)據(jù)庫模型[11],虛擬控制面板就可以從后臺(tái)獲取用戶和設(shè)備的基本信息,但考慮到每次打開虛擬控制面板,都要重新從邏輯處理模塊獲取信息,會(huì)造成內(nèi)存資源的浪費(fèi)和線程的占用,嚴(yán)重影響了虛擬控制面板的客戶體驗(yàn)。所以在虛擬面板的客戶端,基于Android的組件content provider,使用輕量級(jí)的數(shù)據(jù)庫SQLite 在客戶端保存設(shè)備和用戶信息。從而當(dāng)邏輯處理模塊的數(shù)據(jù)更新時(shí),客戶端相應(yīng)的存儲(chǔ)信息也會(huì)同步更新,在每次重新打開虛擬控制面板時(shí),用戶和設(shè)備信息也都會(huì)保留在虛擬控制面板的客戶端上。

      如圖3 所示,客戶端界面設(shè)有數(shù)個(gè)自定義按鍵,用戶可根據(jù)實(shí)驗(yàn)設(shè)備的數(shù)量、種類自由添加、減少按鍵的數(shù)量,設(shè)置按鍵與設(shè)備的綁定連接(連接部分功能主要由服務(wù)器操作)。

      圖3 虛擬控制面板示例圖Fig.3 Example of virtual control panel

      當(dāng)進(jìn)入虛擬控制面板并完成用戶和設(shè)備的注冊(cè)后,選擇長(zhǎng)按其中一個(gè)按鈕,此時(shí)會(huì)觸發(fā)相應(yīng)的監(jiān)聽器,通知系統(tǒng)該按鍵被選中,并通過顯式Intent,調(diào)轉(zhuǎn)到一個(gè)新的虛擬面板界面,在該界面完成按鍵與設(shè)備的綁定,實(shí)現(xiàn)虛擬面板自定義模塊的核心功能。

      在按鍵自定義界面,輸入設(shè)備ID 號(hào)、設(shè)備名稱、設(shè)備類型、MAC(Media Access Control)地址,并在客戶端數(shù)據(jù)庫中進(jìn)行查找,如果該設(shè)備已經(jīng)在數(shù)據(jù)庫中注冊(cè),則檢索到該設(shè)備信息,并將該家居設(shè)備添加到對(duì)應(yīng)按鈕的數(shù)據(jù)模型中[12],然后通知用戶綁定成功,并返回虛擬控制面板主界面,此時(shí)點(diǎn)擊該按鍵,觸發(fā)一個(gè)監(jiān)聽器,執(zhí)行監(jiān)聽事件,虛擬面板控制模塊的實(shí)現(xiàn)主要在該監(jiān)聽事件中完成。

      3.2 虛擬控制面板Android 端實(shí)現(xiàn)

      Android 開發(fā)的4 個(gè)組件分別是:Activity、Service、BroadcastReceiver、Content Provider[13-15]。筆者使用Activity 組件構(gòu)建了MainActivity、Conditioner-Activity 等實(shí)體提供操作的主界面、空調(diào)界面等,利用后臺(tái)Service 服務(wù)構(gòu)建了ReceiveMessge()等函數(shù)與WSGI 服務(wù)器交互消息,利用BroadcastReceiver 監(jiān)聽返回的消息然后利用ContentProvider 在各個(gè)界面上顯示W(wǎng)SGI 服務(wù)器的響應(yīng)消息。

      以空調(diào)控制界面的實(shí)現(xiàn)為例,具體闡釋虛擬控制面板的實(shí)現(xiàn)。創(chuàng)建一個(gè)airconditionerActivity 對(duì)象,在這個(gè)Activity 中創(chuàng)建一個(gè)mButton的按鍵,然后使用setOnClickListener()實(shí)現(xiàn)按鍵的點(diǎn)擊事件,在這個(gè)事件的代碼中,使用ReceiveMessage()實(shí)現(xiàn)設(shè)備控制邏輯和APP 界面結(jié)果顯示。

      ReceiveMessage()函數(shù)有兩個(gè)參數(shù),一個(gè)是url,可表示為用戶進(jìn)行的設(shè)備操控動(dòng)作意圖,另一個(gè)是TextView 組件名稱,從服務(wù)器返回的結(jié)果將在這個(gè)組件上顯示。該函數(shù)使用OkHttp 消息通信框架中的Request 對(duì)象對(duì)服務(wù)器發(fā)出請(qǐng)求,然后將Request 對(duì)象封裝在Call 對(duì)象中,進(jìn)一步地在OnFailure()和OnReponse()函數(shù)中將返回的結(jié)果通過TextView 組件的setText()方法顯示在界面上。

      4 WGSI 服務(wù)器實(shí)現(xiàn)

      服務(wù)器的用戶信息存儲(chǔ)使用Redis 數(shù)據(jù)庫,以提高服務(wù)器的響應(yīng)速度,因?yàn)镽edis 讀寫的速度要遠(yuǎn)超MySql 數(shù)據(jù)庫讀寫的速度,并且先要完成MySql 數(shù)據(jù)庫中的數(shù)據(jù)到Redis 數(shù)據(jù)庫中的遷移,同時(shí)給出數(shù)據(jù)一致的控制機(jī)制,即在用戶更改消息時(shí),在修改完MySql 中的內(nèi)容后同時(shí)修改Redis 數(shù)據(jù)庫中的內(nèi)容。

      筆者使用基于Python 語言構(gòu)建的flask 框架,使用該框架實(shí)現(xiàn)的微WSGI 服務(wù)器接收url 形式的HTTP請(qǐng)求,利用其路由系統(tǒng)分發(fā)HTTP 消息的機(jī)制,即實(shí)現(xiàn)url 和視圖函數(shù)(實(shí)現(xiàn)業(yè)務(wù)邏輯功能)的綁定。筆者自定義了注冊(cè)、登錄、設(shè)備控制等視圖函數(shù)實(shí)現(xiàn)服務(wù)器的功能,具體實(shí)現(xiàn)如下。

      1) 用戶注冊(cè)。如下代碼中,在route 方法中,傳入‘/register'參數(shù),服務(wù)器將HTTP 請(qǐng)求消息傳送給flask的前端控制器攔截器包裝成request 對(duì)象然后傳送給路由系統(tǒng),通過Python 語言的裝飾器機(jī)制,路由系統(tǒng)建立所有路徑部分為register的url 與register()函數(shù)的映射,從而實(shí)現(xiàn)url 對(duì)邏輯處理函數(shù)的調(diào)用。同時(shí)通過flask.request.form.get()方法提取出url 攜帶的參數(shù)部分,即email 和password,然后實(shí)現(xiàn)邏輯處理功能。關(guān)鍵代碼如下:

      Flask 框架通過flask.request.form.get 方法獲取用戶所輸入的email 和密碼,當(dāng)均不為空時(shí)將用戶信息以u(píng)sers 字段存儲(chǔ)在哈希表中,同時(shí)在MySql 中修改,完成注冊(cè)后返回注冊(cè)成功信息。

      2) 用戶登錄。在接收到客戶端發(fā)送的url 參數(shù)“/login”后,Flask 框架映射到視圖函數(shù)login()進(jìn)行用戶登錄,關(guān)鍵代碼如下:

      框架通過flask.request.form.get()方法從表單中獲取email 和密碼。檢測(cè)所輸入的信息是否存在于Redis 數(shù)據(jù)庫中的哈希表users 字段,如果存在,則返回登錄成功消息,由客戶端自行跳轉(zhuǎn)到主界面。

      3) 設(shè)備控制。將客戶端傳送的HTTP 消息中攜帶的參數(shù)傳送給getAirCondittionerTempAndHum(),這個(gè)函數(shù)封裝了后臺(tái)服務(wù)器的服務(wù),關(guān)鍵代碼如下:

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

      在智能手表上對(duì)實(shí)驗(yàn)室設(shè)備進(jìn)行機(jī)械特性、電氣特性以及通信特性等方面的測(cè)試,其頂層界面和第2 層界面如圖4a 和圖4b 所示,其操作結(jié)果對(duì)應(yīng)于實(shí)驗(yàn)室的不同種類設(shè)備的實(shí)測(cè)結(jié)果,對(duì)比如圖5 所示。

      圖4 智能手表操控界面Fig.4 Control interface of smart watch

      圖5 實(shí)驗(yàn)室現(xiàn)場(chǎng)設(shè)備運(yùn)行狀況Fig.5 Operation status of laboratory field equipment

      測(cè)試表明,運(yùn)行于智能手表上的虛擬操控界面可完成實(shí)驗(yàn)室現(xiàn)場(chǎng)設(shè)備的遠(yuǎn)程管理和監(jiān)控。實(shí)驗(yàn)室環(huán)境可得到良好的控制。

      6 結(jié) 語

      筆者通過分析實(shí)驗(yàn)室的檢測(cè)設(shè)備管理現(xiàn)狀,針對(duì)設(shè)備控制繁瑣的實(shí)際需求,提出了虛擬控制面板解決方案,給出了檢測(cè)設(shè)備操控平臺(tái)的整體技術(shù)架構(gòu)與技術(shù)路線。基于Web 服務(wù)給出了具體的設(shè)計(jì)方法,完成了系統(tǒng)的WSGI Web 服務(wù)器端的邏輯設(shè)計(jì)與代碼編寫,設(shè)計(jì)與實(shí)現(xiàn)了虛擬控制面板,并對(duì)整個(gè)系統(tǒng)進(jìn)行了測(cè)試。系統(tǒng)應(yīng)用測(cè)試說明技術(shù)方案的合理性,解放了實(shí)驗(yàn)室管理人員的大量工作,為遠(yuǎn)程實(shí)驗(yàn)室及設(shè)備管理和監(jiān)控提供了極大的便利,提高了實(shí)驗(yàn)室管理的效率,充分發(fā)揮了檢測(cè)設(shè)備的使用效能。

      猜你喜歡
      控制面板按鍵面板
      面板燈設(shè)計(jì)開發(fā)與應(yīng)用
      基于有限狀態(tài)機(jī)的按鍵檢測(cè)程序設(shè)計(jì)
      電子制作(2021年3期)2021-06-16 03:14:26
      MasterCAM在面板類零件造型及加工中的應(yīng)用
      模具制造(2019年4期)2019-06-24 03:36:50
      Photoshop CC圖庫面板的正確打開方法
      多種方法找回傳統(tǒng)控制面板
      電腦愛好者(2017年9期)2017-06-01 21:45:00
      醫(yī)院手術(shù)室電氣控制面板的改造設(shè)計(jì)與應(yīng)用
      一種多方向?qū)Ч獍存I結(jié)構(gòu)設(shè)計(jì)
      電子制作(2016年1期)2016-11-07 08:43:05
      Windows 10打開控制面板方法匯總
      電腦迷(2015年3期)2015-04-29 21:59:57
      高世代TFT-LCD面板生產(chǎn)線的產(chǎn)能評(píng)估
      按鍵的多種狀態(tài)檢測(cè)及消抖處理方法
      家電科技(2013年4期)2013-07-09 10:55:08
      睢宁县| 长海县| 海淀区| 辰溪县| 平陆县| 银川市| 藁城市| 晴隆县| 万全县| 荥阳市| 迁安市| 武定县| 河源市| 昌图县| 崇明县| 滕州市| 栖霞市| 得荣县| 眉山市| 庆阳市| 荆门市| 砚山县| 蓬溪县| 印江| 福鼎市| 陆丰市| 湟中县| 兴城市| 晋州市| 阿拉善右旗| 右玉县| 贡嘎县| 乌苏市| 东辽县| 西青区| 繁峙县| 浮梁县| 五峰| 张家港市| 房产| 津南区|