李惠蓉
(鹽城市產品質量監督檢驗所,江蘇 鹽城 224056)
本文的研究背景基于一個以新理念建設的實驗室。實驗室為建有智能化檢測系統,擁有多種先進的檢測檢驗設備。其中包含多個模塊,模塊之間互相獨立,通過開放的接口又可有機結合相互聯系。在擁有了如此多智能化設備后,實驗室管理人員也面臨一個問題:雖然大多數智能設備都提供了相應的控制軟件與APP,然而傳統的控制方法具有很大的局限性,針對每一個設備,都需要與之對應的APP,隨著智能設備數量的增多,用戶體驗將會變得非常糟糕,急需解決“人等機器”的難題。同時,無法統籌實驗設備信息和耗材消耗情況,也會使得工作人員在實際操作中遇到缺少補充情況。如果能通過智能終端反饋監測信息,實現對實驗室中設備使用情況和各種耗材的實時監控,將會很大程度減少工作人員的無意義的重復性工作。

圖1 云平臺整體架構
為實現檢測設備的實時在線監控功能,前期設計出一個功能較為齊全的智能實驗設備物聯應用服務平臺。面向物聯應用需求,實驗室面向檢測設備開發了適配器和云平臺服務。它可將原來的檢測設備通過適配接入云端服務平臺,從而可構建管理者和設備基于Internet的信息交互通道。云平臺整體架構如圖1所示,該服務平臺基于SOA架構(面向服務的體系結構),為開發者提供了用戶自定義服務開發及管理(UDS, User Defined Service)、公共服務組件(用戶鑒權、負載均衡)、智能設備接入、移動客戶端接入等基礎通用組件。通過云平臺,開發者可以只負責自定義服務而無需花費精力在云端服務的具體部署的工作上。
課題提出了一種可應用于智能設備控制系統的普適性的應用邏輯,以此來解決現有的智能設備控制方式復雜、用戶個性化需求不能滿足的問題,使得使用者可隨時隨地使用和控制智能設備。本論文擬基于檢測設備的物聯應用云服務平臺,增加一個WSGI Web服務器,來建立一個面向Web應用的管理接口,以將云平臺提供的基礎服務以Web服務形式暴露給第三方用戶,并基于此WSGI Web服務器,設計一個APP以在智能手表等可穿戴設備上來實現虛擬控制面板功能。
此種結構在自己構建的云服務平臺上設置一個WSGI Web服務器,目的是為第三方服務請求提供規范接口。WSGI Web服務器可將第三方服務請求映射為不同云服務平臺上的操作,可實現不同服務平臺、不同種類設備的一致性操作規范。WSGI web服務器為基于智能手表的虛擬控制面板APP提供一個統一的接口,服務器端響應客戶端虛擬面板的請求并將之映射成為對底層基礎云平臺的操作。基于以上的需求與思路,本系統的整體邏輯設計框架如圖2所示。

圖2 系統的整體邏輯
在檢測平臺的構建中,我們使用python語言的flask框架來進行開發。WSGI為Web應用框架與服務器提供了一個規范化的接口,使得開發者可以自由搭配Web框架與WSGI Web服務器。擬面板APP客戶端搭載于智能手表上,通過操作APP虛擬按鍵來響應整個系統。按鍵所賦予的請求將會從應用接口無線發送至WSGI Web服務器,WSGI Web服務器再將該請求傳送至相應的長連接服務器,最終由長連接服務器依APP請求,基于TCP/IP協議對智能電子設備群進行控制以及信息回饋。
Web服務器工作時由四個步驟構成:
建立連接:客戶端和服務器通過TCP/IP握手協議建立穩定TCP連接。
請求過程(HTTP Request):客戶端向服務器發送HTTP請求數據包,例如請求服務器的數據。
響應過程(HTTP Response):服務器向客戶端發送HTTP響應數據包。之后由客戶端解釋渲染內容。
關閉連接:客戶端與服務器斷開TCP連接
Android Wear是谷歌開發的Android系統的一個面向可穿戴設備的特殊版本。目前市場上的Wear OS設備將谷歌智能助理和通知服務集成在了移動可穿戴設備中。通過Wi-Fi、藍牙與蜂窩網絡,Android Wear設備可以實現與智能手機的通信。
Android Wear應用程序的開發也基于集成開發環境Android Studio,可以方便快捷的創建開發并打包發布Android Wear應用。在本課題的技術框架中,Android Wear應用程序采用了開源框架OKHTTP用于處理HTTP請求。OKHTTP支持谷歌的TCP傳輸層協議SPDY,可以最小化網絡延遲,提升傳輸傳輸效率,優化用戶體驗。另外OKHTTP框架還可以自動化選擇最優的Socket路線并維護,大大降低了請求延遲與握手次數。開發者可以方便地實現POST、GET等請求方法與請求回調用于直接返回對象以及session的保存。
本文設計的虛擬面板實現了多種品牌智能終端的整合。目前,各種品牌智能終端均有其相應的APP或操控平臺與之配合使用,在操作上十分繁雜。本操控面板通過我們自行構建的一個可以綜合不同云服務于一體的服務管控端,可對用戶已經在此平臺上綁定的不同品牌的智能終端進行操控,真正做到跨平臺的連接,使用上更加便捷。Android的應用構成和工作流程圖如圖3所示。

圖3 工作流程圖
在安裝完必要的開發工具組件后,就可以在Android Studio進行虛擬面板客戶端app的設計了。Android Studio的工程創建分兩個層級:第一個層級通過菜單File→New→New Project創建,這里的新項目是指新的工作空間,對應Eclipse的workspace;第二個層級通過菜單File→New→New Module創建,這里的新模塊是指一個單獨的APP工程,對應Eclipse的project。
用于智能設備檢測控制的虛擬控制面板應用系統的管控信息和狀態信息的流動過程如圖4所示。其中物聯云端平臺是虛擬面板設計中最核心的部分,該平臺負責接收虛擬面板服務管控端發來的控制指令,并解析該指令,控制具體的物聯網設備。當智能設備的運行狀態發生改變時,通過物聯云端平臺將更新后的信息發送給用戶。

圖4 基于設備檢測的虛擬面板工作機理圖
Android Wear的界面布局是在xml文件內完成設計的,布局采用線性布局Relative layout,由于界面布局主要通過添加布局元件實現,因此描述時不賦予代碼。虛擬面板界面主要分為主控界面和三個分支界面。
設備檢測主控界面即是APP的“主頁”,對應于主控界面中的三個按鍵,分別設計了“智能空調”、“智能電閘”、“智能開關”所對應的三個分支界面,點擊對應的按鍵APP就會響應進入響應的界面。
以“智能電閘”界面為例,在“智能電閘”界面內,設置了電閘的電量、功率、電壓、電流等數據的顯示元件,并增加了控制電閘開關的開關元件“switch”,如圖5所示。

圖5 “智能電閘”界面
在虛擬用戶界面控制模塊中,將檢測設備分為三類,通過向該按鍵添加的設備信息中的設備類型項,來確定該按鍵對應的智能設備屬于哪一項。
第一類是檢測簡單的智能設備,例如智能插座和智能開關。如果虛擬控制面板上的按鍵和這類設備綁定,則該按鍵的業務邏輯將會非常的簡單,用戶點擊該按鈕,則會直接向后臺的邏輯處理模塊發送一條觸發該按鍵的指令,邏輯處理模塊在收到該指令后,該指令的報頭部分,包含一個設備ID號,從而得知與該按鍵綁定的智能設備的設備ID,從而知道觸發該按鍵,要向哪一個具體設備發送指令,收到指令的邏輯處理模塊,根據設備ID號知道該設備的類型,從而會進行相應的數據處理和命令發送。
第二類是功能稍微復雜的設備,例如對智能空調的檢測。當通過輸入的設備類型,判斷與該按鍵綁定的設備為第二項,那么在點擊該按鍵的時候,會彈出一個菜單欄,在該菜單欄下會有一系列指令。點擊其中一個指令,則與該按鍵綁定的設備就會執行相應的操作,同樣,我們也是通過設備ID號找到對應的設備,用戶點擊菜單欄中的指令,指令先發送給邏輯處理模塊,邏輯處理模塊再收到該指令后,對該指令進行處理,將其轉化為具體的操作命令,發送給對應的設備。
第三類是操作功能復雜的智能設備,例如智能顯示設備。對于這類復雜的設備,會開發全新的虛擬控制面板來負責該類設備的操作。當按鍵與設備綁定之后,點擊該按鍵,虛擬控制面板會跳轉到操作該設備的虛擬控制面板,由該界面發出指令,經邏輯處理模塊后,將具體命令發送給設備并加以執行,檢測設備控制示意圖如圖6所示。

圖6 檢測設備控制示意圖
為實現實驗室設備管理規范化,論文提出了虛擬控制面板的設計理念,基于面向智能終端的物聯網云服務平臺,將Android Wear智能手表應用終端、WSGI Web服務器、實驗室的檢測設備有機結合互聯。為檢測設備提供了遠程實時操控服務。開發的基于云平臺的檢測設備虛擬控制面板應用系統,可為各種終端提供統一操作模式,解放了工作人員的日常工作,優化了實驗設備的利用效率,讓實驗室變得更加開放、智能。