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