基于屏幕捕获技术的自动售检票退票分析系统
2016-12-06李丽芬
陈 超 徐 晔 李丽芬
(南京地铁运营有限责任公司票务中心,210012,南京∥第一作者,工程师)
基于屏幕捕获技术的自动售检票退票分析系统
陈 超 徐 晔 李丽芬
(南京地铁运营有限责任公司票务中心,210012,南京∥第一作者,工程师)
为了解决南京地铁AFC(自动售检票)系统需要人工退票的缺陷,提高工作效率,提出并实现了一种基于屏幕捕获算法的退票分析系统,分析了其算法的系统流程、数据流以及算法时间复杂度。通过实际使用测算,使用该系统退票分析效率可提高88%,误差率几乎为0,大大提高了工作效率。
地铁; 自动售检票系统; 退票分析系统; 屏幕捕获技术
Author′s address Ticket Clerk Center of Nanjing Metro Operation Co.,Ltd.,210012,Nanjing,China
自动售检票(AFC)系统是实现城市轨道交通售票、检票、计费、收费、统计、清分、管理等全过程自动化的票务管理系统。国外经济发达城市的轨道交通已普遍采用了这种管理系统,并发展到相当先进的技术水平。国内城市轨道交通AFC系统的发展经历了从无到有的过程,已逐步实现与城市一卡通,甚至城市间一卡通接轨。
南京市地铁自开通之日起就使用了AFC系统,不仅方便了乘客,也节约了成本。乘客使用自动售票机购票,在自动检票机上刷卡进出站。由于设计之初,AFC系统没有退票功能,当遇到乘客多购票,或未赶上末班车等需要退票的情况时,就需进行人工退票。退票每日随报表上交收益审核中心,需要工作人员对每张退票进行分析并人工登记,既耗时耗力,误差率也高。本文基于屏幕捕获技术开发了自动退票分析系统,代替人工录入,提高了工作效率。
1 系统设计
1.1 系统总体架构
基于屏幕捕获技术的退票分析系统总体架构如图1所示。整个系统由一台上位机、一台读卡器以及若干单程票组成。上位机采用普通PC机(个人计算机),并安装票卡分析程序和屏幕捕获程序;读卡器与上位机之间通过RS232串口进行通信,发送命令与传输数据;单程票与读卡器之间通过无线射频识别(RFID)技术实现通信,通信频率为13.56 MHz。
操作人员将单程票靠近读卡器,读卡器识别单程票并读出信息,通过RS232串口发送到上位机。上位机票卡分析程序将票卡信息实时显示出来,屏幕捕获程序捕获屏幕显示的票卡数据,并将这些数据保存到后台数据库中。
图1 自动退票分析系统总体架构
1.2 系统流程与数据流设计
票卡分析功能是AFC系统中必不可少的一个环节,可以快速准确获取票卡状态、错误代码等信息。由于接口不开放,票卡分析信息只能显示在屏幕上,没有保存为文本信息,操作人员只能手工抄录退票信息,判断该单程票是否符合退票规则,并将抄录好的信息再次录入电脑作为存档。人工退票信息录入工作量巨大,效率低下。
本系统设计的目的就在于减少人工干预,将屏幕上显示的票卡信息自动保存到文本文件中,提高工作效率,节省人力资源。图2、图3分别为系统流程图和数据流图。
图2 自动退票系统流程图
图3 自动退票系统数据流
2 屏幕捕获算法设计与实现
算法1描述的是实现屏幕捕获技术的具体步骤,其中:GetHwnd()为获取windows窗口句柄;GetCount()为通过句柄获取窗口行数;GetThreadProcessId()为通过句柄获取该句柄所在进程的进程号;OpenProcess()为打开指定进程号的进程及其相关资源;AllocMemory()是为指定变量分配内存;ReadMemory()为读取相应进程中的数据;SaveToFile()为将变量保存到文件中;FreeMemory()为释放内存。
首先,获取屏幕窗口的句柄h和该窗口的总行数n,通过句柄h获取该句柄对应的进程号pid,并打开该进程在内存中的相关资源,即释放接口让用户可以读取内存中的相关信息。然后,通过读取内存函数ReadMemory(),将该进程中的相关资源读取到变量中,进而将变量依次保存到文本中,重复此过程直到完成所有行的执行。最后释放申请的内存资源。算法1的屏幕捕获如下:
2.1 算法时间复杂度分析
算法的时间复杂度是衡量一个算法优劣的重要标准,代表了该算法运行的时间。从数学上定义:给定算法A,如果存在函数F(n),当n=k时,F(k)表示算法A在输入规模为k的情况下其运行时间,称F(n)为算法A的时间复杂度[5]。
假定T代表时间,T(n)为算法1中第n行在计算机中执行的时间。《数据结构(C语言版)》提到整个算法的执行时间与基本操作重复执行的次数成正比。
算法1中各行基本操作重复执行的次数如表1所示。通过表1可以得出T(n)=T(1)+…+T(13)=3n+8。该算法的时间复杂度T(n)=O(n)。
表1 算法1时间复杂度分析
3 结果与分析
如图4所示,本系统改进了传统的退票分析流程,将原第三步人工抄录票面信息和第四步将抄录的信息录入电脑的工人操作过程用电子化替代,节省了工作时间,也减少了误差率。以分析一张单程票为例,传统方法需要67 s,而改进后方法仅需8 s,效率提高了88%。
图4 改进前后退票分析流程对比
据统计,南京市地铁每天的退票量约为2 000枚,若采用传统方法需要37.2 h,若采用改进后方法只需4.4 h。按照8 h工作制算,传统方法需要5人完成此项工作,工作量巨大,且误差率高,而改进后方法仅需1人就可完成此项工作,误差率几乎为0。
4 结语
本设计并实现了屏幕捕获算法,通过电子化代替了人工操作,提高了工作效率。但该算法也存在一定的局限性,不能处理非Windows窗口信息,单程票还是需要手动置位,没有实现机械化,这些需要后期进一步改进。此外,建议后期AFC系统的设计需增加退票功能,并设置为可调机制,方便运营单位更好地为乘客服务。
[1] 袁东.票务处理流程内置的标准化读写器在地铁自动售检票系统中的应用[J].通信与广播电视,2010(2):38.
[2] 张宁,何铁军,王健.轨道交通自动售检票系统互换性研究[J].城市轨道交通研究,2007,10(11):37.
[3] 裴顺鑫,张宁.地铁自动售检票系统的互联标准[J].都市快轨交通,2007,20(5):38.
Refund Analyzation System of Auto Fare Collection Based on Screen Capture Technology
CHEN Chao, XU Ye, LI Lifen
In order to reduce the artificial operation process of refundanalyzation,improve the work efficiency, a screen capture algorithm is proposed for the refund system, and the processing, data flow and time complexity of this algorithm are analyzed.Through actual implementation,the efficiency of the refund analyzation system is increased by 88%, and the error rate is approaching to 0.
metro; auto fare collection (AFC) system; refundanalyzation system; screen capture technology
U 293.2+21
10.16037/j.1007-869x.2016.08.025
2014-10-24)