警用车辆监控管理系统的研究与设计
2015-02-17马丽雅王照明
马丽雅, 王照明
(中国人民公安大学警务信息工程学院, 北京 100038)
警用车辆监控管理系统的研究与设计
马丽雅,王照明
(中国人民公安大学警务信息工程学院, 北京100038)
摘要近年来,随着我国社会治安形势日益复杂,公安部门在处置突发事件方面面临着巨大压力,对警用车辆监控管理的信息化水平提出了更高要求。为了使指挥人员能够全面掌控警车的行驶情况并对其进行高效率的监控调度,设计出警用车辆监控管理系统,该系统采用目前主流的3G无线通信技术、Linux嵌入式操作系统、WebService技术以及相关的软硬件设备,可以实现对警车的实时监控、指令下达以及日常警车使用管理,提高公安指挥作战能力。
关键词车辆监控; GPS; 无线通信; Flex
0引言
近几年,我国的犯罪案件呈现突发性和复杂性发展趋势,公安部门常常需要紧急调动警力进行联合处警,在最短的时间内制服犯罪分子,阻止犯罪形势的进一步恶化。因此,必须借助能够对警车进行统一监控管理的信息系统,使指挥中心可以掌控全局,实现警力的合理调度和部署。目前,GPS定位技术以及无线数据传输技术的发展和成熟为车辆监控管理系统的研究和应用提供了强大的技术支撑,通过指挥中心与车辆之间的数据通信,实现对警车位置和行驶状态的实时跟踪,从而确保指挥中心对所有在线警车的统一监控和管理。
1系统总体框架
本系统是综合利用GPS定位、北斗定位、3G无线数据传输、WebService以及Flex等技术设计而成的。系统总体分为车辆终端、无线传输网络以及监控中心三部分[1]。系统框架如图1所示,其中,车辆终端将采集到的车辆定位数据以及报警信息按照一定格式进行打包后,经过3G无线网络和Internet网络发送到公安部门监控中心的通信服务器中进行拆包,再将提取到的有效数据存储在对应的数据库表中,同时,通信服务器将定位数据发往指挥中心软件平台,通过位置坐标转化和地图匹配,最终将车辆行驶轨迹显示在电子地图上,实现对车辆的实时监控。当指挥中心向终端下发指令时,通信服务器将指令经由传输网络发送到终端,终端根据指令内容执行相应的操作。另外,系统还具有车辆档案管理、超速报表、历史轨迹回放等功能模块,从而实现对警车的管理。
图1 系统框架图
2车辆终端设计
车辆终端是在Linux操作系统的支持下由多个硬件模块组合而成,包括定位模块EG12-BD、微处理器模块S3C6410、3G无线数据传输模块MG3732、电源模块以及其它外围电路等。这些模块在微处理器的控制下协调运行,一方面实现车辆终端数据的采集和发送,另一方面接收、执行指挥中心下发的指令请求。硬件结构如图2所示。
图2 车辆终端硬件结构
2.1 处理器模块
S3C6410是一款基于ARM11框架的应用处理器,具有音视频处理功能,内置支持MPEG4和H.264编码方式的多格式编解码器MFC[2],自带丰富的UART、USB以及总线接口,可以和定位模块、3G模块进行方便连接。Linux操作系统为终端提供软件框架,各硬件模块的驱动程序通过操作系统预留的接口编译在内核中,而处理器在硬件驱动程序的支持下通过设备文件对模块进行操作,利用中断响应控制各个模块,最终实现对车辆终端数据的采集和处理。
2.2 定位模块
EG12-BD是集GPS和北斗两种定位技术于一体的双定位模块。由于公安工作的特殊性,警车监控管理系统必须保证在GPS全球定位系统失效的情况下仍可以利用我国自行研发的北斗定位系统正常工作[3],而EG12-BD模块则能够很好的满足这一要求。EG12-BD模块支持NMEA-0183协议,该协议包含多种GPS数据格式,例如GPRMC、GPGLL、GPGSA以及GPGGA[4]。由于GPRMC格式中包括了本系统用于车辆定位所需的经纬度、时间以及速度信息,而且所含信息量最小,因此本设计只需对GPRMC格式的GPS数据进行提取即可。
终端启动工作后,首先利用初始化程序对连接EG12-BD的串口进行波特率以及通信格式的设置,在定时器的控制下,EG12-BD将定位数据通过串口发送给处理器S3C6410。S3C6410通过引脚接收到数据后先放入接收移位寄存器中进行串行处理,然后再经过缓存寄存器移入接收缓存中,并以中断的方式通知处理器对定位数据进行解析。S3C6410接收到的GPRMC数据格式如下:
$GPRMC,<1>,<2>,<3>,<4>,<5>,
<6>,<7>,<8>,<9>,<10>,<11>,
其中,在本设计中需要进行解析提取的字段有:
<1>和<9>分别代表定位时间和日期,其中时间为国际标准时间,即UTC时间,利用“北京时间=UTC+8小时”公式进行转换。
<2>代表定位状态,A表示该语句是有效数据,V表示定位失败[5]。
<3>和<4>分别代表纬度的数值和分区(N或者S)。
<5>和<6>分别代表经度的数值和分区(E或者W)。
<7>和<8>分别代表车辆的行驶速度和方向。
处理器解析出经纬度和速度信息后,与程序中设定的阈值进行比较,如果经纬度超出一定范围或者速度超出上限值,则要在上传的数据包中加入越界或者超速报警信息。
2.3 视频模块
在实际工作中,当指挥中心需要对警车内部或者外部现场情况进行查看时,可通过下发视频回传指令实现。指令到达终端之后,处理器立即执行视频回传中断子程序,同时触发摄像头进行视频信息采集。首先,通过驱动程序打开位于操作系统/dev/video路径下摄像头的设备文件,读取摄像头名称、支持的分辨率等信息,并对采集的图像属性进行设置,其次,触发摄像头采集使能,将采集到的视频信息放入缓存中[6]。最后,设置编码参数,利用编解码器MFC基于H.264技术对视频进行压缩编码,形成视频流并通过无线数据传输网络上传到监控中心,定位数据和视频数据的处理流程如图3所示。
图3 终端数据流程
2.4 无线传输模块
3G模块借助无线数据传输网络和互联网为车辆监控管理系统提供通信服务。本设计中选用的MG3732是中兴WCDMA/GSM/GPRS模块,拥有语音、短信以及数据业务功能,支持标准的AT指令,具有互联网接入功能,主要负责车辆终端和监控中心之间的数据传输。当终端发送数据时,处理器首先利用AT指令控制MG3732模块附着在网络上,网络对其进行鉴权和身份认证后,就为终端分配一个IP地址,终端利用该IP地址与监控中心的通信服务器之间建立起一条透明的传输链路,经过协议封装的定位数据、视频数据以及下发的指令就可以在车辆和监控中心之间进行传输。
3监控中心设计
监控中心是警车监控管理系统的操作中心,它由通信服务器和指挥中心组成,通信服务器又分为设备服务器和数据服务器,设备服务器是进行数据处理的关键设备,当终端通过无线数据传输网络将数据发送到监控中心时,设备服务器首先验证数据包的有效性,然后进行拆包解析,最后将得到的定位数据以及报警信息等发送到数据服务器进行存储。
指挥中心是系统实际操作中心。当警务指挥人员需要实时监控车辆、回放车辆运行轨迹或者查询车辆档案、报警信息以及速度报表等信息时,可通过对基于Flex技术搭建的客户端软件平台进行操作实现。Flex是由Macromedia公司推出的应用技术,它利用MXML语言描述系统交互界面,利用ActionScript语言进行逻辑控制,它内嵌的强大库类能够将事件逻辑代码从用户界面代码中很好的分离出来,为软件平台设计带来方便。另外,基于Flex搭建的应用程序经编译器编译后生成的是SWF格式的文件,它可以运行在任何浏览器上,像访问普通网页一样,极大降低了系统平台对运行环境的要求,使系统部署更加方便。
在本系统平台中,当用户点击系统界面上的某个功能组件时,立即触发与该组件绑定的事件,在事件代码中,通过对WebService中定义的相应功能函数进行调用,从而返回数据库中符合条件的数据,响应用户请求。之所以利用WebService是由于Flex应用程序不能识别结构化数据,无法和数据库直接进行数据交互。因此,在本系统设计中利用Visual Studio 2010开发工具基于.Net框架对WebService进行开发,为客户端Flex应用程序和数据库之间的数据交互提供中间服务。
在WebService应用程序开发中,通过System.Data.OracleClient提供的库类和Oracle数据库进行配置连接,在自定义类中对历史轨迹回放函数HistoryTrackQuery()、速度报表函数SpeedTable()等进行定义,最后将WebService发布并生成WSDL文档。Flex应用程序对其进行调用时,首先利用loadwsdl()函数加载该服务发布时生成的访问地址URL。加载成功后,Flex应用程序只需将参数传递给对应的功能函数,WebService就会向数据库请求调用数据并转换为XML格式,最后经过soap协议封装并通过http返回给客户端软件平台[7]。实质上,WebService对外就像一个接口,Flex通过这个接口与数据库方便地进行数据交互。
警务指挥人员要想对警车的分布情况有直观的了解,必须将车辆位置实时显示在电子地图上。高德公司推出的MapABC电子地图具有全面精准的地图数据,而且对外提供高度集成的API接口,通过调用该接口提供的函数即可实现对电子地图的操作,无需在监控中心搭建地图服务器对复杂的地图数据进行管理和维护,从而降低系统维护成本。具体做法是:在Flex应用程序中的Library路径中导入MapABC的SWC文件,实现地图嵌入。在对地图进行操作的逻辑代码中利用API接口提供的函数将请求参数传递给地图服务器后,经过坐标转换以及图形匹配,地图服务器将对应的图层返回并显示在系统界面上。
4系统实现
根据警车监控管理的需求,本系统的主要功能按模块划分为实时监控、轨迹回放、报警统计报表以及车辆日常维护报表。其中,轨迹回放功能为车辆管理提供直观依据,可以在地图上显示指定时间段内车辆的行驶路径。具体代码如下:
var _ws:WebService=null;∥定义WebService类的实例_ws
_ws.HistoryTrackQuery(vehicleID,beginTime,endTime,);∥调用轨迹查询函数
HistoryTrackResult=e.result.Tables.HistoryTrack.Rows as ArrayCollection;∥返回定位结果
point= new MLngLat(def_x.toString(), def_y.toString());∥轨迹点
marker = new MMarker(point, markerOptions);∥设置点的显示格式
arrMarkers.push(marker);∥由轨迹点组成数组
mapObj.addOverlays(arrMarkers, false);∥将轨迹点在地图中标记出来
arrPoint.push(point1);
arrPoint.push(point2);∥point1和point2是轨迹点数组中两个相邻的定位点
var polyline:MPolyline = new MPolyline(arrPoint, lineoptions);
arrOverlays.push(polyline);
mapObj.addOverlays(arrOverlays, false);∥地图显示两点之间的轨迹
图4 车辆轨迹回放
遍历指定时间内某车辆所有的定位点并依次执行上述代码,即可完成整个行驶轨迹的显示,运行效果如图4所示。另外,每个轨迹点的定位时间、有无报警等信息也会显示在系统界面中。报警统计报表功能可以将系统中所有警车上传的报警信息进行统计,并按照报警类型分为超速报警、越界报警等。日常维护报表主要对警车加油情况、维修情况、使用情况等进行统计,管理人员可对其执行增加、查询和删除等操作,并且可通过导出功能将报表以excel形式导出,既可以进行打印,也可以将报表上传到上级部门,实现信息共享。另外,为了使警员养成良好驾车习惯,保障行车安全,本系统也可将车辆行驶速度以曲线图的形式呈现出来,公安部门能以此为依据对违规驾车的警员进行教育培训。报警统计报表部分代码如下:
var _ws:WebService=null;∥定义WebService类的实例_ws
_ws.GetAlarm(alarmType,vehicleID,beginDate,endDate);∥调用GetAlarm()函数
AlarmQueryResult=e.result.Tables.AlarmStat.Rows as ArrayCollection;∥返回报警数据,并以表格形式显示运行效果如图5所示。
图5 超速报警报表
5结语
本系统综合利用GPS/北斗双定位、3G无线数据传输等技术实现对警车的可视化监控管理。基于Flex搭建的客户端软件平台为警务人员提供友好、易懂的操作界面,在WebService的帮助下,可以和数据库快速进行数据交互,实现车辆实时监控、指令下发、各种报表查询等功能。在日常使用中,通过轨迹查询和超速报警对车辆的使用进行严格管理,规范警员驾车行为。另外,系统充分利用3G网络在数据传输方面的独特优势实现车辆与监控中心的通信,大大提高公安部门的指挥调度效率,为全面实现公安警务信息化提供有力保障。
参考文献
[1]李辅成. 基于GPS和GIS的车辆监控系统[D]. 天津:天津大学,2009.
[2]胡世敏. 基于S3C6410的视频监控系统的设计与实现[J]. 现代电子技术,2011,34(20):63-66.
[3]刘琳. 北斗/GPS双模差分定位技术的研究及实现[D]. 北京:北京交通大学,2013.
[4]余红珍,伍勇豪,周凤丽. 基于GPS/GPRS的嵌入式终端系统的研究与实现[J]. 数学技术与应用,2012(11):113-114.
[5]怀洋,邵琼玲,路振民,等. 北斗/GPS混合定位模块UM220应用研究[J]. 国外电子测量技术,2014,33(3):76-79.
[6]马资道,张正炳. 基于ARM-Linux的网络视频监控终端的软件实现[J]. 计算机测量与控制,2011,19(2):456-458.
[7]熊光彩,慕德俊,张新家,等. 基于Axis2的web服务安全框架设计与实现[J]. 计算机工程与设计,2012,33(5):1729-1733.
(责任编辑于瑞华)
作者简介马丽雅(1992—), 女, 内蒙古人,2013级安全防范技术与工程专业研究生。
中图分类号D035.37