李 虹
(北京航天拓?fù)涓呖萍加邢挢?zé)任公司,北京 100176)
隨著計算機、互聯(lián)網(wǎng)技術(shù)和移動通信網(wǎng)絡(luò)的迅速普及和發(fā)展,傳統(tǒng)的機械設(shè)備狀態(tài)監(jiān)測與故障診斷已經(jīng)無完全滿足該領(lǐng)域的要求。為提高機械設(shè)備狀態(tài)監(jiān)測的及時性和可用性,便于監(jiān)測人員快速、高效進(jìn)行設(shè)備數(shù)據(jù)管理和監(jiān)測,基于移動端的機械設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng)應(yīng)運而生。設(shè)計開發(fā)基于移動端的設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng),實現(xiàn)移動端—服務(wù)器—數(shù)據(jù)庫數(shù)據(jù)監(jiān)測系統(tǒng)設(shè)計與搭建,能顯著提升設(shè)備數(shù)據(jù)的監(jiān)測管理能力,推動機械設(shè)備狀態(tài)監(jiān)測與故障診斷技術(shù)的發(fā)展。
設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng)通過全面、精準(zhǔn)的在線監(jiān)測功能,實現(xiàn)對整個工藝流程全方位監(jiān)測,結(jié)合通信技術(shù)、計算機技術(shù)、數(shù)據(jù)庫技術(shù)實時將監(jiān)測數(shù)據(jù)傳輸?shù)絇C端,實現(xiàn)遠(yuǎn)程監(jiān)控及系統(tǒng)監(jiān)測數(shù)據(jù)的存儲、管理;然后通過數(shù)據(jù)統(tǒng)計及分析,形成符合系統(tǒng)運行規(guī)律的數(shù)據(jù)監(jiān)測;最后實現(xiàn)移動端與PC端的數(shù)據(jù)訪問[1],構(gòu)建移動端—服務(wù)器—數(shù)據(jù)庫數(shù)據(jù)監(jiān)測系統(tǒng),以Android—Java Web—Oracle為例進(jìn)行搭建。
(1)Android操作系統(tǒng)基于Linux內(nèi)核開發(fā)而成,其因體系完整、自由且源代碼開放而頻繁應(yīng)用于移動平板電腦、手機等便攜設(shè)備中,如今,該操作系統(tǒng)已然超出了單純的手機操作系統(tǒng)范疇,能夠靈活應(yīng)用于基于移動端的各項事務(wù)[2]。
(2)Java Web是用Java技術(shù)解決相關(guān)Web互聯(lián)網(wǎng)領(lǐng)域的技術(shù)總和,在設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng)中主要作用于服務(wù)器部分,采用MVC(Model View Controller,模型視圖控制器)設(shè)計架構(gòu)并使用Servlet響應(yīng)移動端的數(shù)據(jù)請求和數(shù)據(jù)庫訪問。
(3)Oracle Database是目前較為主流的關(guān)系數(shù)據(jù)庫管理系統(tǒng),其具備可移植性好、使用方便、功能強大等特性,適用于各類大、中、小、微機環(huán)境,是一種高效率、可靠性好、適應(yīng)高吞吐量的數(shù)據(jù)庫解決方案[3]。
基于移動端的設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng)主要由設(shè)備數(shù)據(jù)采集端、服務(wù)器端及客戶端構(gòu)成,其中,設(shè)備數(shù)據(jù)采集模塊包括數(shù)據(jù)監(jiān)測點及數(shù)據(jù)采集發(fā)送終端,主要實現(xiàn)機械設(shè)備數(shù)據(jù)的采集和發(fā)送;服務(wù)器模塊包括Java Web服務(wù)器及數(shù)據(jù)庫服務(wù)器,主要實現(xiàn)數(shù)據(jù)請求響應(yīng)及用戶權(quán)限管理等業(yè)務(wù);客戶終端包括PC終端和移動端,主要實現(xiàn)數(shù)據(jù)的終端瀏覽及報表分析。設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng)架構(gòu)如圖1所示。

圖1 設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng)架構(gòu)
設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng)基本工作流程:Android客戶端通過HTTP-POST請求,以Json格式數(shù)據(jù)與服務(wù)器中間件進(jìn)行交互[4],服務(wù)器Servlet通過SQL語句訪問數(shù)據(jù)庫后響應(yīng)Android客戶端,流程如圖2所示。
基于移動端的設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng)主要針對數(shù)據(jù)監(jiān)測需求,實現(xiàn)基于移動端設(shè)備地域分布顯示、工藝流程顯示及相關(guān)數(shù)據(jù)監(jiān)測、報警信息推送、歷史數(shù)據(jù)信息統(tǒng)計報表等功能。相應(yīng)功能模塊構(gòu)建如下:

圖2 基本工作流程
(1)設(shè)備地域分布。設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng)中,設(shè)備的地域分布顯示及重點數(shù)據(jù)瀏覽功能主要根據(jù)相關(guān)場站及重點設(shè)備的經(jīng)緯度坐標(biāo)在地圖上進(jìn)行標(biāo)點,構(gòu)建場站網(wǎng)絡(luò)分布圖,并對相應(yīng)經(jīng)緯度點添加單擊響應(yīng)實現(xiàn)場站數(shù)據(jù)顯示及切換。本項目搭建主要使用高德地圖Android SDK地圖開發(fā)調(diào)用接口,加入地圖的相關(guān)功能。
(2)工藝流程圖及數(shù)據(jù)監(jiān)測。設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng)的工藝流程圖及數(shù)據(jù)監(jiān)測,主要實現(xiàn)工藝流程圖展示及場站詳細(xì)數(shù)據(jù)的輪詢請求,實現(xiàn)場站數(shù)據(jù)的實時監(jiān)測訪問。
(3)報警信息推送。設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng)的報警信息推送主要根據(jù)相關(guān)設(shè)備閾值判斷是否觸發(fā)報警,報警相關(guān)閾值信息存儲于報警信息數(shù)據(jù)庫列表。設(shè)備數(shù)據(jù)在寫入數(shù)據(jù)庫時進(jìn)行閾值判斷,若觸發(fā)警報,則將報警信息主動推送至移動設(shè)備端。本項目搭建過程中主要使用百度推送實現(xiàn)相關(guān)功能。
(4)數(shù)據(jù)信息報表。數(shù)據(jù)信息報表主要根據(jù)設(shè)備場站數(shù)據(jù)進(jìn)行數(shù)據(jù)篩選及匯總,繪制數(shù)據(jù)走勢圖及數(shù)據(jù)信息圖表,包括年度數(shù)據(jù)分析、季度數(shù)據(jù)分析、月數(shù)據(jù)分析及日數(shù)據(jù)分析。
UI(User Interface,用戶界面)界面設(shè)計主要包括:用戶登錄界面、設(shè)備地域分布及重點數(shù)據(jù)顯示界面、工藝流程圖及數(shù)據(jù)顯示界面、數(shù)據(jù)走勢圖顯示界面、數(shù)據(jù)報表顯示界面、報警信息列表及詳細(xì)信息界面、個人中心界面。
界面設(shè)計理念要求應(yīng)用程序的界面設(shè)計符合用戶的操作習(xí)慣、視覺喜好、簡潔性等特性,分析相關(guān)功能需求,針對用戶喜好制定相應(yīng)策略:界面搭建由Layout布局文件嵌套實現(xiàn),輔以ListView,TextView,Button,EditView,ImageView,Toast,MPAndroidChart,高德地圖 MapView,AlertDialog及自定義 Dialog,Adapter,自定義View組件等相關(guān)控件繪制UI界面[5]。
(1)設(shè)備地域分布及重點數(shù)據(jù)顯示。設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng)中的場站設(shè)備地域分布主要基于高德地圖Android SDK實現(xiàn),下拉菜單PopupWindow。高德地圖的SDK使用流程如下:
①在AndroidManifest.xml文件中進(jìn)行相關(guān)網(wǎng)絡(luò)權(quán)限設(shè)置,確保地圖功能能夠正常使用。
②application標(biāo)簽設(shè)置高德key,導(dǎo)入地圖包:<meta-data android:name="com.amap.api.v2.apikey"android:value="key"/>。
③初始化地圖容器MapView,在View繪制中添加地圖容器,并在Activity中合理管理生命周期。
最后使用AMap類操作地圖,包括:添加點標(biāo)記(Marker)、繪制幾何圖形(Polyline,Polygon,Circle)、各類事件監(jiān)聽(點擊、手勢)等。場站分布如圖3所示。
(2)工藝流程圖及數(shù)據(jù)監(jiān)測。設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng)中工藝流程圖主要涉及工藝流程圖的顯示、縮放及回收。該功能模塊使用基于DrawerLayout+Tool-Bar+BaseAdapter的ListView實現(xiàn)設(shè)備站點的工藝流程圖及相關(guān)數(shù)據(jù)切換,數(shù)據(jù)請求訪問為基于OkHttp的異步訪問請求,其通過Handler進(jìn)行UI更新。工藝流程圖及數(shù)據(jù)顯示如圖4所示。

圖3 場站分布圖
(3)報警信息推送。設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng)的報警推送功能主要借助于百度推送平臺,導(dǎo)入云推送jar包和so文件,并配置相關(guān)權(quán)限設(shè)置及service服務(wù),在當(dāng)前工程主Activity的onCreate函數(shù)中,添加代碼以啟動云推送服務(wù):
PushManager.startWork(getApplicationContext(),PushConstants.LOGIN_TYPE_API_KEY,"api_key")
而后,新建類并填寫接收云推送回調(diào)信息和推送到達(dá)信息的類的類名,重載所有的回調(diào)函數(shù)。此外,服務(wù)器端Java Web端需綁定對應(yīng)云推送key以建立云推送通道。
(4)數(shù)據(jù)信息報表。數(shù)據(jù)信息報表主要根據(jù)設(shè)備場站數(shù)據(jù)繪制數(shù)據(jù)走勢圖及數(shù)據(jù)信息圖表,使用MPAndroidChart繪制數(shù)據(jù)曲線走勢圖,使用自定義表盤控件實現(xiàn)數(shù)據(jù)當(dāng)日計量,數(shù)據(jù)交互使用Json數(shù)據(jù)格式,OkHttp異步網(wǎng)絡(luò)請求。數(shù)據(jù)曲線走勢如圖5a所示,數(shù)據(jù)報表如圖5b所示。

圖4 工藝流程
互聯(lián)網(wǎng)、移動通信技術(shù)的迅速普及不斷推動機械設(shè)備狀態(tài)監(jiān)測與故障診斷的發(fā)展,輕巧便捷成為設(shè)備檢測與故障診斷技術(shù)的目標(biāo)之一。設(shè)計開發(fā)基于移動端的設(shè)備數(shù)據(jù)監(jiān)測系統(tǒng)能夠有效幫助監(jiān)測人員快速、高效地實現(xiàn)數(shù)據(jù)監(jiān)測管理,從而顯著提升機械設(shè)備數(shù)據(jù)的監(jiān)測管理能力及數(shù)據(jù)統(tǒng)計能力[6],推動機械設(shè)備狀態(tài)監(jiān)測與故障診斷技術(shù)的發(fā)展。

圖5 數(shù)據(jù)信息報表
[1]陳建剛.基于Android客戶端和Web服務(wù)器的個人健康檔案系統(tǒng)[D].北京:北京郵電大學(xué),2012.
[2]李虹.基于Android的東巴經(jīng)典傳承人機交互移動端設(shè)計與開發(fā)[D].北京:北京信息科技大學(xué),2017.
[3]肖莉.網(wǎng)站建設(shè)中如何選擇數(shù)據(jù)庫的標(biāo)準(zhǔn)[J].品牌與標(biāo)準(zhǔn)化,2012(2):62.
[4]黃淑靜,楊紅梅.利用JSON+WebService實現(xiàn)Android訪問遠(yuǎn)程數(shù)據(jù)庫[J].IT 論壇,2013(9):98-99.
[5]李寧.Android開發(fā)權(quán)威指南[M].北京:人民郵電出版社,2011.
[6]A.Niknejad.A Quality Evaluation ofan Android Smartphone Application[D].Sweden:University of Gothenbarg.2012.