李 虹
(北京航天拓?fù)涓呖萍加邢挢?zé)任公司,北京 100176)
隨著計(jì)算機(jī)、互聯(lián)網(wǎng)技術(shù)和移動(dòng)通信網(wǎng)絡(luò)的迅速普及和發(fā)展,傳統(tǒng)的機(jī)械設(shè)備狀態(tài)監(jiān)測(cè)與故障診斷已經(jīng)無(wú)完全滿足該領(lǐng)域的要求。為提高機(jī)械設(shè)備狀態(tài)監(jiān)測(cè)的及時(shí)性和可用性,便于監(jiān)測(cè)人員快速、高效進(jìn)行設(shè)備數(shù)據(jù)管理和監(jiān)測(cè),基于移動(dòng)端的機(jī)械設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)應(yīng)運(yùn)而生。設(shè)計(jì)開(kāi)發(fā)基于移動(dòng)端的設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng),實(shí)現(xiàn)移動(dòng)端—服務(wù)器—數(shù)據(jù)庫(kù)數(shù)據(jù)監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與搭建,能顯著提升設(shè)備數(shù)據(jù)的監(jiān)測(cè)管理能力,推動(dòng)機(jī)械設(shè)備狀態(tài)監(jiān)測(cè)與故障診斷技術(shù)的發(fā)展。
設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)通過(guò)全面、精準(zhǔn)的在線監(jiān)測(cè)功能,實(shí)現(xiàn)對(duì)整個(gè)工藝流程全方位監(jiān)測(cè),結(jié)合通信技術(shù)、計(jì)算機(jī)技術(shù)、數(shù)據(jù)庫(kù)技術(shù)實(shí)時(shí)將監(jiān)測(cè)數(shù)據(jù)傳輸?shù)絇C端,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控及系統(tǒng)監(jiān)測(cè)數(shù)據(jù)的存儲(chǔ)、管理;然后通過(guò)數(shù)據(jù)統(tǒng)計(jì)及分析,形成符合系統(tǒng)運(yùn)行規(guī)律的數(shù)據(jù)監(jiān)測(cè);最后實(shí)現(xiàn)移動(dòng)端與PC端的數(shù)據(jù)訪問(wèn)[1],構(gòu)建移動(dòng)端—服務(wù)器—數(shù)據(jù)庫(kù)數(shù)據(jù)監(jiān)測(cè)系統(tǒng),以Android—Java Web—Oracle為例進(jìn)行搭建。
(1)Android操作系統(tǒng)基于Linux內(nèi)核開(kāi)發(fā)而成,其因體系完整、自由且源代碼開(kāi)放而頻繁應(yīng)用于移動(dòng)平板電腦、手機(jī)等便攜設(shè)備中,如今,該操作系統(tǒng)已然超出了單純的手機(jī)操作系統(tǒng)范疇,能夠靈活應(yīng)用于基于移動(dòng)端的各項(xiàng)事務(wù)[2]。
(2)Java Web是用Java技術(shù)解決相關(guān)Web互聯(lián)網(wǎng)領(lǐng)域的技術(shù)總和,在設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)中主要作用于服務(wù)器部分,采用MVC(Model View Controller,模型視圖控制器)設(shè)計(jì)架構(gòu)并使用Servlet響應(yīng)移動(dòng)端的數(shù)據(jù)請(qǐng)求和數(shù)據(jù)庫(kù)訪問(wèn)。
(3)Oracle Database是目前較為主流的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),其具備可移植性好、使用方便、功能強(qiáng)大等特性,適用于各類大、中、小、微機(jī)環(huán)境,是一種高效率、可靠性好、適應(yīng)高吞吐量的數(shù)據(jù)庫(kù)解決方案[3]。
基于移動(dòng)端的設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)主要由設(shè)備數(shù)據(jù)采集端、服務(wù)器端及客戶端構(gòu)成,其中,設(shè)備數(shù)據(jù)采集模塊包括數(shù)據(jù)監(jiān)測(cè)點(diǎn)及數(shù)據(jù)采集發(fā)送終端,主要實(shí)現(xiàn)機(jī)械設(shè)備數(shù)據(jù)的采集和發(fā)送;服務(wù)器模塊包括Java Web服務(wù)器及數(shù)據(jù)庫(kù)服務(wù)器,主要實(shí)現(xiàn)數(shù)據(jù)請(qǐng)求響應(yīng)及用戶權(quán)限管理等業(yè)務(wù);客戶終端包括PC終端和移動(dòng)端,主要實(shí)現(xiàn)數(shù)據(jù)的終端瀏覽及報(bào)表分析。設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)架構(gòu)如圖1所示。
圖1 設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)架構(gòu)
設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)基本工作流程:Android客戶端通過(guò)HTTP-POST請(qǐng)求,以Json格式數(shù)據(jù)與服務(wù)器中間件進(jìn)行交互[4],服務(wù)器Servlet通過(guò)SQL語(yǔ)句訪問(wèn)數(shù)據(jù)庫(kù)后響應(yīng)Android客戶端,流程如圖2所示。
圖2 基本工作流程
基于移動(dòng)端的設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)主要針對(duì)數(shù)據(jù)監(jiān)測(cè)需求,實(shí)現(xiàn)基于移動(dòng)端設(shè)備地域分布顯示、工藝流程顯示及相關(guān)數(shù)據(jù)監(jiān)測(cè)、報(bào)警信息推送、歷史數(shù)據(jù)信息統(tǒng)計(jì)報(bào)表等功能。相應(yīng)功能模塊構(gòu)建如下:
(1)設(shè)備地域分布。設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)中,設(shè)備的地域分布顯示及重點(diǎn)數(shù)據(jù)瀏覽功能主要根據(jù)相關(guān)場(chǎng)站及重點(diǎn)設(shè)備的經(jīng)緯度坐標(biāo)在地圖上進(jìn)行標(biāo)點(diǎn),構(gòu)建場(chǎng)站網(wǎng)絡(luò)分布圖,并對(duì)相應(yīng)經(jīng)緯度點(diǎn)添加單擊響應(yīng)實(shí)現(xiàn)場(chǎng)站數(shù)據(jù)顯示及切換。本項(xiàng)目搭建主要使用高德地圖Android SDK地圖開(kāi)發(fā)調(diào)用接口,加入地圖的相關(guān)功能。
(2)工藝流程圖及數(shù)據(jù)監(jiān)測(cè)。設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)的工藝流程圖及數(shù)據(jù)監(jiān)測(cè),主要實(shí)現(xiàn)工藝流程圖展示及場(chǎng)站詳細(xì)數(shù)據(jù)的輪詢請(qǐng)求,實(shí)現(xiàn)場(chǎng)站數(shù)據(jù)的實(shí)時(shí)監(jiān)測(cè)訪問(wèn)。
(3)報(bào)警信息推送。設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)的報(bào)警信息推送主要根據(jù)相關(guān)設(shè)備閾值判斷是否觸發(fā)報(bào)警,報(bào)警相關(guān)閾值信息存儲(chǔ)于報(bào)警信息數(shù)據(jù)庫(kù)列表。設(shè)備數(shù)據(jù)在寫(xiě)入數(shù)據(jù)庫(kù)時(shí)進(jìn)行閾值判斷,若觸發(fā)警報(bào),則將報(bào)警信息主動(dòng)推送至移動(dòng)設(shè)備端。本項(xiàng)目搭建過(guò)程中主要使用百度推送實(shí)現(xiàn)相關(guān)功能。
(4)數(shù)據(jù)信息報(bào)表。數(shù)據(jù)信息報(bào)表主要根據(jù)設(shè)備場(chǎng)站數(shù)據(jù)進(jìn)行數(shù)據(jù)篩選及匯總,繪制數(shù)據(jù)走勢(shì)圖及數(shù)據(jù)信息圖表,包括年度數(shù)據(jù)分析、季度數(shù)據(jù)分析、月數(shù)據(jù)分析及日數(shù)據(jù)分析。
UI(User Interface,用戶界面)界面設(shè)計(jì)主要包括:用戶登錄界面、設(shè)備地域分布及重點(diǎn)數(shù)據(jù)顯示界面、工藝流程圖及數(shù)據(jù)顯示界面、數(shù)據(jù)走勢(shì)圖顯示界面、數(shù)據(jù)報(bào)表顯示界面、報(bào)警信息列表及詳細(xì)信息界面、個(gè)人中心界面。
界面設(shè)計(jì)理念要求應(yīng)用程序的界面設(shè)計(jì)符合用戶的操作習(xí)慣、視覺(jué)喜好、簡(jiǎn)潔性等特性,分析相關(guān)功能需求,針對(duì)用戶喜好制定相應(yīng)策略:界面搭建由Layout布局文件嵌套實(shí)現(xiàn),輔以ListView,TextView,Button,EditView,ImageView,Toast,MPAndroidChart,高德地圖 MapView,AlertDialog及自定義 Dialog,Adapter,自定義View組件等相關(guān)控件繪制UI界面[5]。
(1)設(shè)備地域分布及重點(diǎn)數(shù)據(jù)顯示。設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)中的場(chǎng)站設(shè)備地域分布主要基于高德地圖Android SDK實(shí)現(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中合理管理生命周期。
圖3 場(chǎng)站分布圖
最后使用AMap類操作地圖,包括:添加點(diǎn)標(biāo)記(Marker)、繪制幾何圖形(Polyline,Polygon,Circle)、各類事件監(jiān)聽(tīng)(點(diǎn)擊、手勢(shì))等。場(chǎng)站分布如圖3所示。
(2)工藝流程圖及數(shù)據(jù)監(jiān)測(cè)。設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)中工藝流程圖主要涉及工藝流程圖的顯示、縮放及回收。該功能模塊使用基于DrawerLayout+Tool-Bar+BaseAdapter的ListView實(shí)現(xiàn)設(shè)備站點(diǎn)的工藝流程圖及相關(guān)數(shù)據(jù)切換,數(shù)據(jù)請(qǐng)求訪問(wèn)為基于OkHttp的異步訪問(wèn)請(qǐng)求,其通過(guò)Handler進(jìn)行UI更新。工藝流程圖及數(shù)據(jù)顯示如圖4所示。
圖4 工藝流程
(3)報(bào)警信息推送。設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)的報(bào)警推送功能主要借助于百度推送平臺(tái),導(dǎo)入云推送jar包和so文件,并配置相關(guān)權(quán)限設(shè)置及service服務(wù),在當(dāng)前工程主Activity的onCreate函數(shù)中,添加代碼以啟動(dòng)云推送服務(wù):
而后,新建類并填寫(xiě)接收云推送回調(diào)信息和推送到達(dá)信息的類的類名,重載所有的回調(diào)函數(shù)。此外,服務(wù)器端Java Web端需綁定對(duì)應(yīng)云推送key以建立云推送通道。
(4)數(shù)據(jù)信息報(bào)表。數(shù)據(jù)信息報(bào)表主要根據(jù)設(shè)備場(chǎng)站數(shù)據(jù)繪制數(shù)據(jù)走勢(shì)圖及數(shù)據(jù)信息圖表,使用MPAndroidChart繪制數(shù)據(jù)曲線走勢(shì)圖,使用自定義表盤(pán)控件實(shí)現(xiàn)數(shù)據(jù)當(dāng)日計(jì)量,數(shù)據(jù)交互使用Json數(shù)據(jù)格式,OkHttp異步網(wǎng)絡(luò)請(qǐng)求。數(shù)據(jù)曲線走勢(shì)如圖5a所示,數(shù)據(jù)報(bào)表如圖5b所示。
互聯(lián)網(wǎng)、移動(dòng)通信技術(shù)的迅速普及不斷推動(dòng)機(jī)械設(shè)備狀態(tài)監(jiān)測(cè)與故障診斷的發(fā)展,輕巧便捷成為設(shè)備檢測(cè)與故障診斷技術(shù)的目標(biāo)之一。設(shè)計(jì)開(kāi)發(fā)基于移動(dòng)端的設(shè)備數(shù)據(jù)監(jiān)測(cè)系統(tǒng)能夠有效幫助監(jiān)測(cè)人員快速、高效地實(shí)現(xiàn)數(shù)據(jù)監(jiān)測(cè)管理,從而顯著提升機(jī)械設(shè)備數(shù)據(jù)的監(jiān)測(cè)管理能力及數(shù)據(jù)統(tǒng)計(jì)能力[6],推動(dòng)機(jī)械設(shè)備狀態(tài)監(jiān)測(cè)與故障診斷技術(shù)的發(fā)展。
圖5 數(shù)據(jù)信息報(bào)表