著录项信息
专利名称 | 一种基于智能手机的船舶航行数据处理与报警系统及其方法 |
申请号 | CN201410027290.9 | 申请日期 | 2014-01-21 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2014-04-30 | 公开/公告号 | CN103763448A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04M11/04 | IPC分类号 | H;0;4;M;1;1;/;0;4查看分类表>
|
申请人 | 上海海事大学 | 申请人地址 | 上海市浦东新区临港新城海港大道1550号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 上海海事大学 | 当前权利人 | 上海海事大学 |
发明人 | 郭云龙;胡甚平;刘合前;席永涛;轩少永;陈杰;许玲 |
代理机构 | 上海衡方知识产权代理有限公司 | 代理人 | 曹琪 |
摘要
本发明所述船舶航行报警系统采用智能手机和无线网络相结合的方法,将智能手机作为服务器和测量单元,系统可以测量船舶的航向、航速及经纬度等27项船舶信息参数;可以将测量的参数存入数据库和写入文件,可以将测量的信息通过无线网络,发送给船上任意持有配备智能操作系统的设备的船员,针对船舶信息数据中的6项重要数据为每个船员提供个性化的报警设置服务。系统包括从服务器、主服务器和客户端三部分,三个部分被同一无线局域网覆盖。
1.一种船舶航行数据处理与报警系统,包括从服务器、主服务器、多个无线路由器和多个客户端,所述从服务器为一个智能手机,包括气温传感器、气压传感器以及从服务器全球定位模块、从服务器船舶位置服务程序模块、从服务器传感器信息采集模块、从服务器网络信息交换模块;所述主服务器为一个智能手机,包括重力传感器、线性加速度传感器、地磁传感器、陀螺仪传感器、气温传感器和气压传感器等6种传感器,以及主服务器全球定位模块、主服务器传感器信息采集模块、主服务器船舶位置服务模块、主服务器网络信息交换模块、UI显示模块和船舶信息数据库模块;所述从服务器、所述主服务器、所述多个无线路由器和所述多个客户端位于同一个无线局域网内,所述从服务器、所述主服务器、和所述多个客户端通过所述无线局域网互相连接,所述从服务器和所述多个客户端通过所述无线局域网登录所述主服务器;所述多个客户端分别为智能手机,所述多个客户端包括UI模块和报警模块;其特征在于:所述从服务器安装于船首所述主服务器安装于船尾,或者所述从服务器安装于船尾所述主服务器安装于船首,所述从服务器和所述主服务器设置为在船舶平稳时,处于同一水平面上,并且所述从服务器和所述主服务器的连线与船首尾中心线处在同一纵剖面内;所述从服务器通过所述从服务器气温传感器和所述从服务器气压传感器获取所述船舶的气温值和气压值,通过所述从服务器全球定位模块获取系统时间、船舶纬度、船舶经度、船舶海拔、误差半径、船舶运动方向与船舶运动速度,并把所述系统时间、所述船舶纬度、所述船舶经度、所述误差半径和所述船舶海拔的数值传送给所述主服务器;所述主服务器获取重力的三个方向的分量gx、gy、gz,磁通量三个方向的分量,线性加速度的三个方向上的分量ax、ay、az,陀螺仪的三个方向上的分量ωx、ωy、ωz,所述主服务器位置的环境温度t和气压p,并且间接获得船舶纵倾角、船舶横倾角、船舶动荡指数以及所述主服务器在地球空间的指向。
2.如权利要求1所述的船舶航行数据处理与报警系统,其特征在于:所述从服务器每隔
1秒,不断采集全球定位系统的经纬度信息,及空气压强信息,并向主服务器发送所述经纬度信息和所述空气压强信息;所述主服务器存储与之建立连接的所述从服务器和所述多个客户端的Socket,当有全球定位系统位置更新时,将船舶航行信息以Json的数据格式传输给每一个所述从服务器和所述多个客户端的Socket;所述主服务器存储并发送如下27个船舶信息参数:更新时间、经度、纬度、艏艉高度差、误差半径、航迹向、航行速度、船艏向、指南针指向、横倾角、纵倾角、甲板气温、甲板气压、船舶晃动指数、搜索到的全球定位系统卫星数、所述主服务器X轴角速度、所述主服务器Y轴角速度、所述主服务器Z轴角速度、重力X轴分量、重力Y轴分量、重力Z轴分量、所述主服务器经度、所述主服务器纬度、从服务器经度、从服务器纬度、从服务器海拔和主服务器海拔,至所述从服务器和所述多个客户端;所述主服务器、所述从服务器和所述多个客户端的界面可以显示所述27个船舶信息参数中的15个船舶信息参数:更新时间、经度、纬度、艏艉高度差、误差半径、航迹向、航行速度、船艏向、指南针指向、横倾角、纵倾角、甲板气温、甲板气压、船舶晃动指数和搜索到的全球定位系统卫星数;所述主服务器将所述27个船舶信息参数更新的数据项保存到系统的Sqlite数据库中。
3.如权利要求1或2所述的船舶航行数据处理与报警系统,其特征在于:所述多个客户端包括网络模块、UI模块、和报警模块;所述报警模块提供声音和振动报警功能并提供8项报警参数的设置:最大航速、最大纵倾角、最大横倾角、最大动荡指数、最小气压、最大气压、最低气温和最高气温,所述报警参数的变化范围和报警值如下:
1)最大航速0kn~30kn,系统默认报警值是20kn,
2)最大纵倾角0°~15°,系统默认报警值是10°,
3)最大横倾角0°~30°,系统默认报警值是15°,
4)最大晃动指数0~10,系统默认报警值是5,
5)最小气压950hPa~1010hPa,系统默认报警值是1000hPa,
6)最大气压1000hPa~1060hPa,系统默认报警值是1020hPa,
7)最低气温-40℃~60℃,系统默认报警值是0℃,
8)最高气温-40℃~60℃,系统默认报警值是30℃;
所述报警参数的所述变化范围和所述报警值可以自行设置;当所述8项报警参数之一触及相应所述报警值时,所述报警模块发出声音和振动报警。
4.如权利要求1所述的船舶航行数据处理与报警系统的报警方法,其特征在于:所述报警模块提供声音和振动报警功能并提供8项报警参数的设置:最大航速、最大纵倾角、最大横倾角、最大动荡指数、最小气压、最大气压、最低气温和最高气温,所述报警参数的变化范围和报警值如下:
1)最大航速0kn~30kn,系统默认报警值是20kn,
2)最大纵倾角0°~15°,系统默认报警值是10°,
3)最大横倾角0°~30°,系统默认报警值是15°,
4)最大晃动指数0~10,系统默认报警值是5,
5)最小气压950hPa~1010hPa,系统默认报警值是1000hPa,
6)最大气压1000hPa~1060hPa,系统默认报警值是1020hPa,
7)最低气温-40℃~60℃,系统默认报警值是0℃,
8)最高气温-40℃~60℃,系统默认报警值是30℃;
所述报警参数的所述变化范围和所述报警值可以自行设置;当所述8项报警参数之一触及相应所述报警值时,所述报警模块发出声音和振动报警。
一种基于智能手机的船舶航行数据处理与报警系统及其方法\n技术领域\n[0001] 本发明涉及利用智能手机和无线局域网络为管理对象的船舶航海信息的处理方法和船舶的航行报警系统。\n背景技术\n[0002] 随着移动通讯产业的发展,智能手机的生产和使用量有了大幅的提高,智能手机已基本得到普及。智能手机系统和硬件技术的发展日新月异,如何进一步提升手机的应用价值、开拓新的应用领域成为一个移动终端研究的热点。如何将新兴的智能手机技术服务于航海领域,已成为当下航海信息自动化领域内的一大热门话题。\n[0003] 目前智能手机的操作系统能很好地支持基于全球定位系统定位、传感器开发、地图显示的应用程序开发。智能手机操作系统除了具备全球定位系统模块外,还集成了多达\n13种传感器接口,使各种与手机航海信息运动状况相关的娱乐应用成为可能。也正因为手机传感器对所处周边环境如温度、气压、方向甚至湿度的测量显示功能而更加方便了人们的日常生活。如参考文献1提出了一种利用无线网络共享船舶航行信息的方法,本发明在此基础上设计船舶航行警报系统。\n[0004] 基于智能手机的诸多优良特性,本发明提出一套方案:基于智能手机的船舶信息采集与报警系统。该系统用智能手机的全球定位系统模块和传感器设备,采集多项船舶航行信息,并将部分信息通过局域网发送给所有手持智能手机的船员。通过系统设置参数范围,当信息超出警戒范围时,船员手持的智能手机以警铃或振动的方式进行报警。该系统小巧便携,成本低、反应灵敏、测量精准、功能多样,系统设置的客户端报警功能,相当于船员随身携带的报警器,可在船舶倾角较大等危急时刻及时向每个船员发出警告。\n发明内容\n[0005] 本发明基于目前主流且发展势头迅猛的智能手机,设计一个船舶信息实时采集与监控报警系统,利用手机的全球定位系统模块进行船舶定位导航、借助多种手机传感器测定船 舶运行航海信息、允许船员设定个性化的报警功能。该系统不但可以收集船舶信息供船员查看,还可在船舶倾角较大等危急时刻及时向每个船员发出警告,可以为船员留出更多的逃生时间。\n[0006] 本发明所解决的技术问题可以采用以下技术方案来实现:\n[0007] 基于智能手机的全球定位系统、手机传感器和电子海图以及无线网络相结合的船舶信息采集与报警系统,在船舶信息的数字化采集、运算处理、网络传递、集成显示和多样化存储等环节都有所涵盖,为船舶航海信息测定和航行安全开辟了新的途径。该系统可以测量船舶的航向、航速及经纬度,并将其显示在手机电子海图上;可以测量船舶的纵倾角、横倾角等船舶航海信息;也可以测量甲板的气温、气压、船首方向等参数;可以将测量的信息通过网络,不受时间空间的限制,发送给船上任意持有智能手机的船员,使其能够对船舶的航行状况进行集中监控;可以针对船舶信息数据中的6项重要数据为每个船员提供个性化的报警设置服务。\n[0008] 系统硬件分为三个部分:从服务器部分,主服务器部分和客户端部分,三个部分必须能被同一无线局域网覆盖。从服务器和主服务器分别安装在船舶前后首尾中心线上同一水平面上,客户端运行在任何能连接局域网的船员随身携带智能手机中。从服务器装置必须具有全球定位系统模块和气压传感器,主服务器装置必须具备全球定位系统模块,重力、线性加速度、地磁、陀螺仪、气温和气压等6种传感器。\n[0009] 系统软件由从服务器、主服务器和客户端三个程序构成。软件使用Java语言,在Eclipse环境中开发。3部分的程序都是基于电子海图不同侧重点的二次开发,都涉及到网络操作,都是每隔1秒实时更新一次数据。从服务器和主服务器涉及到多个手机传感器的使用;从服务器和客户端程序都有完善的UI设计,能够较为完整地呈现15个相对重要的船舶运行参数,根据获取的参数客户端程序为船舶信息中的6个参数提供了个性化的报警服务。\n[0010] 本发明提供了一种船舶航行数据处理与报警系统,包括从服务器、主服务器、多个无线路由器和多个客户端,从服务器为一个智能手机,包括气温传感器、气压传感器以及从服务器全球定位模块、从服务器船舶位置服务程序模块、从服务器传感器信息采集模块、从服务器网络信息交换模块;主服务器为一个智能手机,包括重力传感器、线性加速度传感器、地磁传感器、陀螺仪传感器、气温传感器和气压传感器等6种传感器,以及主服务器全球定位模块、主服务器传感器信息采集模块、主服务器船舶位置服务模块、主服务器网络信息交换模块、UI显示模块和船舶信息数据库模块;从服务器、主服务器、所述多个 无线路由器和所述多个客户端位于同一个无线局域网内,从服务器、主服务器、和多个客户端通过所述无线局域网互相连接,从服务器和多个客户端通过无线局域网登录主服务器;多个客户端分别为智能手机。\n[0011] 本发明船舶航行数据处理与报警系统的特点在于:从服务器安装于船首而主服务器安装于船尾,或者从服务器安装于船尾而主服务器安装于船首,从服务器和主服务器设置为在船舶平稳时,处于同一水平面上,并且从服务器和主服务器的连线与船首尾中心线处在同一纵剖面内;从服务器通过从服务器气温传感器和从服务器气压传感器获取船舶的气温值和气压值,通过从服务器全球定位模块获取系统时间、船舶纬度、船舶经度、船舶海拔、误差半径、船舶运动方向与船舶运动速度,并把系统时间、船舶纬度、船舶经度、误差半径和船舶海拔的数值传送给主服务器;主服务器获取重力的三个方向的分量gx、gy、gz,磁通量三个方向的分量,线性加速度的三个方向上的分量ax、ay、az,陀螺仪的三个方向上的分量ωx、ωy、ωz,主服务器位置的环境温度t和气压p,并且间接获得船舶纵倾角、船舶横倾角、船舶动荡指数以及主服务器在地球空间的指向。\n[0012] 本发明船舶航行数据处理与报警系统的进一步特点在于:从服务器每隔1秒,不断采集全球定位系统的经纬度信息,及空气压强信息,并向主服务器发送经纬度信息和空气压强信息;主服务器存储与之建立连接的从服务器和所有客户端的Socket,当有全球定位系统位置更新时,将船舶航行信息以Json的数据格式传输给每一个从服务器和各个客户端的Socket;主服务器存储并发送如下 27个船舶信息参数:更新时间、经度、纬度、艏艉高度差、误差半径、航迹向、航行速度、船艏向、指南针指向、横倾角、纵倾角、甲板气温、甲板气压、船舶晃动指数和搜索到的全球定位系统卫星数、主服务器X轴角速度、主服务器Y轴角速度、主服务器Z轴角速度、重力X轴分量、重力Y轴分量、重力Z轴分量、主服务器经度、主服务器纬度、从服务器经度、从服务器纬度、从服务器海拔和主服务器海拔,至从服务器和各个客户端;主服务器、从服务器和各个客户端的界面可以显示所述 27个船舶信息参数中的15个船舶信息参数:更新时间、经度、纬度、艏艉高度差、误差半径、航迹向、航行速度、船艏向、指南针指向、横倾角、纵倾角、甲板气温、甲板气压、船舶晃动指数和搜索到的全球定位系统卫星数;主服务器将所述 27个船舶信息参数更新的数据项保存到系统的Sqlite数据库中。\n[0013] 本发明船舶航行数据处理与报警系统的更进一步特点在于:各个客户端包括网络模块、UI模块、和报警模块;报警模块提供声音和振动报警功能并提供8项报警参数的设置:\n最 大航速、最大纵倾角、最大横倾角、最大动荡指数、最小气压、最大气压、最低气温和最高气温,报警参数的变化范围和报警值如下:\n[0014] 1)最大航速0kn~30kn,系统默认报警值是20kn,\n[0015] 2)最大纵倾角0°~15°,系统默认报警值是10°,\n[0016] 3)最大横倾角0°~30°,系统默认报警值是15°,\n[0017] 4)最大晃动指数0~10,系统默认报警值是5,\n[0018] 5)最小气压950hPa~1010hPa,系统默认报警值是1000hPa,\n[0019] 6)最大气压1000hPa~1060hPa,系统默认报警值是1020hPa,\n[0020] 7)最低气温-40℃~60℃,系统默认报警值是0℃,\n[0021] 8)最高气温-40℃~60℃,系统默认报警值是30℃;\n[0022] 报警参数的变化范围和报警值可以自行设置;当上述8项报警参数之一触及相应报警值时,报警模块发出声音和振动报警。\n附图说明:\n[0023] 图1系统ER图\n[0024] 图2系统的C/S网络架构\n[0025] 图3系统涉及的信息处理环节示意图\n[0026] 图4从服务器信息流向图\n[0027] 图5从服务器输入IP连接主服务器示意图\n[0028] 图6从服务器的工作流程图\n[0029] 图7误差半径与高精度定位示意图\n[0030] 图8网络模块操作流程图\n[0031] 图9服务器手机界面的两种情况\n[0032] 图10主服务器手机的数据信息流向图\n[0033] 图11船舶信息数据库的结构及信息来源\n[0034] 图12客户端程序流程图\n[0035] 图13客户端网络模块流程图\n[0036] 图14报警参数设置界面与报警界面\n具体实施方式\n[0037] 系统的研究方法如下:\n[0038] 1)根据系统的需求,确定使用C/S网络模型,即客户端与服务器的网络模型。利用甲板上固定智能手机作为服务器,各船员随身携带智能手机作为客户端。客户端请求连接服务器,服务器向客户端发送数据。\n[0039] 2)根据数据属性,确定数据的采集手段。选用手机全球定位系统模块和若干种类的手机传感器采集数据。\n[0040] 3)根据各种信息的特点与重要性程度,选定需要设置报警的参数及取值范围,并确定报警信号的发出方式。\n[0041] 类似参考文献1所设计的系统,基于智能手机的船舶信息采集与报警系统总体上分为硬件和软件两个部分的设计。其中硬件设计相对简单,软件设计是核心重点。系统硬件由空间垂直分布可分为三部分。系统软件分为三大独立的程序,各程序部分又含有若干模块。系统整体的模块有:船舶位置服务模块、传感器信息采集模块、网络信息交换模块、UI显示模块和个性化报警模块。\n[0042] 系统硬件设计简单,由若干个无线路由器和3部或以上的智能手机(或设有智能手机操作系统的移动终端设备)组成。系统中的智能手机分三大类:第一类是一个从服务器手机,包含全球定位系统模块、含有气压传感器;第二类是一个主服务器手机,包含全球定位系统模块,含有重力、陀螺仪、线性加速度、气温、气压、地磁6种传感器;第三类为若干个普通客户端手机。从服务器手机固定在船头甲板上,主服务器手机固定在船尾甲板上,船舶处于平稳状态时,两手机的连线与船首尾中心线处在同一纵剖面内,且两手机处于同一水平面上。主从服务器手机通过甲板上的无线路由器连接船舶局域网,其他手机为船员随身携带的智能手机,同样可以在任何舱室内连接船舶无线局域网。\n[0043] 软件是本系统的重点核心部分,由三大部分构成,分别为从服务器部分、主服务器部分和普通客户端部分。从服务器部分主要由3大模块构成,即船舶位置服务程序模块、传感器信息采集模块、网络信息交换模块。船舶位置服务程序模块和传感器信息采集模块用来获取信息,网络信息交换模块则用来传递信息。\n[0044] 主服务器由5大模块构成,即主服务器的传感器信息采集模块、船舶位置服务模块、网络信息交换模块、UI显示模块和船舶信息数据库模块。船舶位置服务模块和传感器信息采集模块用来采集信息与处理部分数据,船舶信息数据库模块主要涉及到船舶信息的存储,UI模块则主要是信息的显示,网络信息交换模块为船舶信息的接收与传递。\n[0045] 客户端模块由网络信息交换模块、UI显示模块和自定义报警模块3大部分构成。UI模块显示必要的15个船舶信息参数及船舶的地图定位显示。网络模块用来从主服务器中获取船舶信息。报警模块有8项设置,涉及到对6个重要船舶信息参数的报警,以及报警信息的保存。\n[0046] 系统软件的三大部分都包含各自的网络信息交换模块,都由该模块来流通船舶信息。船舶信息数据库存储模块和个性化报警模块分别由主服务器和客户端所特有。系统软件三大部分各模块的关系图如图1所示。\n[0047] 系统的C/S网络架构:\n[0048] 系统的三大部分分别采用了C/S网络架构进行网络信息交换。从服务器服务于主服务器,单方面直接向主服务器提供数据,并通过主服务器,间接向众多客户端提供少量数据。主服务器一方面接收从服务器信息,一方面本身采集处理大量信息,同时将处理之后的信息发送给客户端。船员若想通过智能手机获取船舶有关信息,必须先安装客户端程序,绑定服务器网络。系统的网络架构模型如下图2所示。\n[0049] 船舶信息的处理环节:\n[0050] 基于智能手机的全球定位系统、手机传感器和电子海图以及无线网络相结合的船舶信息采集与报警系统,在船舶信息的数字化采集、计算处理、网络传递、UI显示和多方式存储等环节全面覆盖,如图3所示。\n[0051] 1)数字化采集环节这一环节在从服务器和主服务器中的船舶位置服务模块和传感器信息采集模块等都有体现。最终采集到的船舶信息有两大来源,通过手机全球定位系统硬件采集的信息及通过手机传感器得来的船舶航海信息和方向气压气温等信息。\n[0052] 2)计算处理环节这一环节与前一环节密切相关。在信息的采集时就有涉及到简单的精度 有效位数的处理。船舶信息的一些参数如船艏向、纵倾角等,并非原始测量的数据,经过全球定位系统或者传感器测得的多个参数组合运算所得。在经纬度的UI显示上为了理解的方便,通常把以度(°)为单位的数据转化为以度分秒(°′″)为单位的显示格式。\n[0053] 3)网络传递环节这一环节体现在三大程序部分各自的网络信息交换模块上,分为从服务器向主服务器及主服务器向客户端的船舶信息的网络传递。\n[0054] 4)UI显示这一环节体现在主服务器与客户端各自的UI显示模块上。各自的UI界面数字显示多个船舶信息参数,以及显示船舶所在的海图位置。\n[0055] 5)多方式存储这一环节体现在主服务器的船舶信息数据库模块、UI模块以及客户端的报警模块上。在主服务器端,系统每采集一组数据,就往Sqlite船舶信息数据库中写入一组数据。在主服务器UI界面上有按钮可以触动一起事件来将船舶信息数据库中所有的历史数据以Json数据格式存入SD卡文件中。在客户端的个性化报警模块能自动将报警数据以一定的方式存入客户端的SD卡文本文件中。\n[0056] 信息处理的各环节并非完全被系统的模块割裂,各环节相互之间又密切交叉,比如在船舶信息采集的同时,就有简单的计算处理。信息传递过程涉及到主从服务器之间、主服务器客户端之间三大程序之间的网络信息传递。主服务器和客户端都有UI模块对船舶信息的显示,以及数据库或文件对信息的存储。\n[0057] 系统的软件实现:\n[0058] 基于智能手机的船舶信息采集与报警系统软件上分为三个程序,依次为从服务器程序、主服务器程序和客户端程序。从服务程序安装在放置于船头的手机上;主服务器程序则安装在船尾主服务器手机中;客户端程序安装在每个船员的智能手机上(或者装有智能手机操作系统的平板电脑等任意设备)。从服务器每隔1秒,不断采集全球定位系统的经纬度信息,及空气压强信息,并向主服务器发送这些信息。主服务器一方面接收从服务器信息,另一方面将采集到的各种船舶信息发送给每个与主服务器网络绑定的客户端手机。\n[0059] 系统的三个程序实际上为电子海图上的二次开发。系统的主从服务借用电子海图上的部分功能,使能够在全球定位系统信号充分的情况下,非常精确地获取船舶的经纬度信息。主服务器和客户端程序则用到了电子海图的显示界面,能够将经纬度信息,运动方向及定位误差半径,船舶的各种航海信息,甲板的温度气压等实时地显示在界面上。\n[0060] 从服务器程序部分:\n[0061] 从TCP协议的严格意义上讲,从服务器端并不是服务器,但它的作用有别于船员手中 的客户端手机程序,它为系统生产信息,但只向主服务器提供少量数据,因而称之为从服务器。\n[0062] 从服务器主要有四大功能:1.通过电子海图的相关服务采集全球定位系统的经纬度信息;2.通过手机传感器实时采集空气压强和空气温度信息;3.将采集的信息以一定频率发送给主服务器;4.将采集信息反映在手机界面上。四个功能中的前两个功能是信息的采集途径,后两种为信息的流出途径,前3个功能就对应于地图服务模块、手机传感器模块和网络模块。从服务器的信息流向如图4所示。\n[0063] 从服务器正常工作时必须连接主服务器,因而从服务器必须知晓主服务器的IP地址和网络服务端口号。在程序第一次启动用户必须按下菜单键,选择设置选项,在文本框中正确输入服务器的IP地址。程序对最近使用的IP地址具有记忆功能,因而下次启动时,就会默认上次设置的地址为服务器的IP地址。图5为从服务器按下菜单键,选择设置选项后,准备连接主服务器时的界面。\n[0064] 从服务器除网络操作(连接主服务器与向主服务器发送数据)外,大部分的任务都在主线程中完成。从服务器的大体工作流程如图6所示。\n[0065] 从服务器的船舶位置服务模块:\n[0066] 通过加载电子海图的相关文件,调用专用电子海图公开的接口服务,可获取全球定位系统信息,返回当前点的经度、纬度、误差半径、运动方向与运动速度等信息。从服务器选取传递给主服务器的信息只有经度、纬度和误差半径。程序中地图服务的全球定位系统数据更新频率人工设置为1s/次。\n[0067] 从服务器的传感器信息采集模块:\n[0068] 从服务使用了两种手机传感器,气温传感器和气压传感器。本设计中从服务器向主服务器传递的数据有气压转换而得的船艏海拔高度值。系统中气压传感器的采样频率设置为SENSOR_DELAY_NORMAL(20ms/次)。为减少传感器测量误差,每更新一次全球定位系统数据时(大约经过1000ms),就对采样测得的若干气压值做一次平均运算,再将全球定位系 统测得的经纬度与气压传感器测得的气压值转换为高度,并通过TCP网络发送给主服务器。\n同时主服务器会将经纬度信息,气压值对应的海拔,以及气温简单地展现在从服务器手机界面上。气压与海拔高度的转换关系的具体公式如下:\n[0069]\n[0070] 其中h为海拔高度,单位m;p为传感器所测的空气压强,单位hPa;P0为常数,代指标准大气压,这里规定标准大气压为1013.25hPa。单纯地测量船舶的绝对高度意义不大且误差变动特别大。测量这个海拔高度的目的是配合主服务器,测量出船舶艏艉的相对高度差,这对船舶运行安全状态的测量具有较大的意义。\n[0071] 从服务器的网络信息交换模块:\n[0072] 从服务器以大约1Hz的频率传递数据给主服务器。虽然从服务器从地图服务和传感器中获取众多数据,但传递给主服务器的数据并不多,只包含四项内容。这些数据包括获取全球定位系统信息时的系统时间(为自1970年1月1日00:00:00以来的统一世界时间,单位是毫秒ms),经度,纬度和误差半径,这些数据以“/”隔离,并且前面加上一串字符前缀“sendInfoToMasterServer:/”。传递信息的具体格式为:\n[0073] sendInfoToMasterServer:/[时间]/[纬度]/[经度]/[海拔]\n[0074] 主服务器程序部分:\n[0075] 主服务器程序本发明软件部分的最核心程序,是从服务器与客户端程序的的桥梁,更是大量船舶信息数据的来源所在。主服务器一方面接收从服务器的经纬度和海拔高度信息,另一方面也会调用若干的手机传感器,获取众多动态数据;同时,主服务借助地图服务,获取全球定位系统导航信息。主服务器程序也是对电子海图上做的二次开发,不光获取全球定位系统数据,还借助电子海图的地图界面,将这些导航数据呈现在上面。在电子海图上动态地显示船舶的位置、误差半径与航迹向。\n[0076] 主服务器端Java程序代码放置于src目录下的三个包内:com.liu.db、com.liu.graduatepaper和com.liu.tool。xml布局文件为res/layout目录下的navigation_info.xml文件。该文件与服务器UI密切相关。com.liu.db与数据库的操作密切相关,包内封装了三个类分别是DbInfo、ShipInfoDao和ShipInfoDBHelper类。DbInfo封装了存入数据库信息的数据段,它的对象对应着船舶信息数据库的一串数据,包含 27个有意义的数据项。还封装了生成Jason数据字符串的方法。ShipInfoDao和ShipInfoDBHelper封装了船舶信息数据库 的创建数据库、插入数据、删除数据、读取数据、清空数据、将数据写入SD卡文件等一系列的操作。\n[0077] com.liu.graduatepaper包只含有一个Main类,为工程的入口类。该类继承一个Activity包含的功能有初始化界面,初始化传感器,更新界面,响应地图点击事件,传感器更新事件,以及对所有的数据进行计算界面显示等操作。\n[0078] com.liu.tool包含NetManage、Server2Info和Tool类。NetManage封装了服务器端的所有网络操作,包括创建服务器网络、等待客户端连接、创建独立线程对客户端进行数据交换、解析从服务器端发过来的数据等。Server2Info类与从服务器中的类似,用来表示来自从服务器的数据对象。Tool类主要存放了一些整形和字符串型静态常数。为了减轻com.liu.graduatepaper包中的Main类的代码量,Tool类还封装了一些静态方法用来处理传感器返回的一些数据。\n[0079] 主服务器的传感器信息采集模块:\n[0080] 主服务器使用了若干传感器,有重力传感器、线性加速度传感器、陀螺仪传感器、气温传感器、气压传感器和地磁传感器。除了温度传感器的更新频率设为10s/次外,其他传感器设置的频率均为SENSOR_DELAY_NORMAL(20ms/次)。\n[0081] 主服务器通过传感器直接测得的数据有:重力传感器测得的三个方向的分量gx、gy、gz,线性加速度传感器测得的三个方向上的分量ax、ay、az,陀螺仪测得的三个方向上的分量ωx、ωy、ωz,气温传感器所测的环境温度t,气压传感器所得的p。间接测量而得的数据有船舶的纵倾角pitch、横倾角roll、船舶动荡指数(自定义的)roil、主服务器所在的船舶尾端高度mheight以及手机的指南针方向compass。以下具体介绍各传感器的作用。\n[0082] (1)重力传感器该传感器所测的数据为手机x、y、z三轴方向的重力分解值。根据这三个值的大小与正负关系可以判断手机的航海信息。当手机固定在船舶上以后,手机航海信息的变化也就象征着船舶航海信息角的变化。主服务器中与重力传感器相关联的数据参数有船舶的纵倾角pitch,横倾角roll。这两者的换算公式如下:\n[0083]\n[0084]\n[0085] 其中gx、gy、gz分别表示重力传感器在手机x、y、z三个方向上的分量。\n[0086] (2)线性加速度传感器、陀螺仪这两类传感器可以测量船舶的三维线性加速度与三维角速度。加速度与角速度的变化表征着船舶非线性运动的剧烈程度。这两类传感器配合使用,一定程度上反应了船舶的安全程度。本文根据这两组数据定义了一个参数——船舶的动荡指数(roil)。该参数的具体定义数学表达式为:\n[0087]\n[0088] 其中ax、ay、az表示线性加速度传感器在x、y、z轴上的分量,代表船的线性三维加速度,单位为m/s2;ωx、ωy、ωz为陀螺仪传感器返回的三个值,表示手机围绕x、y、z正向旋转的角速度,单位为rad/s。\n[0089] (3)气温传感器该传感器直接返回当前的手机测得的环境温度t,单位为℃(摄氏度)。\n[0090] (4)气压传感器该传感器直接返回当前的手机测得的空气压强,单位为hPa(百帕)。可以根据智能手机操作系统提供的接口方法,将气压转换为海拔高度,与从服务器配合,可测量船舶的首尾高度差。智能手机操作系统提供的压强海拔转换公式如下:(h为所求海拔,单位m;p为已知气压,单位hPa;P0为标准大气压,常数,取值为1013.25hPa)[0091]\n[0092] (5)地磁传感器该传感器返回测量点手机三个方向的磁通量,根据磁通量的大小正负关系可以计算出手机在地球空间中的指向。计算公式如下。\n[0093]\n[0094] 其中φx、φy分别为地磁场在手机坐标系中x、y方向上的磁通量分量。compass为真北向,单位为“°(度)”。因为磁极点与北极点有一定的偏差,所以指南针指的方向与船艏向存在一定的偏差。并且指南针的指向很容易受周边磁体的影响,因而这一参数仅作参考,实际中指南针的变动幅度往往比较大。\n[0095] 主服务器的船舶位置服务模块:\n[0096] 通过电子海图相关软件导入海图资料和数据。然后通过电子海图的相关接口函数,可以返回船舶全球定位系统终端的经纬度、误差半径、航迹向、航速、更新时间、可搜索到的全球定位系统卫星颗数等信息。\n[0097] 与从服务器相比,主服务器在使用地图服务时,获取了更为丰富的全球定位系统导航信息。这些信息包括:信息更新时间,经度,纬度,航向,航速,误差半径。与从服务器相比,主服务器不仅借用了电子海图的地图服务,还使用了电子海图的电子海图包,这使手机能够清晰呈现船舶的具体地理位置,航向与定位误差半径。\n[0098] 在全球定位系统信号良好的时候最多可以搜索到16颗全球定位系统卫星,绝对定位误差精度甚至可以高达3m,约为纬度上0.1秒的地球表面距离,可见基于手机全球定位系统电子海图的定位功能是足够精确的。模拟实验的误差半径与高精度定位截图如图7所示。\n[0099] 主服务器的网络信息交换模块:\n[0100] TCP是一种面向连接的保证可靠传输的协议。在使用TCP时,必须在发送方和接收方的两个Socket之间建立连接。当一个Socket(通常是ServerSocket)等待建立连接时,另一个Socket可以要求进行连接,连接成功后可以进行双向数据通信。本设计中服务器端程序启动时,会建立一个ServerSocket,等待从服务器和普通客户端手机通过输入IP地址访问服务器,建立连接。服务器端会存储每一个连接的客户端Socket,当有全球定位系统位置更新时,会将船舶航行信息以Json的数据格式传输给每一个客户端Socket。\n[0101] 主服务器端的网络模块封装在NetManage类中。专门负责主服务器与从服务器和客户端之间的数据交互。类中封装了若干静态方法,包括判断Wifi网络是否连通与获取主服务器的网络IP地址。启动网络模块时,主线程会创建一个线程专门用来绑定一个端口号(54321端口),创建服务器套接字。服务器创建成功后,会有一个线程专门监听绑定的端口。\n当有客户端(从服务器或普通客户端)连接服务器时,子线程再创建一个线程用来处理与客户端的数据交互。服务器会对新连接的客户端进行一个判断,以区分出客户端是否为从服务器或者普通客户端。如果是从服务器,则等待从服务器发送数据并解析从服务器发送过来的数据。如果是普通客户端,则当有船舶信息更新时,向普通客户端发送Json格式的船舶信息数据。网络模块的流程图如图8所示。\n[0102] 主服务器的UI显示模块:\n[0103] 主服务器端只设计了一个Activity UI活动窗口,它对应于工程目录下res/layout/navigation_info.xml文件。在UI中创建了3个Button按钮控件,16个TextView文本控件,还有1个MapView电子海图的地图控件。文本控件和部分按钮控件具有收拢展开的效果,图9为两种情况的对比截图。\n[0104] UI控件的作用\n[0105] 1.按钮控件(Button)刷新按钮,起刷新地图的作用,按下刷新按钮就会平移地图,使当前定位点呈现在地图的中心位置。保存历史数据按钮,可以将服务器手机中的船舶信息数据库里的所有信息以Json的格式保存到手机SD文件中去,起到了转移船舶航行历史数据的作用。当出现误操作而清空程序数据时,这些数据可以不受影响。收起按钮,起到的作用是收起船舶实时信息,使地图控件达到最大化,可以基本覆盖整个手机界面。点击收起按钮后的界面如下图9右边部分所示。此时收起按钮变成了展开按钮,再点击展开按钮就可以恢复之前的界面。\n[0106] 2.文本控件(TextView)除了一个标题“船舶实时信息”外,其他文本控件均用来显示某个船舶信息参数。界面上显示的船舶信息参数有15个,分别为:更新时间、经度、纬度、艏艉高度差、定位误差、航迹向、航行速度、船艏向、指南针指向、横倾角、纵倾角、甲板气温、甲板气压、船舶晃动指数和搜索到的全球定位系统卫星数。在全球定位系统信号充足时,这些数据每隔1秒更新一次。\n[0107] 3.地图控件(MapView)值得一提的是,该控件并非智能手机操作系统自带的地图控件,而是源自电子海图工具包的地图控件。要使用这一控件必须在工程库中导入电子海图相关工具包,且在布局文件中须加入全部路径名。\n[0108] 主服务器的船舶信息数据库模块:\n[0109] 主服务器对船舶信息扮演了多重角色,既是信息的消费者,又是信息的生产者和加工者,还是信息的运输者和储存者(如图10)。主服务器有三种途径获取船舶信息数据,分别是:1.通过手机传感器获取船舶航海信息角、气温、气压数据等;2.通过电子海图的地图服务来获取全球定位系统数据;3.通过从服务器获取数据。主服务器的船舶信息数据有三种流向,分别为:1.船舶信息数据库;2.众多客户端手机;3.服务器手机界面[0110] 主服务器端采集了众多数据,这些数据有的可以直接使用,有的得经过一定的处理才可以传递给客户端、传递给主服务器手机界面以及存储到主服务器的船舶信息数据库中。船舶信息数据库为智能手机操作系统提供的Sqlite数据库,它包含有 27个数据项。服务器每隔一秒钟更新一次这些数据,并将这些数据发送给已连接的客户端,存储到船舶数据库中,以及将部分数据显示在手机界面上。这些数据项根据信息来源的途径以及是否原始数据可以分为4大类,分别为:主服务器传感器信息,地图服务的全球定位系统信息,从服务器信息和间接测量信息。这四类数据的来源与关系如图11所示。\n[0111] 主服务器最终存储和发送给客户端的 27个数据项的来源如下:\n[0112] 1.直接由传感器测量的数据项有:甲板气温、甲板气压、手机X轴角速度、手机Y轴角速度、手机Z轴角速度、重力X轴分量、重力Y轴分量、重力Z轴分量。\n[0113] 2.经电子海图服务获取的全球定位系统数据有:主服务器经度、主服务器纬度、更新时间、航迹向、航速、误差半径、全球定位系统卫星颗数。\n[0114] 3.从服务器提供的数据有:从服务器经度、从服务器纬度、从服务器海拔。\n[0115] 4.由以上直接获得信息经过数据处理后间接得到的数据有:指南针指向、主服务器海拔、手机(船舶)横倾角、手机(船舶)纵倾角、船舶晃动指数、艏艉高度差、船艏向、全球定位系统测得(船舶)纵倾角。\n[0116] 在这 27个数据项中,呈现给主服务器手机界面上的有15项,依次是:更新时间、主服务器经度、主服务器纬度、首尾高度差、误差半径(定位误差)、航迹向、航速、船艏向、指南针指向、横倾角、甲板气温、纵倾角、甲板气压、船舶晃动指数、全球定位系统卫星颗数(表征全球定位系统信号的强弱)。\n[0117] 服务器手机每1秒钟接收一条从服务器发过来的信息。在卫星信号良好的情况下,服务器手机也会每隔1秒钟更新一次全球定位系统信息。每更新一次全球定位系统信息,服务器就会将所有的更新的数据项保存到系统的Sqlite数据库中。当主服务器在界面上点击“保存历史数据”按钮时,会将船舶信息数据库中的所有数据以Json的格式写入SD卡中。\n[0118] 普通客户端程序部分:\n[0119] 客户端程序有三大功能模块:网络模块、UI模块、声音和振动报警并存储报警信息的报警模块。网络模块主要连接主服务器接收数据并解析数据的,UI模块用以更新手机界面,报警模块主要用以加载报警设置界面并保存报警参数。\n[0120] 客户端部分程序运行在船员手持的智能手机中,直接与船员用户接触。客户端程序Java代码程序放置在src目录下的edu.liu.graduatepaper_client包中,由4个类组成。\n分别是AlertSettings、ClientActivity、DbInfo和NetManage类。\n[0121] AlertSettings类与报警模块对应,负责报警参数和报警方式的设置与存储。\n[0122] ClientActivity类是工程的主入口类,也是Activity类的子类。它的作用巨大,负责启动整个应用、生成其他类的对象、初始化器其他模块、更新UI界面等。\n[0123] DbInfo类为船舶信息的数据对象,功能与服务器一致。\n[0124] NetManage类的作用是连接主服务器网络,接收来自主服务器的船舶信息。并将这些信息解析成DbInfo数据对象。以供ClientActivity使用。\n[0125] 客户端程序的运行流程如下。\n[0126] ①客户端启动后,会依次初始化报警模块、网络模块和UI控件;\n[0127] ②初始化定时器,定时器事件执行的周期是1秒;\n[0128] ③判断船舶信息是否为空(网络模块启动后会读取网络信息,更新船舶信息,也即判断是否获取到服务器船舶信息);\n[0129] ④如果信息不为空,则更新UI界面,否则跳转到⑦;\n[0130] ⑤判断是否有参数超出警戒值;\n[0131] ⑥如果有参数超出警戒值,则发出报警信号,并将这些警报信息写入SD卡根目录中的“船舶历史报警信息.txt”文件。否则跳到⑦;\n[0132] ⑦由于网络模块每隔一秒钟才更新一次船舶信息,为减轻CPU的负担,线程会休眠一秒钟,以确保客户端得到新的船舶信息数据。\n[0133] 图12为客户端程序运行的流程图。\n[0134] 客户端的网络信息交换模块:\n[0135] 客户端程序的船舶信息数据全部通过TCP网络,经由网络模块取自主服务器。客户端不采集任何全球定位系统与传感器数据,并且基本不会对数据做加工处理。客户端接收的信息是一长串的Json字符,必须通过一些方法,将他解析为有用的独立数据。工程中适用的是现有开发包Gson-2.1.jar。要使用这个包,必须将它导入工程的libs目录下。\n[0136] 启动网络模块后,程序开辟网络子线程,具体运行过程如图13所示。\n[0137] ①从历史记录中或手动输入获取服务器IP地址,绑定远程服务器地址,创建客户端套 接字。\n[0138] ②如创建套接字失败,则回到①反复进行此项操作,直到创建成功。\n[0139] ③成功创建套接字后开始读取套接字里的内容,如果读取失败,则表明客户端已经掉线,将会返回到①重新建立套接字。\n[0140] ④读取套接字内容成功后,判断内容是否为空,为空则线程休眠一段时间(300ms)后返回到③继续读取套接字内容。\n[0141] ⑤套接字内容不为空,则根据读取内容解析出船舶信息对象,以供\nClientActivity类通过船舶信息对象更新手机界面。解析出船舶信息对象后,为了减轻CPU的负担,线程同样会休眠一段时间,再回到③。\n[0142] 客户端的UI显示模块:\n[0143] 客户端调用了电子海图的相关包文件,可以借助地图来显示船舶运行的地理位置。客户端将从主服务器端发送过来的Json数据,解析成船舶信息数据对象(DbInfo类的对象),并将对象中的部分数据通过UI界面显示。\n[0144] 客户端的UI包含三类控件,包括两类智能手机操作系统自身提供的2个按钮控件(Button)和15个文本控件(TextView),第三类控件是由电子海图提供的1个地图控件(MapView)。\n[0145] 1.地图控件由电子海图的开发包提供,使用时先需要在工程中导入相关jar包,然后引入控件的完整路径获得。\n[0146] 2.文本控件客户端的UI界面中的文本控件与主服务器UI一致,15个文本控件会显示15项船舶信息,包括更新时间、主服务器经度、主服务器纬度、艏艉高度差、定位误差、航迹向、航行速度、船艏向、指南针指向、横倾角、甲板气温、纵倾角、甲板气压、船舶晃动指数、搜索到的全球定位系统卫星颗数(表征全球定位系统信号的强弱)等。\n[0147] 3.按钮控件与主服务器端不一样。客户端的按钮控件只有2个,一个收起按钮,一个是刷新按钮,相比主服务器少了个保存历史数据的按钮。收起按钮和刷新按钮的功能与主服务器的功能一样。\n[0148] 个性化报警模块:\n[0149] 与主服务器相比,客户端多了一个独具特色的个性化报警模块。该模块可以对多个参数 以声音或者振动的方式进行报警(或提醒)。并且这些报警的参数值大小,是可以根据各人的不同要求,在许可的范围内而个性化设置的,报警方式也是自行选择的。需要注意的是,设定过报警参数后,要按下确定按钮才能生效,否则会恢复上次设置或系统的默认报警值。\n[0150] 1.报警方式的选择系统提供了两种报警方式,声音和振动。两种方式可以各自独立选择。用户既可以都选,也可以任选一个,还可以一个都不选。系统初次启动时默认的是都没有。用户一旦选择,下次程序运行时,便可以记忆并恢复之前的选择。\n[0151] 2.报警参数的设置系统提供了8项报警参数的设置,分别是:最大航速、最大纵倾角、最大横倾角、最大动荡(晃动)指数、最小气压、最大气压最低气温和最高气温。每项报警参数都对应一根滑动条,手指滑动滑块,右边的数据就会在一定的范围内作出相应的大小变化。例如各参数设置的变化范围如下:\n[0152] 8)最大航速0kn~30kn,系统默认报警值是20kn;\n[0153] 9)最大纵倾角0°~15°,系统默认报警值是10°;\n[0154] 10)最大横倾角0°~30°,系统默认报警值是15°\n[0155] 11)最大晃动指数0~10,系统默认报警值是5;\n[0156] 12)最小气压950hPa~1010hPa,系统默认报警值是1000hPa;\n[0157] 13)最大气压1000hPa~1060hPa,系统默认报警值是1020hPa;\n[0158] 14)最低气温-40℃~60℃,系统默认报警值是0℃;\n[0159] 15)最高气温-40℃~60℃,系统默认报警值是30℃。\n[0160] 当有参数超出警戒值时,就会报警功能模块就会发出报警信号。首先手机界面上显示相应参数的文本控件区域(如航行速度、纵倾角、横倾角、船舶晃动指数、甲板气压、甲板气温等)的背景会变成红色。然后手机按照设定的报警方式给出报警声或发出振动,直到报警解除或更改报警方式。改变报警参数的取值范围或传播航行恢复正常范围内,界面中红色的报警提示就会消去。\n[0161] 每一秒钟就会判断一次是否有警情,有警情就给出一次报警提示,并且往手机SD卡根目录的“船舶历史报警信息.txt”文件(没有该文件就会新建该文件,有就在文件末尾追加一条信息)写一条报警记录。记录的内容格式为:\n[0162] [当前时间],Current[参数名]:[当前参数值],Alarm[报警的参数名]:[报警参数设置的报警值]\n[0163] 在客户端设置个性化报警的功能可以满足不同船员的需要,是船舶安全运行的必要措施。报警模块不仅仅是报警的功能,更宽泛的说,是为使船员能及时了解船舶航行状况而提供的一个提醒功能。如,将最大报警航速设低一点,当船舶开动时可以对船员一个提醒;选择合适的气压值,可以提醒天气的变化(天气变化时,往往伴随着气压的变化)。图14为某个报警界面。\n[0164] 设置报警参数的步骤流程如下:\n[0165] ①点击屏幕中的菜单键;\n[0166] ②点击菜单栏中的报警设置;\n[0167] ③弹出报警设置界面,可进行参数设置;\n[0168] ④点击确认按钮,保存设置。\n[0169] 以上显示和描述的是本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界定。\n[0170] 参考文献:\n[0171] 1:刘合前,陈少阳,李杰等.基于Android平台GPS与无线网络共享船舶航行信息的实现[J].科技视界,2013,(4):87-88,109.
法律信息
- 2020-01-10
未缴年费专利权终止
IPC(主分类): H04M 11/04
专利号: ZL 201410027290.9
申请日: 2014.01.21
授权公告日: 2016.05.25
- 2016-05-25
- 2014-06-04
实质审查的生效
IPC(主分类): H04M 11/04
专利申请号: 201410027290.9
申请日: 2014.01.21
- 2014-04-30
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-06-01
|
2010-04-15
| | |
2
| |
2013-10-02
|
2013-07-03
| | |
3
| | 暂无 |
1992-02-11
| | |
4
| |
2012-06-13
|
2011-12-12
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |