班车GPS定位与查询系统的设计与实现

2018-01-16 01:45姚存治李海胜
郑州铁路职业技术学院学报 2017年4期
关键词:服务端服务器端班车

姚存治,李海胜

(郑州铁路职业技术学院,河南 郑州 451460)

传统车辆GPS定位需要在车辆上安装GPS接收机,并需专业人员对GPS接收机进行设置,车辆提供GPS接收机电源才能对车辆进行定位。此外,获取的GPS数据只能保存在GPS接收机或与其连接的计算机上。如需对车辆进行远程监控,则还需安装数据发送模块,如“单片机+SIM+GPRS”通信模块。整个系统结构复杂,技术要求高,部署难度大且成本高。客户端需专业设备、软件才能完成车辆信息的查询,专业设备与软件开发成本昂贵,且多固定部署无法移动使用,难以大范围推广。

本系统使用手机GPS定位服务端,将GPS定位功能、GPRS通信功能统一由智能手机完成,只需开发相应的Android应用程序即可实现上述两项功能。系统结构简单,技术要求低,部署简单且成本低。用户无须购买专业设备,只需下载手机查询客户端程序,将其安装到自己的android手机上即可。客户端程序自动连接服务器,完成班车查询。查询功能会产生微量的GPRS流量,对用户而言使用成本几乎为零。

1 系统总体设计

班车GPS定位与查询系统采用C/S(Client/Server)结构,即客户机和服务器结构设计,包括手机GPS定位服务端、服务器端、手机查询客户端等三大模块。系统实现的关键技术有手机GPS定位、百度手机地图服务、Android应用开发、互联网Socket通信等。系统结构如图1所示。

图1 系统结构图

2 系统硬件设计

2.1 手机GPS定位服务端

手机GPS定位服务端采用具有GPS、GPRS模块的智能手机,安放在班车上,班车运行过程中通过Socket通信链接发送运行方向、车牌号、GPS坐标(百度经纬度坐标)、车速、定位精度等数据到服务器端。

2.2 服务器端

服务器端是一台连接互联网的主机,负责接收、处理手机GPS定位服务端发送的信息,并将班车位置显示在服务器端百度地图之上,接受手机查询客户端的Socket连接请求,将当前班车运行信息转发至手机查询客户端。主要功能如下。

(1)服务管理:对手机GPS定位服务端与手机查询客户端的Socket连接进行管理,开启/关闭这两项服务。

(2)班车查询:地图显示班车当前的运行情况。

(3)用户管理:查看系统当前用户数量、用户使用规律,考察系统的实用性与用户对本系统的满意程度。

2.3 手机查询客户端

手机查询客户端采用具有GPRS功能的android智能手机,通过手机数据服务,Socket连接服务器端,接收服务器端发送的班车信息,将信息解码,在客户端百度地图中显示班车当前位置、车牌号、车速等信息。主要功能如下。

(1)动态跟踪:选择班车运行方向,地图自动对该运行方向车辆进行动态跟踪并显示。

(2)临近警告:设置自己的上车点,当班车临近上车点时(如班车距离上车地点小于100m),则对用户发出临近警告,提醒班车即将抵达上车点。

3 系统软件设计

系统软件设计包括手机GPS定位服务端软件、服务器端软件和手机查询客户端软件等三个模块。手机GPS定位服务端软件和手机查询客户端软件开发语言为Android,开发环境为eclipse3.7;服务器端软件开发语言为Java,开发环境为eclipse3.7。下面是服务器端的程序片段:

importjava.io.IOException;

importjava.net.Socket;

importjava.util.ArrayList;

importjava.util.List;

//检测GPS客户端socket连接情况,删除失联//socket classclientSocketCheckHandleextendsThread

{

@Override

publicvoidrun()

{

while(!Thread.currentThread().isInterrupted())

{

System.out.println("GPS客户端检测服务已启动......");ListerrorSockets=newArrayList();/*存放无效的Socket*/

for(Sockets:MultiThreadServer.mClientSocketQuene)

{

errorSockets.clear();

try{

s.sendUrgentData(0xff);

}catch(IOExceptione)

{

System.out.println("GPS客户端离线:"+s.getInetAddress()+"port:"+s.getPort());

errorSockets.add(s);

try{s.close();}

catch(IOExceptione1)

{e1.printStackTrace();}

}

MultiThreadServer.mClientSocketQuene.removeAll(errorSockets);//从列表中去除无效的Socket

MultiThreadServer.updateLabUserNum(MultiThreadServer.mClientSocketQuene.size());//更新UI用户连接数

}

try{

Thread.sleep(5000);

}catch(InterruptedExceptione){

Thread.currentThread().interrupt();

}

// while((System.currentTimeMillis()-begin<5000))

// 每隔5s检测一次GPS客户端Socket连接

//

{}

}System.out.println("GPS客户端检测服务已停止......");

}

}

4 系统测试

将GPS定位端或客户端安装文件GPSServerApp.apk或GPSUserApp.apk下载到手机上;点击apk文件,系统安装该app,安装成功后,在手机桌面显示app图标。用户只需安装客户端app,如图2和图3所示。

图2 GPS定位端1.65M

图3 客户端1.63M

本系统仅提供Android系统的GPS定位端、客户端,支持2.3以上版本。GPS定位端单击打开“GPSServerApp”应用,按提示做一系列设置即可。

本应用自动连接服务器,并根据用户选择显示班车图标,图标上文字显示班车车号信息。用户根据自身需要设置自己的上车点,当班车临近上车点时(50 m),app发出手机震动,提醒用户。

服务器购买阿里云服务器ECS,位于青岛。服务器端安装“班车GPS定位监控服务端”服务程序,该服务程序用于接收GPS定位端发送的GPS信息,并将其发送给客户端。

经过实际测试,在班车接近上车点50 m时,客户端手机会有震动提示,实现了比较高的查询精确度。

[1]李雪英.住宅小区监控系统的发展[J].科技创业家,2014(8):167.

[2]张聪,王辉,孙博月.监控系统的设计原则与方案[J].中小企业管理与科技(上旬刊),2013(4):299.

[3]李存建.一种昼夜监控系统的设计[J].中小企业科技.2007(1):52.

[4]文俊杰.构建GPS监控系统的技术分析[J].科技信息(学术研究).2007(23):197.

猜你喜欢
服务端服务器端班车
Linux环境下基于Socket的数据传输软件设计
悍马的“接班车”
自动班车
感觉“被同龄人抛弃”,不过是错过一班车的焦虑
新时期《移动Web服务端开发》课程教学改革的研究
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
回乡的班车
摸清黑客套路防范木马侵入