E访客系统的设计
2017-12-28陈建明李秦月
陈建明,李秦月
(华北水利水电大学电力学院,郑州450011)
E访客系统的设计
陈建明,李秦月
(华北水利水电大学电力学院,郑州450011)
针对当前E访客EKF100的软件市场调查,发现当前的访客系统存在功能不齐全,开发的界面不明确等问题。因此在当前的E访客系统软件做全面细致的用户需求分析,明确所要开发的软件应具有的功能、性能与界面,使系统分析人员及软件开发人员能清楚地了解用户的需求,并在此基础上进一步完成后续设计与开发工作。设备开机E访客程序自启动。可对二代证进行读取、被访人员的选择,打印保存功能。可进行联网比对验证是否是在逃人员,服务器端可向公安部门进行信息推送等。这些功能更好地为群众保证人身安全和财产安全,使人民生活更加便利。
访客;Android Studio;jdk1.8.0_101;识别
0 引言
随着人类迈入二十一世纪,计算机技术、通信技术、网络技术[3]为代表的现代信息技术的飞跃发展。人类正在从工业时代向信息时代迈进,人们越来越重视信息资源的开发和利用。信息化已成为一个国家经济和社会发展的关键环节。信息化水平的高低已成为衡量一个国家现代化水平和综合国力的重要标志。因此对访客系统的研究设计就显得十分重要。本系统在原有E访客系统上开发了新的功能更好的满足人们的要求和需要。给以后人们的生活带来便利。
1 整体系统功能设计
本系统实现的功能要求:①设备开机。E访客程序自启动。②可对二代证进行读取、被访人员的选择,打印保存功能。③可进行联网比对验证是否是在逃人员,服务器端可向公安部门进行信息推送。性能要求:二代证读取应不能出现用户等待现象,查询效率尽可能做到精准,信息维护做到简单实用,不需要过多的人员培训,要求性能稳定,不能出现数据丢失、错误等情况。安全与保密要求:系统本身具有一定安全机制,可保证各项数据完整和正确性。
1.1 登记
路径:appsrcmainjavacomcshtevisitormain eg⁃istviewRegistActivity登记界面主要使用的功能有:身份证信息读取,OCR扫描[4]获取身份证信息,离线人脸对比,登记打印,保存本地数据库。
程序首次运行默认打开打印和离线人脸比对[5]开关。每次进入登记界面要进行人脸比对句柄的初始化有progressDialog显示,刷身份证成功保存身份证图片到本地evisitor文件夹,在展示身份证信息的方法中showInfo()中做身份证图片提取人脸特征值处理,身份证信息获取后,模拟拍照按钮的自动点击,调用拍照,拍照采用opencv自动捕获人脸,保存现场拍的照片到本地,并在登记界面显示现场照showNowPhoto(),在showNowPhoto()方法中做提起现场照片特征值处理,并比对身份证特征值和现场照片特征值返回比对分数,分数为float型范围0~1.0,离线人脸比对比对分数>=0.7&&<=1.0确定为同一人。
(1)身份证读取
身份证读取使用的是封装好的aar组件。读卡分为:cshtidcardreader.aar、cshtnewidcardreader.aar区别:1:cshtidcardreader.aar是早期读卡组件,使用的是身份证读卡jar包。cshtnewidcardreader.aar使用的是指令读取身份证信息兼容0501模块读卡。2:cshtid⁃cardreader.aar使用了synjonesSerial.jar和libDecodeW⁃lt.so、libserial_port.so;cshtnewidcardreader.aar使用的libtwltdecode.so和调用C语言生成的so。读取身份证信息成功后调用回调监听事件onReadCardListener.on⁃ReadCardSuccess(idCard Info),返回身份证信息实体类。
(2)OCR扫描
使用telpo_api.jar
点击登记界面扫描图标调用OcrModelImpl中han⁃dleIntent()方法,通过Intent传递参数调用OCR扫描类进行解析所拍照片的信息,解析身份证信息成功后调用回调监听事件
onReadCardListener.onReadCardSuccess(idCard In⁃fo),返回身份证信息实体类。
①离线人脸识别
首次安装先进行离线对比所需资源文件解压调用initOffLinemodels(),解压完成后初始化离线比对句柄initOfflineCompare,刷身份证界面显示信息后,如果开启了人脸比对开关调用updateResult(1,path)。
1:提取身份证图片特征值标记,path:身份证保存路径,解析图片特征值[6]调用GetFeatureFromPath(path,true),true:提取检测到的身份证人脸。现场拍照返回后,进行提取现场照图片调用updateResult(2,imgPath);2:提取身份证图片特征值标记,imgPath:现场照片保存路径,解析图片特征值调用GetFeature⁃FromPath(imgPath,false);false:提取检测到的现场照人脸。现场照提取人脸特征值后,直接分析比较身份证图片和现场照图片特征值,返回比对分数,播放提示音并弹窗提示。
②打印
打印分为设备打印机和USB打印机两种。设备打印机即设备自带打印机,USB打印机是外界USB口打印机,两者切换在设置中选择。
③保存信息到本地数据库
点击登记按钮,调用presenter层registPresenter. save()方法,调用RegistModelImpl中save()方法。
④公安接口[7]上传数据
在RegistModelImpl中save()方法。
路径:appsrcmainjavacomcshtevisitormain eg⁃istmodelRegistModelImpl
1.2 签离
路径:appsrcmainjavacomcshtevisitormainsi⁃gnoutviewSignOutActivity
签离可自动签离:刷身份证、扫描条码凭条。手动签离:输入条形码的后四位数或者身份证号的后四位数。签离成功弹窗提示。
1.3 条码号
生成条码号使用的是将设备的蓝牙地址转换为十进制,utils包NumUtils方法名getMacAddress(),在点击登记按钮调用save()方法NumUtils.getTmh()生成条形码号,并保存到SP中。
在保存现场照图片时,图片命名格式:身份证号+条码号+”.jpg”,现场照片条码号获取方法:getPhotoTmh()。
打印时,条形码图片是根据十进制条码号生成。
2 统流程设计
①访客登记。②预约登记。③签离流程。④统计:来访信息统计视图折线图展示本月访问趋势、扇形图展示部门访问比例、柱状图展示签离比例。⑤查询记录⑥黑白名单:提醒操作人员,来访人是否被标记过。⑦系统设置:设置的一些开关状态,采用SP保存。主要有登记打印开关、导入U盘记录、人像对比离线在线选项开关、公安上传接口选择:01-航天接口,02-普惠接口,03-合众平台接口,04-公安内网接口(警察局内部使用的),05-大器接口。
3 开发环境
①JDK使用采用jdk1.8.0_101及以上版本。
②开发统一要求使用AndroidStudio+SVN进行开发。
③新建项目包名命名格式为:com.csht.项目名或软件名
④开发要求必须写明类名、方法名的注释,即此类的介绍和方法的说明、方法中调用的参数的说明。
⑤每修改过代码要在项目开发备注中注明,时间+版本+修复的bug。例:
⑥打包签名软件。使用同一签名包,打包命名如E访客4.3版本,打包后命名为:“evisitor_v4.3”,同一版本开发备注在给别人发送时,要更名为:“evisitor_v4.3版本开发备注”。
3.1 开发工具
开发工具Android Studio的安装、配置。Android⁃Studio安装2.2版本,具体安装方法可自行查询资料。项目中gradle版本为2.10,2.14.1-all两个版本,推荐使用高版本gradle。
3.2 开发框架
E访客系统主要采用了以下开发框架:
(1)MVP设计模式
考虑到项目需求的频繁增加与变更,传统的代码结构已经无法应付当前的需求,当项目功能较多时,单个类的代码可能变的十分臃肿,不管是增添还是删减都变得十分不易,而且代码重用率非常低下,不符合公司的功能模块化理念。所以本次项目拟采用当前An⁃droid开发中最流行的MVP设计模式[8],即把项目分成model,view,presenter三层,让view层负责界面展示,model层负责具体的业务逻辑处理,presenter层负责充当中间人的角色,做view和model的信使。这样一来,view层不能直接和model层进行交互,两者必须通过presenter层进行交互,实现了界面与业务逻辑的彻底分离。
(2)GreenDao数据库框架
由于本项目存在离线版本,所以对数据库的操作还是非常频繁的,数据的存储结构,存取的速度,都是项目中不可忽视的问题。在传统的写法中,往往直接通过安卓中的SQLiteOpenHelper类来创建一个数据库对象,直接通过SQL语句等方式类操作,这样的出错率是非常高的,也是非常繁琐的,当数据结构复杂时,效率也十分低下。GreenDao数据库框架也就应运而生,它的效率很高,占用内存最小,直接内部在线程中完成数据操作,不存在阻塞UI线程的情况,不管以后项目数据库有多复杂,都可以应对。
使用:app/build.gradle中添加依赖库compile'org. greenrobot:greendao:3.1.0'
(3)OkHttp网络请求框架
在以往的项目中,使用的都是直接通过HttpClient或者HttpUrlConnection来实现网络请求,这些方法写起来十分繁琐,没有合理完善的封装的话,出错率也很高,而且在Android的新版本中也抛弃了HttpClient。OkHttp是一个很强大的网络通信库,支持所有常用的HTTP请求,并且支持文件上传,使用的是Java的接口回调机制,简单易用,方便上手,稳定性也很强大。
使用:app/build.gradle中添加依赖库compile'com. zhy:okhttputils:2.6.2'
(4)EventBus事件总线
EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息。优点是开销小,代码更优雅。以及将发送者和接收者解耦。
使用:app/build.gradle中添加依赖库compile'org. greenrobot:eventbus:3.0.0'
(5)Picasso图片加载
加载图片是Android开发中最常见的功能,不管是加载本地图片还是加载网络图片,都很可能出现内存溢出,对图片的缓存和回收都是十分重要的。Picasso是Square公司开源的一个Android图形缓存库,可以实现图片下载和缓存功能。仅仅只需要一行代码就能完全实现图片的异步加载,而且它也解决了一些开发中常见的问题如:1.在adapter中需要取消已经不在视野范围的ImageView图片资源的加载,否则会导致图片错位。2.使用复杂的图片压缩转换来尽可能的减少内存消耗。3.自带内存和硬盘二级缓存功能。
使用:app/build.gradle中添加依赖库compile'com. squareup.picasso:picasso:2.5.2'
4 系统bug处理
①看到bug日志不要立即修复,可先进行bug的分析统计下来,向经理反馈来决定bug是否修复。
②修复过的bug要把bug平台上的标记更改为:已处理。
③在代码中没修改一次代码要在开发备注做好备注,标明修复了什么问题更改的位置,并把build.gradle中的versionName加1。打包签名生成新的包。
④重新打包签名的包必须再次系统地测试,以免因造成本次修改造成了其他bug。
5 结语
本系统的开发已经用于实践生活,通过不断的使用来完善更多的性能。同时此系统实现了上面的所有
功能要求,可以供人们长期使用。
[1]Tayyar IAA,AlzoubiM S,Hussein E,etal.Prevalenceand Antimicrobial Susceptibility Pattern ofCoagulase-Negative Staphylococci(CoNS)Isolated from ClinicalSpecimens in Northern of Jordan[J].Iranian JournalofMicrobiology,2015,7(6):294.
[2]金妮,徐皑冬,刘明哲.E/E/PE安全相关系统的软件安全浅析[J].仪器仪表学报,2008,29(S):442-446.
[3]李少谦,兰岚.无线Ad hoc网络技术[J].中兴通讯技术,2002,8(1):9-12.
[4]付军.如何提高OCR扫描识别率?[J].现代计算机月刊,2000(90):63-64.
[5]连珂,王毅,沈冬冬.基于人脸识别技术的公安检查站快速通关系统设计[J].河北公安警察职业学院学报,2016,16(3):32-34.
[6]王婵.矩阵值函数亏损特征值的Puiseux展开式[D].华东理工大学,2015.
[7]孙如江,王斌君,赵明.基于接口的公安信息共享技术研究[J].中国人民公安大学学报:自然科学版,2016(1):57-60.
[8]林亚明.基于ZK的MVVM与MVP设计模式应用研究[J].重庆高教研究,2012,31(6):72-74.
E Visitors System Design
CHEN Jian-ming,LIQin-yue
(College of Electric Power,North China University ofWater Resourcesand Electric Power,Zhengzhou 450011)
In view of the current E visitors EKF100 softwaremarket research,finds the function isnot complete,visitors to the currentsystem with in⁃terface development is not clear.So the current E visitor system software to do a comprehensive and detailed user requirementanalysis,to understand the development of the functions of the software,performance and interface,make the system analyst and software developers can clearly understand the needs of users,and on this basis to further complete the follow-up design and developmentwork.Since the launch of powered E visitor program.But for the second generation card read,personnel selection,visited by printing function.It can be connected to the Internet than to verifywhether a fugitive,the server can push of information to the public security department,etc.These functionsbetter for themasses toensure personalsafety and property safety,make people's lifemore convenient.
李秦月(1992-),女,工学硕士人,研究方向为检测技术与自动化装置
2017-05-11
2017-07-25
1007-1423(2017)22-0071-04
10.3969/j.issn.1007-1423.2017.22.017
陈建明(1964-),男,河南郑州人,教授,研究方向为检测技术与自动化装置
李秦月(1992-),女,河南商丘人,硕士,研究方向为检测技术与自动化装置
Visitors;Android Studio;jdk1.8.0_101;Identification