歐陽晨皓,黃永帥,劉冠蘭,2,史俊波,2
(1. 武漢大學(xué)測繪學(xué)院,湖北 武漢 430079; 2. 精密工程與工業(yè)測量國家測繪地理信息局重點實驗室,湖北 武漢 430079)
水平位移形變監(jiān)測為工程安全提供依據(jù),是軌道交通工程中十分重要的一環(huán)。隨著移動互聯(lián)技術(shù)和智能終端的發(fā)展及廣泛應(yīng)用,水平位移形變監(jiān)測正向高度自動化方向發(fā)展[1]。在自動化過程中,需考慮監(jiān)測的即時性和數(shù)據(jù)安全問題。傳統(tǒng)水平位移監(jiān)測數(shù)據(jù)采集中,監(jiān)測結(jié)果反饋周期長,監(jiān)測即時性差;原始記錄、最終結(jié)果均需要經(jīng)過監(jiān)測人員干預(yù),數(shù)據(jù)記錄原始性、保密性、安全性差[2-6]。
針對上述問題,本文基于軌道交通工程實際要求,開發(fā)實現(xiàn)了一套基于Android設(shè)備的水平位移即時監(jiān)測終端軟件,利用Android設(shè)備的藍(lán)牙功能、網(wǎng)絡(luò)通信功能分別與測量儀器、后臺服務(wù)器通信,實時獲取儀器測量信息及服務(wù)端測量信息,實時計算、預(yù)警,保證了監(jiān)測的即時性。軟件中嵌入DES(data encryption algorithm)對稱加密算法[7-9],監(jiān)測人員無法干預(yù)監(jiān)測數(shù)據(jù)記錄、計算過程,從而保證了監(jiān)測過程中“數(shù)據(jù)不落地”,完善了安全機制。本文首先介紹軟件架構(gòu)、功能特性,然后描述Android設(shè)備與測量儀器之間藍(lán)牙通信開發(fā)及數(shù)據(jù)加密流程,最后詳細(xì)講述各模塊功能,給出相關(guān)結(jié)論。
監(jiān)測軟件終端依據(jù)數(shù)據(jù)通信鏈路不同分為兩部分,分別為Android設(shè)備與測量儀器、Android設(shè)備與服務(wù)端通信鏈路。兩條通信鏈路協(xié)作使監(jiān)測具備即時性。軟件對監(jiān)測記錄、成果進行加密,保證了數(shù)據(jù)安全。圖1為終端軟件框架。
為了克服人工記錄、計算測量儀器數(shù)據(jù)導(dǎo)致的記錄準(zhǔn)確性、處理實時性差的問題,同時考慮傳輸距離、硬件成本,軟件采用藍(lán)牙作為測量儀器與Android設(shè)備的通信媒介。對于無內(nèi)置藍(lán)牙的測量儀器,可借助儀器自帶的RS232數(shù)據(jù)接口,外接串口藍(lán)牙適配器。
Android設(shè)備通過藍(lán)牙向測量儀器發(fā)送命令,獲取儀器信息、配置度盤、控制儀器觀測,儀器解析命令后將請求的信息、配置結(jié)果、觀測結(jié)果返回給Android設(shè)備。獲得儀器觀測數(shù)據(jù)后,軟件將自動記錄并實時計算觀測數(shù)據(jù),與測量規(guī)范比對,若閉合差等檢核量超限將提示用戶重測測點/測回。最后,軟件將最終測量結(jié)果與往期數(shù)據(jù)比對,若變形超過閾值,將立即預(yù)警提示用戶。監(jiān)測作業(yè)結(jié)束后,軟件將對原始記錄、結(jié)果進行加密,將所有成果組織成報表。圖2為鏈路工作流程。
Android設(shè)備與服務(wù)端通過互聯(lián)網(wǎng)通信,數(shù)據(jù)交流遵循JSON(JavaScript object notation)格式。根據(jù)作業(yè)步驟,可將該通信鏈路的交互內(nèi)容分為兩種:一是在監(jiān)測準(zhǔn)備階段,軟件需要向服務(wù)器請求測站屬性信息,也可通過軟件在服務(wù)端新建測站信息,包括測站所屬線路、工點、測站名稱、監(jiān)測點坐標(biāo)、監(jiān)測點變形閾值。二是在監(jiān)測完成階段,軟件將監(jiān)測獲取的原始記錄、計算結(jié)果、監(jiān)測點變形量發(fā)送給服務(wù)端,服務(wù)端獲取監(jiān)測結(jié)果后將其保存至數(shù)據(jù)庫。
另外軟件具備數(shù)據(jù)同步功能,可根據(jù)用戶給定的時間范圍,將對應(yīng)時段內(nèi)監(jiān)測記錄下載至Android設(shè)備,供用戶查看原始記錄、監(jiān)測點變形曲線等。圖3為鏈路工作流程。
為保證監(jiān)測數(shù)據(jù)不落地,首先利用藍(lán)牙通信將原始數(shù)據(jù)從全站儀串口傳輸至Android設(shè)備,而后在Android設(shè)備上利用“DES”算法對原始記錄、監(jiān)測成果進行加密。該過程中,用戶無法對原始數(shù)據(jù)進行編輯,保證了數(shù)據(jù)的原始性、準(zhǔn)確性、安全性。
藍(lán)牙短距離無線通信技術(shù)發(fā)展至今大致有5個版本,其中藍(lán)牙1.x~3.x為傳統(tǒng)藍(lán)牙(bluetooth BR/EDR),4.x~5.x為新一代的低功耗藍(lán)牙(bluetooth low energy)[10-11]。本文系統(tǒng)在開發(fā)初期考慮較低版本,全站儀均需要外接串口藍(lán)牙適配器,而市面上帶RS232串口轉(zhuǎn)接頭的藍(lán)牙適配器產(chǎn)品使用的藍(lán)牙標(biāo)準(zhǔn)大多為傳統(tǒng)藍(lán)牙標(biāo)準(zhǔn);另外新一代測量機器人,其內(nèi)置藍(lán)牙標(biāo)準(zhǔn)大多也為傳統(tǒng)藍(lán)牙,因此本文系統(tǒng)采用了傳統(tǒng)藍(lán)牙標(biāo)準(zhǔn)。
軟件基于Android Studio 2.2平臺開發(fā),使用的編程語言為JAVA。Android設(shè)備的傳統(tǒng)藍(lán)牙開發(fā)分兩步:藍(lán)牙外設(shè)搜索、連接,數(shù)據(jù)傳輸[12]。圖4為Android藍(lán)牙開發(fā)流程。
(1) Android藍(lán)牙外設(shè)搜索、連接。Android環(huán)境中的BluetoothAdapter類庫包含了藍(lán)牙狀態(tài)查詢、掃描、連接等操作函數(shù)。利用startDiscovery函數(shù)開始掃描藍(lán)牙外設(shè),該函數(shù)可獲取附件所有藍(lán)牙外設(shè)的MAC(介質(zhì)訪問控制)地址、名稱、RSSI(接收信號強度)等信息。搜索到目標(biāo)藍(lán)牙后,向目標(biāo)藍(lán)牙發(fā)起配對請求,完成配對。
配對完成后,即可令設(shè)備發(fā)起連接請求。Android設(shè)備與藍(lán)牙外設(shè)連接時,需要對應(yīng)通用唯一識別碼(UUID)開啟串行線性仿真協(xié)議(RFCOMM)信道,使用的函數(shù)為createRfcommSocketToService Record。信道開啟成功后,即可利用BluetoothSocket對象進行套接字通信。
(2) 藍(lán)牙數(shù)據(jù)傳輸。Android設(shè)備與外設(shè)藍(lán)牙連接完成后,即可利用getInputStream、getOutputStream函數(shù)從藍(lán)牙套接字對象獲取輸入、輸出流。開啟數(shù)據(jù)監(jiān)聽線程,利用輸入流獲取儀器端外設(shè)藍(lán)牙發(fā)來的數(shù)據(jù);當(dāng)Android設(shè)備向儀器發(fā)送命令時,則利用輸出流發(fā)送數(shù)據(jù),這樣便實現(xiàn)了Android設(shè)備與測量儀器雙向通信功能。
軟件兼容拓普康、徠卡兩種品牌全站儀。拓普康全站儀串口命令為SOKKIA/TOPCON格式,徠卡全站儀串口命令有GSI、GeoCOM兩種格式,使用的命令主要包括水平角置盤、開始觀測、停止觀測、角度/斜距信息獲取[13-15]。
DES是一種可逆的對稱分組加密算法,該算法在POS、ATM、IC卡等方面運用廣泛。加密過程大致包含3步:初始置換、子密鑰生成、16輪迭代運算及最終置換[7,16]。圖5為DES加密算法流程。
(1) 初始置換。置換的目的在于打亂原來64位明文、密鑰的順序,并依照初始置換表進行排列。
(2) 子密鑰生成。將置換后始密鑰分為左右兩半KL0及KR0,分別對KL0和KR0進行循環(huán)左移得到KL1和KR1,之后將得到的KL1和KR1合并再次按照新的置換表進行排列得到Key1,作為下一輪迭代的輸入。按照上述方法迭代16次,即得到16個子密鑰。
(3) 16輪迭代運算及最終置換。初始置換之后的明文分為左明文L0和右明文R0,長度均為32位。首先“擴展置換”將右明文擴展為48位,“密鑰變換”將本輪迭代的子密鑰壓縮為48位后,令兩者進行異或運算,得到的運算結(jié)果經(jīng)過“S盒置換”、“P盒置換”兩步得到新的32位變量,將該32位變量與左明文進行異或運算得到新的右明文R1,再將舊的右明文R0作為新的左明文L1,即得到新一輪迭代的輸入。按照上述過程進行16輪迭代,最后一輪迭代生成的左右明文不交替。按照最終置換規(guī)則排列16輪迭代后的明文,即得到最終加密結(jié)果。DES解密與加密過程類似,不同之處在于子密鑰使用順序相反。
軟件依據(jù)軌道交通工程施工現(xiàn)場水平位移監(jiān)測需求,共設(shè)計實現(xiàn)了7個功能模塊:用戶注冊/驗證、測站管理、監(jiān)測任務(wù)新建/加載、數(shù)據(jù)采集/實時預(yù)警、成果報表、數(shù)據(jù)同步、數(shù)據(jù)恢復(fù)。圖6為軟件模塊功能示意圖。以下對關(guān)鍵模塊進行展開描述。
圖7為監(jiān)測數(shù)據(jù)采集及實時預(yù)警模塊操作界面。該模塊用戶通過點擊“獲取數(shù)據(jù)”即可向全站儀發(fā)出觀測命令,等待儀器觀測完成、反饋觀測數(shù)據(jù)后,軟件將立即進行數(shù)據(jù)解析、顯示。一旦觀測數(shù)據(jù)累積到可以計算,軟件立即對可檢核的誤差指標(biāo)進行計算,包括平距較差、半測回歸零差、一測回內(nèi)2c互差、同方向各測回較差等,一旦指標(biāo)超限,軟件立刻提示用戶重測或加測。每一測回完成后都將計算一次測點坐標(biāo),與上期坐標(biāo)對比,計算變形量、變形速率,若指標(biāo)超限,將立刻向用戶發(fā)出預(yù)警,幫助監(jiān)測人員排查問題,排除安全隱患??紤]觀測人員在操作儀器時可能出現(xiàn)目標(biāo)對準(zhǔn)錯位等失誤,軟件允許用戶對當(dāng)前測點、測回或全部觀測任務(wù)重新觀測。另外軟件允許用戶在該界面重新選擇使用的儀器、串口命令格式及重新連接藍(lán)牙。
圖8為成果報表功能模塊操作界面及成果報表展示效果。用戶完成監(jiān)測作業(yè)后即可在該模塊查看測站原始數(shù)據(jù)、計算結(jié)果、形變信息。在確認(rèn)記錄無誤后即可上傳至服務(wù)器,服務(wù)器在接收到記錄后立即對各測點信息進行更新,對于水平位移超限的測點將立即在平臺風(fēng)險系統(tǒng)發(fā)布預(yù)警信息,作業(yè)人員對預(yù)警點處理、反饋后再消除預(yù)警。該模塊使得監(jiān)測內(nèi)業(yè)實現(xiàn)電子化、自動化,有效提高了作業(yè)效率。
圖9為數(shù)據(jù)同步模塊操作界面及歷史數(shù)據(jù)、變形曲線顯示效果。與任務(wù)新建模塊類似,用戶從服務(wù)器獲取線路、工點信息后,軟件將自動加載用戶選擇工點下的測站、測點,用戶設(shè)置監(jiān)測開始、截止日期后,即可從服務(wù)端同步到相應(yīng)時段內(nèi)的監(jiān)測記錄及成果。用戶選擇測站同步記錄后即可查看監(jiān)測原始記錄,選擇測點同步記錄后即可查看測點具體形變量及變形曲線。該模塊方便了監(jiān)測人員對施工現(xiàn)場監(jiān)測點形變信息進行分析,另外也使得監(jiān)測人員以外用戶可快速調(diào)取施工現(xiàn)場形變信息,促進參與工程施工的多方人員信息互通。
隨著移動互聯(lián)技術(shù)和智能終端的發(fā)展及在工程中的廣泛應(yīng)用,軌道交通工程監(jiān)測作業(yè)正向全自動化靠攏,在自動化過程中,監(jiān)測的即時性和數(shù)據(jù)的安全性顯得更加重要。
針對監(jiān)測過程的即時性和數(shù)據(jù)的安全性,本文設(shè)計實現(xiàn)了一套基于Android設(shè)備的水平位移即時監(jiān)測終端軟件。測量人員在作業(yè)階段能夠?qū)崟r處理規(guī)范指標(biāo)超限問題,及時排查、應(yīng)對儀器操作問題,實時獲取預(yù)警信息。監(jiān)測數(shù)據(jù)全部實時記錄、計算并加密,保證了數(shù)據(jù)的原始性、準(zhǔn)確性。與服務(wù)端互聯(lián)方便了用戶及時對監(jiān)測點形變進行分析,促進了施工信息互通。軟件的預(yù)警機制聯(lián)合服務(wù)端的風(fēng)險系統(tǒng)幫助監(jiān)測人員對事故預(yù)知,完善了施工安全機制。
目前本文水平位移監(jiān)測軟件已在某軌道交通工程中應(yīng)用,實際效果表明,該監(jiān)測終端軟件將施工現(xiàn)場測量儀器觀測信息與服務(wù)端工程信息綜合在一起,提升了監(jiān)測作業(yè)效率,確保了監(jiān)測數(shù)據(jù)不落地,有效保證了監(jiān)測即時性和數(shù)據(jù)安全性。