摘 要:在梳理现有公安交通管理外设客户端应用程序基础上,提出了对公安交通管理外设进行集中管理的方法,方
便统一管理以及信息兼顾安全,客户端软件基于C++的Qt平台开发,通过HTTP进行软件通信以及操作,兼容Windows和Linux操作系统,可对设备进行单独对应的系统设置,支持持续新增设备以及新增同种设备不同厂商集成。
Abstract :On the basis of combing the existing peripheral client applications of police traffic management, a method for centralized management of police traffi c management peripherals was proposed to facilitate the unifi ed management and ensure information security. The client software is developed based on the C++ Qt platform, and it communicates and operates via HTTP and is compatible with Windows and Linux operating systems. The software supports the device to be set up separately and supports adding new equipment continuously or the same new equipment integrated by different vendors.
关键词:Qt;公安交通管理;客户端软件
Key words :Qt ; police traffi c management; client software
文/张科鑫 是建荣 高建平
基于Qt 的公安交通管理业务专用设备管理系统设计与实现
随着公安交通管理信息化建设和应用的不断深化,目前已逐步建立了以公安网为载体的综合应用平台、以互联网为载体的互联网交通安全综合服务平台以及以专网为载体的专网综合服务平台。为满足交警日常业务应用管理需求,方便业务办理过程中信息的采集录入,先后接入了打印机、二代身份证阅读器、高拍仪、扫描仪、条码和电子签名板等外部设备,当前在IE浏览器采用传统的OCX控件模式与各交通管理业务系统实现数据交互。随着操作系统国产化的进程以及浏览器替代需要,OCX控件模式需逐渐被替代,此外,目前每个设备需要单独的设置,增加了用户的使用门槛,进而需要对这些设备进行集中管理,此次客户端集成的外部设备包括证件专用打印机、高拍仪、扫描仪、二代身份证阅读器和条码,外部设备与电脑拟通过串口USB进行通信。
1 概述1.1 Qt
Qt是一个跨平台的应用程序开发框架,使用C++语言进行编程。它广泛用于支持开发图形用户界面GUI程序。Qt是完全面向对象的,采取组件编程,容易扩展。Qt使用标准的C++和特殊的代码生成扩展和宏。基本上,Qt同X11上的Motif、GTK、Openwin和Windows上的OWL、MFC、OWL、ATL为同类型,但是Qt支持更多的平台(包括GNU/Linux 、Microsoft Windows、Mac OS X、UNIX家族等),面向对象及模块化程度更高,具有丰富的API,Qt包括多达250个以上的C++类,还提供基于模板的collecti
ons, serialization类。Qt支持 2D/3D 图形渲染,支持OpenGL、XML等。使用Qt开发的软件,相同的代码可以在任何支持的平台上编译运行且不需要修改源代
码。它会根据不同的平台自动表现其特有的图形界面风格。
1.2 HTTP通信
HTTP(Hypertext Transfer Protocol),全称超文本传输协议,是一套计算机通过网络进行通信的规则,是一个设计用来使客户端和服务器顺利进行通信的协议。HTTP遵循请求/应答模型,web浏览器向web服务器发送HTTP请求,web服务器处理请求并返回适当的应答。
在此客户端软件应用中,客户端软件充当web服务器的角,而交通管理综合平台充当客户端,向本地端口发送HTTP请求。
2 公安交通管理及外设使用现状
1999年,国务院批准公安部实施以公安业务信息化与计算机网络建设为主要内容的“金盾工程”,已建成依托公安主干网的部、省、市三级交通管理信息系统平台,运行着机动车、驾驶证、交通事故、交通违法等12个业务系统,建立了以机动车/驾驶人信息为主要内容的基础数据库。公安交通管理工作需要建立的业务系统主要有机动车登记系统、驾驶证管理系统、交通违法处理信息系统、交通事故处理信息系统
、危险品公路运输管理系统、交警队信息平台以及非现场处罚管理系统,各系统之间应当通过接口技术规范实现集成应用。当前外设使用都是基于IE浏览器OCX插件,通过插件和外设进行通信以及操作,每多一种设备就需要安装相应的插件,插件升级以及管理比较混乱,且OCX只能在单一IE浏览器中使用,限制了用户的使用。
3 系统设计
3.1 系统需求
具体系统需求包括:一是客户端软件开启后需自动隐藏在后台,软件自动完成连接设备的初始化;二是公安交通管理综合应用平台发送不同操作命令的HTTP请求到终端软件进行硬件操作;三是客户端支持设备连接属性的修改,支持关闭设备连接,减少系统开销;四是支持后续厂商的对接接入,支持其他设备的接入。
3.2 总体框架
总体框架如图1所示,所开发的软件是串联交通管理综合平台与硬件的客户端,由C++进行开发的Qt 图形界面应用程序,公安交通管理综合应用平台通过HTTP请求和客户端软件交互,客户端软件控制不同的设备,将所有可用的设备控制集成到软件中。当有需要操作设备的需求时,在公安交通管理综合应用平台发起HTTP请求到客户端软件,客户端软件去操作相对应的设备,从而达到操控设备的目标。
图1 公安交通管理业务专用设备管理系统总体框架
3.3 系统组成
客户端软件主要包括三个部分,一是HTTP通信模块;二是设备控制模块;三是软件基础功能和界面模块,如图2所示。
图2 公安交通管理业务专用设备管理系统模块
3.3.1 HTTP通信模块
客户端作为HTTP的服务端,能够实时接收来自HTTP的请求,并对不同的请求返回信息。
能够对异
常的请求进行校验。对一些特殊的请求有加密操作,保护特殊信息不被截取与套用。
3.3.2 设备控制模块
根据设备不同,分成不同硬件设备控制部分,每个控制有相应的设备接口,不同的厂商只需要实现接口,就可以接入客户端软件。
3.3.3 软件基础功能和界面模块
客户端软件支持在线升级,HTTP请求带有最新的版本信息,若当前版本低于HTTP请求中的版本,则会要求更新客户端软件。
4 软件实现
4.1 界面展现
软件展示所有可支持的设备,每个设备模块包括设备型号,设备连接状态。设有开启关闭按钮,部分配置有设置按钮,点开按钮会打开设置页面,保存后重新连接设备。软件启动后,轮询串口或者USB口,若存在设备,该设备的界面红点将会变绿,若出现连接错误则会显示在页面之上。若该电脑无需任何设备功能,可以点击关闭按钮。软件界面如图3所示。
图3 公安交通管理业务专用设备管理系统软件界面
4.2 HTTP服务端在Qt中的实现
QtNet work是Qt网络操作模块,提供了基于TCP/IP的各种API,除了最基础的TCP及UDP通讯,还提供了HTTP、HTTPS、FTP等高级API,并统一使用QNetworkAccessManager进行操作。
QNetworkAccessManager接口包含了一些基础操作的接口;QNetworkRequest则封装了请求的配置;QNetworkReply此类继承自QIODevice,可使用QIODevice的所有接口,包括readall读取接收的所有信息。同时此类提供了finished信号,在响应完之后发出此信号,可关联自定义槽函数,做响应处理。
当程序运行时,启动一个监听HTTP的线程,每当有请求进来,都会新起一个线程进行处理,并转到相应的业务逻辑程序,完成后返回信息,关闭线程。
4.3 Qt串口通信
串口通信按位发送和接收字节,尽管比按字节的并行通信慢,但是由于串口通信是异步的,因此串口可以在使用一根线发送数据的同时用另一根线接收数据,简洁的实现远距离通信。串口可用于ASCII码字符的传输,通信使用3根线完成,分别是地线、发送、接收。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。
Qt SerialPort模块是Qt5中附加模块的一个模块,为硬件和虚拟的串口提供统一的接口。
Qt SerialPort提供了基本的功能,包括配置、I/O 操作、获取和设置RS-232引脚的信号。
Qt SerialPort模块暂不支持以下特性:一是终端的特性,二是文本模式,三是读或写操作的超时和延时配置,四是当RS-232引脚信号变化通知要使用QtSerialPort,需要如下的声明:
#include <Qt SerialPor t/Qt SerialPor t> //输出写数据的字节数;要使用Qt SerialPort模块,需要在.pro文件中添加Qt += serialport 。
QSerialPor t提供了访问串口的接口函数。使用辅助类QSerialPortInfo可以获取可用的串口信息。将QSerialPortInfo辅助类对象做为参数,使用setPort()或setPortName()函数可以设置要访问的串口设备。设置好端口后,可以使用open()函数以只读、只写或读写的模式打开使用。需要注意的是,串口使用独占方式打开,使用close()函数关闭串口并且取消IO操作。串口成功打开后,QSerialPort 会尝试确定串口的当前配置并初始化。可以使用setBaudRate()、setDataBits()、
setParity()、
setStopBits()和setFlowControl()函数重新配置端口设置。
qt进程间通信(1)myCom->setBaudRate(BAUD9600); //波特率设置,设置为9600。
(2)myCom->setDataBits(DATA_8);//数据位设置,设置为8位数据位。
(3)myCom->setParity(PAR_NONE);//奇偶校验设置,设置为无校验。
(4)myCom->setStopBits(STOP_1);//停止位设置,设置为1位停止位。
(5)myCom->setFlowControl(FLOW_ OFF);//控制流。
(6)myCom->setTimeout(long);//设置时间间隔。
串口读取数据:
(1)QByteArray temp = myCom->readAll();//返回读取的字节。
(2)int byteLen = myCom->bytesAvailable();//返回串口缓冲区字节。
串口写数据:
(1)myCom -> Write(const char * data, qint64 maxSize );
(2)myCom -> Write(const char * data );
(3)myCom -> Write(const QByteArray & byteArray);
(4)int byteLen = myCom->bytesToWrite(); //输出写数据的字节数。
4.4 单个设备的具体操作流程
具体流程如图4所示,由公安交通管理综合应用平台发起HTTP请求操作,根据请求类型,客户端程序对设备进行认证并初始化,认证不通过则直接返回,随后启动设备并开始对应响应,工作完成后返回HTTP结果到综合平台。中途出现问题,返回错误到综合平台,返回信息显示给用户。
5 结论
采用Qt实现的公安交通管理设备管理客户端软件,不仅能够跨操作系统实现功能,更能将所有设备进行集中管理,减少不同设备的管理成本。由于是单独的客户端,减少了和公安交通管理系统相互依赖。多态接口的实现,更方便了其他厂商的接入,控制不同设备的安全使用。该软件的使用不仅能满足公安交通管理业务需求,还能为今后操作系统国产化、浏览器去IE化奠定基础。
资助项目:基于国产操作系统的公安交通管理终端软硬件设备研究与应用(项目编号:2020SJA13)
(张科鑫 是建荣 高建平 公安部交通管理科学研究所)
图4 单个设备的操作流程

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。