APP下载

码头系靠泊智能手持终端信息显示系统关键技术

2016-05-09邱占芝赵星甜张崇杨福安大连交通大学软件学院辽宁大连116028

大连交通大学学报 2016年1期
关键词:系泊控件码头

邱占芝,赵星甜,张崇,杨福安(大连交通大学软件学院,辽宁大连116028)*

码头系靠泊智能手持终端信息显示系统关键技术

邱占芝,赵星甜,张崇,杨福安
(大连交通大学软件学院,辽宁大连116028)*

针对开敞式码头系靠泊网络化监控系统的控制需求,研发了系靠泊智能手持终端,阐述了基于Android平台的系靠泊智能手持终端信息显示系统4层体系结构、系靠泊监测数据传输方法、界面设计等关键技术.开发的智能系靠泊手持终端,可以使系泊船上操作者在系泊作业中,实时掌握缆力、护舷、系泊船等监控对象的工作状态,接收缆力调节、预警和报警等作业指令,实现缆力的及时均衡调整,为开敞式码头系靠泊网络化实时监控系统安全与高效运行提供可靠的技术支撑.

系靠泊智能手持终端;信息显示; Android平台;开敞式码头

0 引言

随着经济贸易的快速增长,海上运输业得到了迅猛发展,这导致了海岸线资源日益紧张与枯竭,港口建设呈现出船舶大型化、码头深水化、泊位离岸化的特点[1],因此,开敞式码头建设已经成为必然.对于开敞式码头,由于直面海洋,系靠泊作业环境恶劣,风、海浪、潮流等环境动力要素对系靠作业安全构成严重威胁,也影响系泊作业效率.在过大的风浪流作用下,船舶运动幅度将加剧,极易引起系泊缆力超限,造成断缆事故发生[2].建立开敞式码头系靠泊网络化实时监控与预警系统,可以为开敞式码头系靠泊作业的高效与安全提供技术支撑.为实现网络化实时监控与预警系统的控制目标,需要研发系靠泊智能手持终端.系泊船上操作者在系泊作业中,通过系靠泊智能手持终端,可以实时掌握缆力、护舷、系泊船等监控对象的工作状态,接收缆力调节、预警和报警等作业指令,实现缆力的及时均衡调整.系靠泊智能手持终端信息显示界面的设计,既要考虑到整体美观性又要考虑到操作方便性,应确保系统整体功能性和美观性的完美统一[3].根据android系统的特点,选择Android平台开发码头系靠泊智能手持终端显示系统.

论文基于开敞式码头系靠泊监控与预警系统的需求,研究系靠泊智能手持终端信息显示系统的层次结构、系靠泊监测数据传输与界面设计等,并通过手机模拟器验证其有效性和可行性.

1 系统总体设计

1.1架构设计

系靠泊智能手持终端信息显示系统主要显示系泊缆力、护舷、系泊船等监控对象的工作状态,接收缆力调节、预警报警等作业指令,具体包括:传输周期,系统工作状态(正常、缆力调节、系泊等待、脱缆逃逸、飘荡),系泊船作业状态(系泊作业、系泊等待、离港),系泊船漂移量,缆绳数量,缆力状态(正常、预警、报警),护弦状态(正常、预警、报警)等作业指令.

智能手持终端信息显示系统由手持终端客户端、服务器端、信息采集端3部分组成.手持终端客户端引入了应用服务器层中TCP的Socket接口,并与监测系统服务器端口进行连接,实现了系靠泊监测数据的双向传输功能,保证系统的实时性和准确性.智能手持终端的体系架构包括系靠泊监测数据采集层、监控中心服务器层、应用服务器层和终端显示层[4],系统架构图如图1所示.

图1 系统架构图

系靠泊监测数据采集层是系统架构的基础层,用于采集缆绳张力、护舷压缩量、系泊船漂移量以及风、浪、流等环境因素的系靠泊监测数据,为监控中心服务器层提供基础数据源.

监控中心服务器层主要功能是将系靠泊监测数据采集端采集的监测数据存入监测中心服务器的数据表中,形成系靠泊监测系统的基础数据源,并将这些基础数据源根据应用服务器端的参数需求进行数据处理,为应用服务器层做准备.

应用服务器层主要包括手持终端客户端建立Socket端口与监测系统服务器端口连接,通过监控中心的网络服务器对接口方法进行管理和交换数据,并借助有线/无线网络与Socket访问接口进行系靠泊监测数据通信.

终端显示层主要任务是在Android开发系统上设计并达到预期的界面显示效果.Android开发系统设计主要负责:根据开敞式码头系靠泊网络化监控系统的控制需求,设计智能手持终端显示界面的布局,编写实现与监控中心服务器双向通信功能的对应函数.

1.2功能设计

开敞式码头系靠泊网络化监控系统将实时监测各个缆绳张力、护舷压缩量、船舶漂移量等实时系靠泊监测数据,并实时存储到监测系统数据库中.当系泊缆力、护舷压缩量、船舶漂移量达到预警限值或报警限值时,系统将发布预警、报警或自动脱缆指令,同时将缆力调整或自动脱缆作业指令传输给系泊船上的系靠泊手持终端.系泊船上操作者将根据手持终端显示的信息和作业指令调节特定缆绳张力.当接收到自动脱缆指令时,将执行快速脱缆操作,避免更大的人力财力的损失.

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 传输时间显示流程图

3 模拟器验证

系靠泊智能手持终端采用Android操作系统自带的模拟器[10]验证信息显示效果.模拟器分辨率为1 280×720像素,系靠泊智能手持终端显示界面如图5所示.模拟显示表明:画面布局合理、界面显示清晰,预警报警声音洪亮、可调,实时性良好,完全满足系靠泊智能手持终端的功能要求,具备现场实施的有效性和可行性.

图5 系靠泊智能手持终端显示界面

4 结论

文中阐述了开敞式码头系靠泊智能手持终端信息显示系统的系靠泊监测数据采集层、监控中心服务器层、应用服务器层和终端显示层的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.

猜你喜欢

系泊控件码头
基于CFD方法的系泊状态FSO舵载荷计算
高韧性海洋用三级系泊链钢的研制
全自动化码头来了
基于.net的用户定义验证控件的应用分析
关于.net控件数组的探讨
前往码头
在码头上钓鱼
用于FPSO系泊系统的吸力锚疲劳分析研究
系泊布置设计中几个问题的讨论
基于嵌入式MINIGUI控件子类化技术的深入研究与应用