广西远长公路桥梁工程有限公司广西南宁530012
摘要:远长航标遥测系统是基于分区组网的高精度航标遥控遥测系统,通过需求分析,对系统功能结构进行基本分析,划分出各个功能模块的具体功能,并说明每一个功能模块的作用,为详细设计奠定了基础,为系统的进一步开发提供需求文档。
关键词:数字航道;航标遥测;高精度;需求分析
广西内河航运较为发达,许多河流属山区河道,河道窄、沿岸地形复杂、河道迂回曲折、水位变化复杂、碍航滩险多,从使用安全性方面对航标的精度和可靠性有了更高的要求,因此建设一个高精度的航标遥控遥测系统十分必要的。随着卫星定位技术的不断发展以及计算机软、硬件技术和网络通信技术的快速发展,使人们对航标定位高精度要求的实现有了较好的技术支持。
远长航标遥测系统是基于分区组网的高精度航标遥控遥测系统。通过建设一批用于定位的基准站,利用无线局域网技术、3G通信技术和GPS差分定位技术,结合软件平台的强大功能,实现了航标遥控遥测系统的高精度定位、实时监控和定位精度分析等,从而有效地提高航标使用的安全性,降低建设和使用成本,为港航管理部门的管理提供了一种更好的支持方案,同时为提高了航道通航的安全性,为国民经济更好更快地发展提供支持。
1.需求调研
航道的定位精确度关系着航道设施智能管理和航道通航安全,是内河航运建设的重要部分。通过构建分区组网通信系统,研发高精度、高可靠性、低成本的数字航道系统,可以解决数字航道推广应用中所遇到的问题。
经过调研发现,广西数字航道系统通过建立GPS基准站,同时使用支持GPS差分定位的设备来实现高精度定位,这种方法不仅建设成本高,而且终端设备价格昂贵,不利于数字航道的普及运用。
基于分区组网的远长高精度航标遥测系统可以满足山区天然河流航道航标定位精度的需要,解决部分河段的移动公共通信网络信号覆盖不全的问题,降低高精度航标定位系统建设成本及营运使用成本。通过开发一种终端设备,可以实现通过配置参数后把它作为基准站、分区主设备或从设备,减少建立GPS基准站的费用。利用软件系统与硬件设备的配合,实现高精度定位。
通过调查研究,远长高精度航标遥测遥控系统需要达到以下功能:
①系统能有效结合所开发的硬件设备实现设计目标;
②系统构架采用多层架构设计,具有良好的可扩展性和可维护性;
③系统采用多线程处理方式运行,具有优良的数据处理能力;
④实现航标定位精度分析,具有数据及图画两种显示方式;
⑤实现GPS差分数据的收集、分析、分发;
⑥服务器端可以与航标设备终端、客户端进行连接安全可靠的通信,端口参数可配置;
⑦数据计算自动完成,自动判断数据完整性与有效性。
2系统功能需求
2.1系统功能需求综述
基于分区组网的远长高精度航标遥测系统应设计成一个集数据通信、数据分析处理、后台管理与一体的应用程序,结合需求将系统划分成服务端管理平台、航标监控与数据分析客户端系统、WEB航标信息管理系统三个大的系统,每个大的系统下面再细分不同的模块,每个模块需实现的主要功能如下图:
2.2服务端-参数配置
参数配置模块是用来配置数据库连接参数(包括服务器名称、数据库名称、登录名和密码参数)、各种设备连接的Socket端口号及相关参数、客户端连接的Socket通信端口及相关参数、差分数据收集与分发的各种参数等。参数配置模块一方面用来读写保存有参数信息的XML文件,另一方面提供修改参数的界面,提供参数是否有效的检测方法。
2.3服务端-航标通信管理
航标通信管理模块用于管理航标终端设备的连接与通信。系统建立一个基于TCP协议的Socket服务端,自动等待航标终端设备的连接。航标终端设备连接成功后,系统建立连接链表并维持已有连接的通畅,实现对设备数据的接收、分析、存储和返回等处理。对已建立的航标终端链表定时检查,如果超过设定的时间还没有收到任何数据,就表示这个终端设备已经离线,因此自动断开此终端的连接。通过远程发送命令可以对航标进行参数配置和控制。
2.4服务端-客户端通信管理
客户端通信管理用于连接服务端与客户端通信,实现命令和数据的传输。管理员可以手动启动或停止客户端通信的服务,或在参数配置里面设置为自动启动服务。服务启动后,自动等待客户端发起连接并验证客户端登录信息,登录成功后保存连接链表后才能进行其它通信,否则断开连接。客户端登录成功后,系统实现对客户端数据的接收、处理和返回等操作。
2.5服务端-差分数据管理
差分数据管理用于连接基准站设备,收集基准站发布的差分信息,并根据航标的位置发送对应的差分信息到航标终端设备上。管理员可以手动启动或停止差分数据的服务,或在参数配置里面设置为自动启动服务。差分数据管理不但可以管理自有基准站的数据,而且可以通过Ntrip协议或直接通过网络端口获取公共基准站的差分数据。
2.6服务端-数据库操作
建立一个操作数据库的接口,用于打开数据库、关闭数据库、查询数据库、更新数据库等操作,实现同一个接口对数据进行操作,提高操作安全性和开发的快捷性,减少数据操作产生的冲突。
2.7客户端-用户登录
操作员在使用客户端系统前,都必须使用正确的用户名和密码进行登录,服务端验证通过后才能根据所拥有的权限来使用客户端里面的功能。可以通过配置参数来实现后台自动登录。在网络掉线后,系统也可以通过自动重连来恢复客户端的连接。
2.8客户端-航道图显示与操作
航道图显示与操作模块用来加载航道图,实现航道图的基本操作,包括放大、缩小、漫游、测距、全图、清屏、鹰眼图等操作,并在图上动态显示航标的实时位置及历史轨迹。航道图是每个GIS应用系统最基础的东西,系统可以根据参数配置中的地图参数自动加载航道图,每个使用本系统的操作人员,都可以看到航道图,并且可以利用地图平台所提供的放大、缩小、全图、漫游、测距离、清空屏幕、鹰眼图等操作来查看地图,根据操作人员所属级别和权限在航道图上动态显示能查看的航标及其历史轨迹等信息。
2.9客户端-航标信息管理
客户端-航标信息管理模块主要用于获取系统内保存的航标信息并通过列表方式显示,针对其中选择的某个航标,可以修改它的设计位置坐标和抛标位置坐标,并提供数据查询和过滤功能。客户端登录成功后,自动向服务端发送获取航标信息的命令,等服务端返回相关信息后即可解释命令获取一条条的航标数据,最后列表显示这些航标数据。
2.10客户端-航标实时监控
航标实时监控模块主要接收和处理服务端发来的航标实时状态信息,从而实现航标状态的实时监控,包括位置、温度、电压、航标偏移情况等信息,航标异常报警的显示,航标离线的报警,远程控制航标等。
2.11客户端-航标轨迹查询及定位精度分析
航标轨迹查询及定位精度分析实现按时间段查询选定航标的历史状态数据,对查询结果列表查看,并分析这些历史数据的偏差范围,在图上绘制历史轨迹及精度范围的图示信息。
2.12WEB端-系统登录
操作员在使用WEB端航标信息管理系统前,都必须使用正确的用户名和密码进行系统登录,系统验证通过后才能根据对应的权限来使用里面的功能。用户每打开一个页面,都会触发一次是否登录验证的判断,如果没有通过验证,就直接跳转页面到系统登录的页面,用户必须重新登录。为了防止WEB登录攻击,系统自动生成每次都不同的校验码来让用户输入,从而提高安全性。操作员登录成功后,可以在系统里面修改自己的密码。
2.13WEB端-角色和权限管理
系统根据角色来管理权限,通过定义一个角色名称并把相关的管理权限分配给角色,然后每个用户对应于一个角色,实现用户取得相应角色的管理权限。系统常用的角色有可以根据实际情况增加、删除和修改。系统管理员具有所有的权限且不能被删除和修改。系统管理员可以给用户分配包括系统管理员的角色,其他类别的角色只能给用户分配非系统管理员的角色。每个角色可以就系统组成模块来管理其在此模块中的权限。只有系统管理员可以添加、修改、删除角色,并对角色分配权限。
2.14WEB端-用户管理
用户管理模块用来管理用户的基本信息,本系统中用户的基本信息包括:登录名、密码、真实名、角色、性别、联系电话、是否启用等。只有具备权限的管理员才能对用户信息进行添加删除修改;当员工离职后,系统管理员可以删除此用户的信息记录。
2.15WEB端-航标信息管理
航标信息管理模块用来对航标的基本信息进行管理,包括航标信息的添加、删除、修改和查询,支持按不同字段排序记录。
2.16WEB端-航标状态查询
航标状态查询模块用来对航标的实时状态信息进行查询,包括航标的编号、名称、抛标位置、实际位置、刷新时间、电压、温度、报警信息等。查询参数包括航标编号或设备编号的关键字、抛标状态、报警状态。
3系统非功能性需求
从实用性、操作便利等角度出发,本基于分区组网的高精度航标遥控遥测系统在设计过程中主要应考虑以下原则:
(1)系统的可靠性需求
系统要采用严格的对象封装,功能模块的划分要满足低耦合、高内聚的要求,各模块之间的关联性清晰,从而使整个系统的可靠性和稳定性得到提高。同时,对系统异常要保存记录,记录可追溯,可以控制错误不扩散。代码清晰,易读易修改,对于关键技术可以进行回溯。
(2)系统的安全性需求
系统必须具有较高的可靠性,提供严格的并发访问控制,确保数据的一致性和正确性。不论是哪个权限级别的用户,在没有登录的情况下都无法进入本系统。系统的每个功能模块都只对具有该模块访问权限的用户开放。不同权限的用户只能完成其所具权限范围之内的操作。系统的通信传输过程中数据加密、端口具备异常监控,防止攻击。
(3)海量数据存储需求
如果大批量使用,系统中涉及的航标终端将超过600台,如果每10秒钟采集一次设备的位置及状态信息,每天就会新增500多万条记录。如何存放这些记录更有利于数据的安全以及历史数据的查询,关系到整个系统的性能。
4结束语
本需求分析对基于分区组网远长高精度航标遥测系统的功能结构做了基本分析,划分出各个功能模块的具体功能,并说明每一个功能模块的作用,为详细设计奠定了基础,为系统的进一步开发提供了需求文档。