邱占芝,趙星甜,張崇,楊福安(大連交通大學軟件學院,遼寧大連116028)*
碼頭系靠泊智能手持終端信息顯示系統(tǒng)關鍵技術
邱占芝,趙星甜,張崇,楊福安
(大連交通大學軟件學院,遼寧大連116028)*
針對開敞式碼頭系靠泊網(wǎng)絡化監(jiān)控系統(tǒng)的控制需求,研發(fā)了系靠泊智能手持終端,闡述了基于Android平臺的系靠泊智能手持終端信息顯示系統(tǒng)4層體系結(jié)構(gòu)、系靠泊監(jiān)測數(shù)據(jù)傳輸方法、界面設計等關鍵技術.開發(fā)的智能系靠泊手持終端,可以使系泊船上操作者在系泊作業(yè)中,實時掌握纜力、護舷、系泊船等監(jiān)控對象的工作狀態(tài),接收纜力調(diào)節(jié)、預警和報警等作業(yè)指令,實現(xiàn)纜力的及時均衡調(diào)整,為開敞式碼頭系靠泊網(wǎng)絡化實時監(jiān)控系統(tǒng)安全與高效運行提供可靠的技術支撐.
系靠泊智能手持終端;信息顯示; Android平臺;開敞式碼頭
隨著經(jīng)濟貿(mào)易的快速增長,海上運輸業(yè)得到了迅猛發(fā)展,這導致了海岸線資源日益緊張與枯竭,港口建設呈現(xiàn)出船舶大型化、碼頭深水化、泊位離岸化的特點[1],因此,開敞式碼頭建設已經(jīng)成為必然.對于開敞式碼頭,由于直面海洋,系靠泊作業(yè)環(huán)境惡劣,風、海浪、潮流等環(huán)境動力要素對系靠作業(yè)安全構(gòu)成嚴重威脅,也影響系泊作業(yè)效率.在過大的風浪流作用下,船舶運動幅度將加劇,極易引起系泊纜力超限,造成斷纜事故發(fā)生[2].建立開敞式碼頭系靠泊網(wǎng)絡化實時監(jiān)控與預警系統(tǒng),可以為開敞式碼頭系靠泊作業(yè)的高效與安全提供技術支撐.為實現(xiàn)網(wǎng)絡化實時監(jiān)控與預警系統(tǒng)的控制目標,需要研發(fā)系靠泊智能手持終端.系泊船上操作者在系泊作業(yè)中,通過系靠泊智能手持終端,可以實時掌握纜力、護舷、系泊船等監(jiān)控對象的工作狀態(tài),接收纜力調(diào)節(jié)、預警和報警等作業(yè)指令,實現(xiàn)纜力的及時均衡調(diào)整.系靠泊智能手持終端信息顯示界面的設計,既要考慮到整體美觀性又要考慮到操作方便性,應確保系統(tǒng)整體功能性和美觀性的完美統(tǒng)一[3].根據(jù)android系統(tǒng)的特點,選擇Android平臺開發(fā)碼頭系靠泊智能手持終端顯示系統(tǒng).
論文基于開敞式碼頭系靠泊監(jiān)控與預警系統(tǒng)的需求,研究系靠泊智能手持終端信息顯示系統(tǒng)的層次結(jié)構(gòu)、系靠泊監(jiān)測數(shù)據(jù)傳輸與界面設計等,并通過手機模擬器驗證其有效性和可行性.
1.1架構(gòu)設計
系靠泊智能手持終端信息顯示系統(tǒng)主要顯示系泊纜力、護舷、系泊船等監(jiān)控對象的工作狀態(tài),接收纜力調(diào)節(jié)、預警報警等作業(yè)指令,具體包括:傳輸周期,系統(tǒng)工作狀態(tài)(正常、纜力調(diào)節(jié)、系泊等待、脫纜逃逸、飄蕩),系泊船作業(yè)狀態(tài)(系泊作業(yè)、系泊等待、離港),系泊船漂移量,纜繩數(shù)量,纜力狀態(tài)(正常、預警、報警),護弦狀態(tài)(正常、預警、報警)等作業(yè)指令.
智能手持終端信息顯示系統(tǒng)由手持終端客戶端、服務器端、信息采集端3部分組成.手持終端客戶端引入了應用服務器層中TCP的Socket接口,并與監(jiān)測系統(tǒng)服務器端口進行連接,實現(xiàn)了系靠泊監(jiān)測數(shù)據(jù)的雙向傳輸功能,保證系統(tǒng)的實時性和準確性.智能手持終端的體系架構(gòu)包括系靠泊監(jiān)測數(shù)據(jù)采集層、監(jiān)控中心服務器層、應用服務器層和終端顯示層[4],系統(tǒng)架構(gòu)圖如圖1所示.
圖1 系統(tǒng)架構(gòu)圖
系靠泊監(jiān)測數(shù)據(jù)采集層是系統(tǒng)架構(gòu)的基礎層,用于采集纜繩張力、護舷壓縮量、系泊船漂移量以及風、浪、流等環(huán)境因素的系靠泊監(jiān)測數(shù)據(jù),為監(jiān)控中心服務器層提供基礎數(shù)據(jù)源.
監(jiān)控中心服務器層主要功能是將系靠泊監(jiān)測數(shù)據(jù)采集端采集的監(jiān)測數(shù)據(jù)存入監(jiān)測中心服務器的數(shù)據(jù)表中,形成系靠泊監(jiān)測系統(tǒng)的基礎數(shù)據(jù)源,并將這些基礎數(shù)據(jù)源根據(jù)應用服務器端的參數(shù)需求進行數(shù)據(jù)處理,為應用服務器層做準備.
應用服務器層主要包括手持終端客戶端建立Socket端口與監(jiān)測系統(tǒng)服務器端口連接,通過監(jiān)控中心的網(wǎng)絡服務器對接口方法進行管理和交換數(shù)據(jù),并借助有線/無線網(wǎng)絡與Socket訪問接口進行系靠泊監(jiān)測數(shù)據(jù)通信.
終端顯示層主要任務是在Android開發(fā)系統(tǒng)上設計并達到預期的界面顯示效果.Android開發(fā)系統(tǒng)設計主要負責:根據(jù)開敞式碼頭系靠泊網(wǎng)絡化監(jiān)控系統(tǒng)的控制需求,設計智能手持終端顯示界面的布局,編寫實現(xiàn)與監(jiān)控中心服務器雙向通信功能的對應函數(shù).
1.2功能設計
開敞式碼頭系靠泊網(wǎng)絡化監(jiān)控系統(tǒng)將實時監(jiān)測各個纜繩張力、護舷壓縮量、船舶漂移量等實時系靠泊監(jiān)測數(shù)據(jù),并實時存儲到監(jiān)測系統(tǒng)數(shù)據(jù)庫中.當系泊纜力、護舷壓縮量、船舶漂移量達到預警限值或報警限值時,系統(tǒng)將發(fā)布預警、報警或自動脫纜指令,同時將纜力調(diào)整或自動脫纜作業(yè)指令傳輸給系泊船上的系靠泊手持終端.系泊船上操作者將根據(jù)手持終端顯示的信息和作業(yè)指令調(diào)節(jié)特定纜繩張力.當接收到自動脫纜指令時,將執(zhí)行快速脫纜操作,避免更大的人力財力的損失.
2.1系靠泊監(jiān)測數(shù)據(jù)傳輸方法
開敞式碼頭系靠泊智能手持終端信息顯示系統(tǒng),利用Socket通信[5]實現(xiàn)纜繩張力、護舷壓縮量、船舶漂移量、系統(tǒng)工作狀態(tài)、系泊船作業(yè)狀態(tài)、纜繩數(shù)量,纜力狀態(tài)、護弦狀態(tài)、作業(yè)指令等系靠泊監(jiān)測數(shù)據(jù)的雙向傳輸.Socket通信是手持終端信息顯示系統(tǒng)進行客戶端網(wǎng)絡編程的核心.智能手持終端客戶端通過TCP協(xié)議連接到監(jiān)測系統(tǒng)服務器上,并與數(shù)據(jù)庫服務器之間進行數(shù)據(jù)的交互.Socket通信除了基本的連接數(shù)據(jù)庫服務器、發(fā)送和接收系靠泊監(jiān)測數(shù)據(jù)以及關閉網(wǎng)絡連接操作外,通過一系列get和set方法對通訊過程進行調(diào)節(jié),從而更好地滿足智能手持終端客戶端與數(shù)據(jù)庫服務器之間的通訊需求.
圖2 Handler機制圖解
由于智能手持終端應用程序啟動時,首先啟動一個UI線程,智能的手持終端與服務器雙向通信時需要大量的運算且耗時較長,會造成UI線程阻塞[6].因此,智能手持終端信息顯示系統(tǒng)在MainActivity主線程中新建一個處理消息的Thread子線程,且在Thread子線程運行時會創(chuàng)建looper對象(即該系統(tǒng)的傳輸周期),創(chuàng)建后通過調(diào)用start( )方法開始執(zhí)行Thread子線程來取線程的looper對象,該looper對象作為參數(shù)傳入Handler對象,通過Handler對象封裝Message對象,并通過sendMessage( msg)把Message對象加入到MessageQueue中,當MessageQueue循環(huán)到該Message對象時,調(diào)用該Message對象對應的Handler對象的handleMessage( msg)的方法進行消息處理,從而達到更新UI的目的.Handler機制圖解如圖2所示.
系靠泊智能手持終端在與監(jiān)控系統(tǒng)實時通信時,要進行連接監(jiān)測系統(tǒng)服務器、發(fā)送和接收系靠泊監(jiān)測數(shù)據(jù)、關閉網(wǎng)絡連接三步操作.通常手持終端客戶端通過兩種方式連接監(jiān)測系統(tǒng)服務器,一種是通過IP方式連接監(jiān)測系統(tǒng)服務器,另一種是通過域名方式連接監(jiān)測系統(tǒng)服務器[7].系靠泊智能手持終端連接監(jiān)測系統(tǒng)服務器需要進行以下三步操作:首先通過new Socket( "192.168.1.200",5002)構(gòu)造方法將IP( 192.168.1.200)與端口號( 5002)作為參數(shù)傳入Socket類;然后通過getInputStream( )和getOutputStream( )方法獲取用于讀取和寫入數(shù)據(jù)的InputStream( )和OutputStream( )對象;最后通過socket.close( )關閉網(wǎng)絡連接.
2.2顯示布局設計
根據(jù)系靠泊智能手持終端系統(tǒng)的顯示要求,終端界面布局采用線性布局和相對布局結(jié)合的方式[8].線性布局( LinearLayout)顯示元素各自獨立、位置是固定的,相對布局( RelativeLayout)顯示元素相互關聯(lián)、位置是改變的.傳輸周期的設置采用線性布局,系統(tǒng)工作狀態(tài)、系泊船作業(yè)狀態(tài)、系泊船漂移量、纜繩數(shù)量、纜力狀態(tài)、護弦狀態(tài)、作業(yè)指令等信息的顯示采用相對布局.線性布局元素包含多個TextView和Button控件,根據(jù)傳輸周期的界面顯示要求,依次水平順序排列相應控件.相對布局元素包含多個TextView控件,這些對象按照智能手持終端顯示位置要求進行布局,在布局過程中各個元素的位置相關屬性自動存儲且生效.具體方法如下:
( 1)在res/layout目錄下新建一個布局文件activity_main.xml,布局文件根據(jù)系靠泊智能手持終端系統(tǒng)的顯示要求添加TextView和Button控件.
TextView控件創(chuàng)建方法:在Graphical Layout中將TextView控件拖拽至設計界面,系統(tǒng)自動生成信息,首先通過android: id = " @ + id/Text-View"定義TextView并自動寫入R.java中,編程時主程序直接調(diào)用R.layout.TextView獲取布局變量實體.再通過android: layout_width = " "和android: layout_height = " "設置文本視圖的寬和高,然后通過android: textSize = "xxdp"設置文字的大小,最后通過android: text = " @ string/xx"設置文本內(nèi)容.經(jīng)過多次TextView控件的設置與排放,最終達到所需要的顯示效果.Button控件的創(chuàng)建與TextView的創(chuàng)建方法大致相同,不同點是TextView和Button定義名稱不同.
( 2)由于TextView顯示固定文字只能顯示英文,則在res/value目錄下的文件string.xml中設置相對應固定文字的中文名字.開發(fā)程序的部分代碼如下所示:
<string name = "chuanbo_label">傳輸周期</string>
系靠泊智能手持終端信息顯示系統(tǒng)要求在纜繩張力或護舷壓縮量達到預警或報警時,會發(fā)出聲音提示操作者,則系靠泊智能手持終端信息顯示系統(tǒng)采用android中SoundPool類[9]實現(xiàn)預警或報警聲音提示.SoundPool類具體方法是:首先,在res/raw文件夾中放入要播放的baojing.mp3和yujing.mp3;其次,初始化SoundPool實例;然后調(diào)用SoundPool的play函數(shù)進行播放.開發(fā)程序部分代碼如下:
private SoundPool soundPool;
sp = new SoundPool
( 10,AudioManager.STREAM_SYSTEM,100) ;
num = sp.load( this,R.raw.yujing,1) ;
num1 = sp.load( this,R.raw.baojing,1) ;
sp.play( num,1,1,0,time,1) ;
sp.play( num1,1,1,0,time,1) ;
系靠泊智能手持終端信息系統(tǒng)需要實現(xiàn)按兩次BACK鍵退出程序和通過上下箭頭按鈕改變傳輸周期,系統(tǒng)調(diào)用onKeyDown( )和onClick( )功能函數(shù)和Android平臺相應控件實現(xiàn)這兩個功能.
按兩次BACK鍵退出程序的基本原理:當按下BACK鍵時會被onKeyDown捕獲,通過連續(xù)兩次BACK鍵按鍵時間差實現(xiàn)程序退出.當按鍵時間差小于2 000 ms( 2 s)時,系統(tǒng)直接退出程序;當按鍵時間差大于2 000 ms( 2 s)時后發(fā)出“再按一次返回鍵退出”的消息提示用戶,當發(fā)送消息間隔的2 000 ms( 2 s)內(nèi),再次按BACK鍵,則退出程序.退出程序流程圖如圖3所示.
圖3 退出程序流程圖
上下箭頭按鈕改變傳輸周期的基本原理:創(chuàng)建Button的監(jiān)聽器,當點擊按鈕時會進入到On-Click函數(shù)中,根據(jù)按鈕ID找到對應的按鈕操作方式.傳輸時間顯示流程圖如圖4所示.
圖4 傳輸時間顯示流程圖
系靠泊智能手持終端采用Android操作系統(tǒng)自帶的模擬器[10]驗證信息顯示效果.模擬器分辨率為1 280×720像素,系靠泊智能手持終端顯示界面如圖5所示.模擬顯示表明:畫面布局合理、界面顯示清晰,預警報警聲音洪亮、可調(diào),實時性良好,完全滿足系靠泊智能手持終端的功能要求,具備現(xiàn)場實施的有效性和可行性.
圖5 系靠泊智能手持終端顯示界面
文中闡述了開敞式碼頭系靠泊智能手持終端信息顯示系統(tǒng)的系靠泊監(jiān)測數(shù)據(jù)采集層、監(jiān)控中心服務器層、應用服務器層和終端顯示層的4層體系結(jié)構(gòu)以及系靠泊監(jiān)測數(shù)據(jù)傳輸方法、界面設計等關鍵技術.系靠泊智能手持終端通過無線網(wǎng)絡接收碼頭系靠泊監(jiān)控系統(tǒng)服務器端提供的系泊船在作業(yè)時的纜力、護舷、系泊船等監(jiān)控對象的工作狀態(tài),以及纜力調(diào)節(jié)、預警報警等作業(yè)指令,及時實現(xiàn)纜繩張力的均衡調(diào)整.系靠泊智能手持終端的應用,既節(jié)省了人力資源又可以隨時掌握系泊船實時運動情況,保證系泊船作業(yè)時的安全,避免了斷纜事故的發(fā)生.
[1]史憲瑩,張寧川.混合浪作用下系泊船舶運動響應規(guī)律試驗研究[J].水動力學研究與進展( A輯),2011 ( 5) : 574-580.
[2]苑曉龍,邱占芝.物聯(lián)網(wǎng)系泊船舶運動監(jiān)測系統(tǒng)方案設計[J].大連交通大學學報,2013,34( 6) : 112-116.
[3]楊威,高文華.基于Android的智能家具終端設計與研究[J].計算機技術與發(fā)展,2013,23( 7) : 245-248.
[4]張秀香.基于Android的健康管理系統(tǒng)客戶端的設計與實現(xiàn)[D].大連:大連理工大學,2012.
[5]吳鳳祥,許坤,常淑惠.用Java實現(xiàn)一個Socket通信模型[J].現(xiàn)代電子技術,2001 ( 6) : 47-49.
[6]時光,馬維華.一種Android端智能家居遠程控制方案的實現(xiàn)[J].單片機與嵌入式系統(tǒng)應用,2014( 2) : 12-15.
[7]王朝華,陳德艷,黃國宏,等.基于Android的智能家居系統(tǒng)的研究與實現(xiàn)[J].計算機技術與發(fā)展,2012( 6) : 225-228.
[8]公磊,周聰.Android的移動終端應用程序開發(fā)與研究[J].計算機與現(xiàn)代化,2008,24( 8) : 85-89.
[9]龔東久,索岳,陳翰,等.基于Android手機的遠程訪問和控制系統(tǒng)[J].計算機應用,2011,31( 2) : 85-89.
[10]周岳.Android應用服務器性能測試實現(xiàn)[J].信息與電腦(理論版),2014( 3) : 40-41.
Key Technology of Terminal Mooring Intelligent Handheld Terminal Information Display System
QIU Zhanzhi,ZHAO Xingtian,ZHANG Chong,YANG Fuan
( Software Institute,Dalian Jiaotong University,Dalian 116028,China)
Aiming at the control requirements of open terminal mooring network control system,mooring intelligent handheld terminals are developed.Based on Android platform of intelligent handheld terminals information display system 4-layer architectures,transmission methods of terminal mooring data,interface design and other key technology are expounded.The development of mooring intelligent handheld,can make the mooring ship operators realize real-time control of cable force,fender,mooring ship and other monitoring object of working state,and receiving cable force adjustment,warning and alarm and other homework instructions to implement cable force balance adjustment in time.
mooring intelligent handheld terminals; information display; android platform; open terminal mooring
A
1673-9590( 2016) 01-0097-05
2015-03-26
大連市科技計劃項目資助( 2014A11GX006)
邱占芝( 1960-),女,教授,博士,主要從事網(wǎng)絡控制系統(tǒng)、計算機遠程監(jiān)控系統(tǒng)研究
E-mail: star942698@ sina.com.