邱占芝,趙星甜,張崇,楊福安(大連交通大學軟件學院,遼寧大連116028)*
碼頭系靠泊智能手持終端信息顯示系統關鍵技術
邱占芝,趙星甜,張崇,楊福安
(大連交通大學軟件學院,遼寧大連116028)*
針對開敞式碼頭系靠泊網絡化監控系統的控制需求,研發了系靠泊智能手持終端,闡述了基于Android平臺的系靠泊智能手持終端信息顯示系統4層體系結構、系靠泊監測數據傳輸方法、界面設計等關鍵技術.開發的智能系靠泊手持終端,可以使系泊船上操作者在系泊作業中,實時掌握纜力、護舷、系泊船等監控對象的工作狀態,接收纜力調節、預警和報警等作業指令,實現纜力的及時均衡調整,為開敞式碼頭系靠泊網絡化實時監控系統安全與高效運行提供可靠的技術支撐.
系靠泊智能手持終端;信息顯示; Android平臺;開敞式碼頭
隨著經濟貿易的快速增長,海上運輸業得到了迅猛發展,這導致了海岸線資源日益緊張與枯竭,港口建設呈現出船舶大型化、碼頭深水化、泊位離岸化的特點[1],因此,開敞式碼頭建設已經成為必然.對于開敞式碼頭,由于直面海洋,系靠泊作業環境惡劣,風、海浪、潮流等環境動力要素對系靠作業安全構成嚴重威脅,也影響系泊作業效率.在過大的風浪流作用下,船舶運動幅度將加劇,極易引起系泊纜力超限,造成斷纜事故發生[2].建立開敞式碼頭系靠泊網絡化實時監控與預警系統,可以為開敞式碼頭系靠泊作業的高效與安全提供技術支撐.為實現網絡化實時監控與預警系統的控制目標,需要研發系靠泊智能手持終端.系泊船上操作者在系泊作業中,通過系靠泊智能手持終端,可以實時掌握纜力、護舷、系泊船等監控對象的工作狀態,接收纜力調節、預警和報警等作業指令,實現纜力的及時均衡調整.系靠泊智能手持終端信息顯示界面的設計,既要考慮到整體美觀性又要考慮到操作方便性,應確保系統整體功能性和美觀性的完美統一[3].根據android系統的特點,選擇Android平臺開發碼頭系靠泊智能手持終端顯示系統.
論文基于開敞式碼頭系靠泊監控與預警系統的需求,研究系靠泊智能手持終端信息顯示系統的層次結構、系靠泊監測數據傳輸與界面設計等,并通過手機模擬器驗證其有效性和可行性.
1.1架構設計
系靠泊智能手持終端信息顯示系統主要顯示系泊纜力、護舷、系泊船等監控對象的工作狀態,接收纜力調節、預警報警等作業指令,具體包括:傳輸周期,系統工作狀態(正常、纜力調節、系泊等待、脫纜逃逸、飄蕩),系泊船作業狀態(系泊作業、系泊等待、離港),系泊船漂移量,纜繩數量,纜力狀態(正常、預警、報警),護弦狀態(正常、預警、報警)等作業指令.
智能手持終端信息顯示系統由手持終端客戶端、服務器端、信息采集端3部分組成.手持終端客戶端引入了應用服務器層中TCP的Socket接口,并與監測系統服務器端口進行連接,實現了系靠泊監測數據的雙向傳輸功能,保證系統的實時性和準確性.智能手持終端的體系架構包括系靠泊監測數據采集層、監控中心服務器層、應用服務器層和終端顯示層[4],系統架構圖如圖1所示.

圖1 系統架構圖
系靠泊監測數據采集層是系統架構的基礎層,用于采集纜繩張力、護舷壓縮量、系泊船漂移量以及風、浪、流等環境因素的系靠泊監測數據,為監控中心服務器層提供基礎數據源.
監控中心服務器層主要功能是將系靠泊監測數據采集端采集的監測數據存入監測中心服務器的數據表中,形成系靠泊監測系統的基礎數據源,并將這些基礎數據源根據應用服務器端的參數需求進行數據處理,為應用服務器層做準備.
應用服務器層主要包括手持終端客戶端建立Socket端口與監測系統服務器端口連接,通過監控中心的網絡服務器對接口方法進行管理和交換數據,并借助有線/無線網絡與Socket訪問接口進行系靠泊監測數據通信.
終端顯示層主要任務是在Android開發系統上設計并達到預期的界面顯示效果.Android開發系統設計主要負責:根據開敞式碼頭系靠泊網絡化監控系統的控制需求,設計智能手持終端顯示界面的布局,編寫實現與監控中心服務器雙向通信功能的對應函數.
1.2功能設計
開敞式碼頭系靠泊網絡化監控系統將實時監測各個纜繩張力、護舷壓縮量、船舶漂移量等實時系靠泊監測數據,并實時存儲到監測系統數據庫中.當系泊纜力、護舷壓縮量、船舶漂移量達到預警限值或報警限值時,系統將發布預警、報警或自動脫纜指令,同時將纜力調整或自動脫纜作業指令傳輸給系泊船上的系靠泊手持終端.系泊船上操作者將根據手持終端顯示的信息和作業指令調節特定纜繩張力.當接收到自動脫纜指令時,將執行快速脫纜操作,避免更大的人力財力的損失.
2.1系靠泊監測數據傳輸方法
開敞式碼頭系靠泊智能手持終端信息顯示系統,利用Socket通信[5]實現纜繩張力、護舷壓縮量、船舶漂移量、系統工作狀態、系泊船作業狀態、纜繩數量,纜力狀態、護弦狀態、作業指令等系靠泊監測數據的雙向傳輸.Socket通信是手持終端信息顯示系統進行客戶端網絡編程的核心.智能手持終端客戶端通過TCP協議連接到監測系統服務器上,并與數據庫服務器之間進行數據的交互.Socket通信除了基本的連接數據庫服務器、發送和接收系靠泊監測數據以及關閉網絡連接操作外,通過一系列get和set方法對通訊過程進行調節,從而更好地滿足智能手持終端客戶端與數據庫服務器之間的通訊需求.

圖2 Handler機制圖解
由于智能手持終端應用程序啟動時,首先啟動一個UI線程,智能的手持終端與服務器雙向通信時需要大量的運算且耗時較長,會造成UI線程阻塞[6].因此,智能手持終端信息顯示系統在MainActivity主線程中新建一個處理消息的Thread子線程,且在Thread子線程運行時會創建looper對象(即該系統的傳輸周期),創建后通過調用start( )方法開始執行Thread子線程來取線程的looper對象,該looper對象作為參數傳入Handler對象,通過Handler對象封裝Message對象,并通過sendMessage( msg)把Message對象加入到MessageQueue中,當MessageQueue循環到該Message對象時,調用該Message對象對應的Handler對象的handleMessage( msg)的方法進行消息處理,從而達到更新UI的目的.Handler機制圖解如圖2所示.
系靠泊智能手持終端在與監控系統實時通信時,要進行連接監測系統服務器、發送和接收系靠泊監測數據、關閉網絡連接三步操作.通常手持終端客戶端通過兩種方式連接監測系統服務器,一種是通過IP方式連接監測系統服務器,另一種是通過域名方式連接監測系統服務器[7].系靠泊智能手持終端連接監測系統服務器需要進行以下三步操作:首先通過new Socket( "192.168.1.200",5002)構造方法將IP( 192.168.1.200)與端口號( 5002)作為參數傳入Socket類;然后通過getInputStream( )和getOutputStream( )方法獲取用于讀取和寫入數據的InputStream( )和OutputStream( )對象;最后通過socket.close( )關閉網絡連接.
2.2顯示布局設計
根據系靠泊智能手持終端系統的顯示要求,終端界面布局采用線性布局和相對布局結合的方式[8].線性布局( LinearLayout)顯示元素各自獨立、位置是固定的,相對布局( RelativeLayout)顯示元素相互關聯、位置是改變的.傳輸周期的設置采用線性布局,系統工作狀態、系泊船作業狀態、系泊船漂移量、纜繩數量、纜力狀態、護弦狀態、作業指令等信息的顯示采用相對布局.線性布局元素包含多個TextView和Button控件,根據傳輸周期的界面顯示要求,依次水平順序排列相應控件.相對布局元素包含多個TextView控件,這些對象按照智能手持終端顯示位置要求進行布局,在布局過程中各個元素的位置相關屬性自動存儲且生效.具體方法如下:
( 1)在res/layout目錄下新建一個布局文件activity_main.xml,布局文件根據系靠泊智能手持終端系統的顯示要求添加TextView和Button控件.
TextView控件創建方法:在Graphical Layout中將TextView控件拖拽至設計界面,系統自動生成信息,首先通過android: id = " @ + id/Text-View"定義TextView并自動寫入R.java中,編程時主程序直接調用R.layout.TextView獲取布局變量實體.再通過android: layout_width = " "和android: layout_height = " "設置文本視圖的寬和高,然后通過android: textSize = "xxdp"設置文字的大小,最后通過android: text = " @ string/xx"設置文本內容.經過多次TextView控件的設置與排放,最終達到所需要的顯示效果.Button控件的創建與TextView的創建方法大致相同,不同點是TextView和Button定義名稱不同.
( 2)由于TextView顯示固定文字只能顯示英文,則在res/value目錄下的文件string.xml中設置相對應固定文字的中文名字.開發程序的部分代碼如下所示:
<string name = "chuanbo_label">傳輸周期</string>
系靠泊智能手持終端信息顯示系統要求在纜繩張力或護舷壓縮量達到預警或報警時,會發出聲音提示操作者,則系靠泊智能手持終端信息顯示系統采用android中SoundPool類[9]實現預警或報警聲音提示.SoundPool類具體方法是:首先,在res/raw文件夾中放入要播放的baojing.mp3和yujing.mp3;其次,初始化SoundPool實例;然后調用SoundPool的play函數進行播放.開發程序部分代碼如下:
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) ;
系靠泊智能手持終端信息系統需要實現按兩次BACK鍵退出程序和通過上下箭頭按鈕改變傳輸周期,系統調用onKeyDown( )和onClick( )功能函數和Android平臺相應控件實現這兩個功能.
按兩次BACK鍵退出程序的基本原理:當按下BACK鍵時會被onKeyDown捕獲,通過連續兩次BACK鍵按鍵時間差實現程序退出.當按鍵時間差小于2 000 ms( 2 s)時,系統直接退出程序;當按鍵時間差大于2 000 ms( 2 s)時后發出“再按一次返回鍵退出”的消息提示用戶,當發送消息間隔的2 000 ms( 2 s)內,再次按BACK鍵,則退出程序.退出程序流程圖如圖3所示.

圖3 退出程序流程圖
上下箭頭按鈕改變傳輸周期的基本原理:創建Button的監聽器,當點擊按鈕時會進入到On-Click函數中,根據按鈕ID找到對應的按鈕操作方式.傳輸時間顯示流程圖如圖4所示.

圖4 傳輸時間顯示流程圖
系靠泊智能手持終端采用Android操作系統自帶的模擬器[10]驗證信息顯示效果.模擬器分辨率為1 280×720像素,系靠泊智能手持終端顯示界面如圖5所示.模擬顯示表明:畫面布局合理、界面顯示清晰,預警報警聲音洪亮、可調,實時性良好,完全滿足系靠泊智能手持終端的功能要求,具備現場實施的有效性和可行性.

圖5 系靠泊智能手持終端顯示界面
文中闡述了開敞式碼頭系靠泊智能手持終端信息顯示系統的系靠泊監測數據采集層、監控中心服務器層、應用服務器層和終端顯示層的4層體系結構以及系靠泊監測數據傳輸方法、界面設計等關鍵技術.系靠泊智能手持終端通過無線網絡接收碼頭系靠泊監控系統服務器端提供的系泊船在作業時的纜力、護舷、系泊船等監控對象的工作狀態,以及纜力調節、預警報警等作業指令,及時實現纜繩張力的均衡調整.系靠泊智能手持終端的應用,既節省了人力資源又可以隨時掌握系泊船實時運動情況,保證系泊船作業時的安全,避免了斷纜事故的發生.
[1]史憲瑩,張寧川.混合浪作用下系泊船舶運動響應規律試驗研究[J].水動力學研究與進展( A輯),2011 ( 5) : 574-580.
[2]苑曉龍,邱占芝.物聯網系泊船舶運動監測系統方案設計[J].大連交通大學學報,2013,34( 6) : 112-116.
[3]楊威,高文華.基于Android的智能家具終端設計與研究[J].計算機技術與發展,2013,23( 7) : 245-248.
[4]張秀香.基于Android的健康管理系統客戶端的設計與實現[D].大連:大連理工大學,2012.
[5]吳鳳祥,許坤,常淑惠.用Java實現一個Socket通信模型[J].現代電子技術,2001 ( 6) : 47-49.
[6]時光,馬維華.一種Android端智能家居遠程控制方案的實現[J].單片機與嵌入式系統應用,2014( 2) : 12-15.
[7]王朝華,陳德艷,黃國宏,等.基于Android的智能家居系統的研究與實現[J].計算機技術與發展,2012( 6) : 225-228.
[8]公磊,周聰.Android的移動終端應用程序開發與研究[J].計算機與現代化,2008,24( 8) : 85-89.
[9]龔東久,索岳,陳翰,等.基于Android手機的遠程訪問和控制系統[J].計算機應用,2011,31( 2) : 85-89.
[10]周岳.Android應用服務器性能測試實現[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-),女,教授,博士,主要從事網絡控制系統、計算機遠程監控系統研究
E-mail: star942698@ sina.com.