陳建明,李秦月
(華北水利水電大學(xué)電力學(xué)院,鄭州450011)
E訪客系統(tǒng)的設(shè)計
陳建明,李秦月
(華北水利水電大學(xué)電力學(xué)院,鄭州450011)
針對當(dāng)前E訪客EKF100的軟件市場調(diào)查,發(fā)現(xiàn)當(dāng)前的訪客系統(tǒng)存在功能不齊全,開發(fā)的界面不明確等問題。因此在當(dāng)前的E訪客系統(tǒng)軟件做全面細致的用戶需求分析,明確所要開發(fā)的軟件應(yīng)具有的功能、性能與界面,使系統(tǒng)分析人員及軟件開發(fā)人員能清楚地了解用戶的需求,并在此基礎(chǔ)上進一步完成后續(xù)設(shè)計與開發(fā)工作。設(shè)備開機E訪客程序自啟動。可對二代證進行讀取、被訪人員的選擇,打印保存功能??蛇M行聯(lián)網(wǎng)比對驗證是否是在逃人員,服務(wù)器端可向公安部門進行信息推送等。這些功能更好地為群眾保證人身安全和財產(chǎn)安全,使人民生活更加便利。
訪客;Android Studio;jdk1.8.0_101;識別
隨著人類邁入二十一世紀,計算機技術(shù)、通信技術(shù)、網(wǎng)絡(luò)技術(shù)[3]為代表的現(xiàn)代信息技術(shù)的飛躍發(fā)展。人類正在從工業(yè)時代向信息時代邁進,人們越來越重視信息資源的開發(fā)和利用。信息化已成為一個國家經(jīng)濟和社會發(fā)展的關(guān)鍵環(huán)節(jié)。信息化水平的高低已成為衡量一個國家現(xiàn)代化水平和綜合國力的重要標(biāo)志。因此對訪客系統(tǒng)的研究設(shè)計就顯得十分重要。本系統(tǒng)在原有E訪客系統(tǒng)上開發(fā)了新的功能更好的滿足人們的要求和需要。給以后人們的生活帶來便利。
本系統(tǒng)實現(xiàn)的功能要求:①設(shè)備開機。E訪客程序自啟動。②可對二代證進行讀取、被訪人員的選擇,打印保存功能。③可進行聯(lián)網(wǎng)比對驗證是否是在逃人員,服務(wù)器端可向公安部門進行信息推送。性能要求:二代證讀取應(yīng)不能出現(xiàn)用戶等待現(xiàn)象,查詢效率盡可能做到精準,信息維護做到簡單實用,不需要過多的人員培訓(xùn),要求性能穩(wěn)定,不能出現(xiàn)數(shù)據(jù)丟失、錯誤等情況。安全與保密要求:系統(tǒng)本身具有一定安全機制,可保證各項數(shù)據(jù)完整和正確性。
1.1 登記
路徑:appsrcmainjavacomcshtevisitormain eg?istviewRegistActivity登記界面主要使用的功能有:身份證信息讀取,OCR掃描[4]獲取身份證信息,離線人臉對比,登記打印,保存本地數(shù)據(jù)庫。
程序首次運行默認打開打印和離線人臉比對[5]開關(guān)。每次進入登記界面要進行人臉比對句柄的初始化有progressDialog顯示,刷身份證成功保存身份證圖片到本地evisitor文件夾,在展示身份證信息的方法中showInfo()中做身份證圖片提取人臉特征值處理,身份證信息獲取后,模擬拍照按鈕的自動點擊,調(diào)用拍照,拍照采用opencv自動捕獲人臉,保存現(xiàn)場拍的照片到本地,并在登記界面顯示現(xiàn)場照showNowPhoto(),在showNowPhoto()方法中做提起現(xiàn)場照片特征值處理,并比對身份證特征值和現(xiàn)場照片特征值返回比對分數(shù),分數(shù)為float型范圍0~1.0,離線人臉比對比對分數(shù)>=0.7&&<=1.0確定為同一人。
(1)身份證讀取
身份證讀取使用的是封裝好的aar組件。讀卡分為:cshtidcardreader.aar、cshtnewidcardreader.aar區(qū)別:1:cshtidcardreader.aar是早期讀卡組件,使用的是身份證讀卡jar包。cshtnewidcardreader.aar使用的是指令讀取身份證信息兼容0501模塊讀卡。2:cshtid?cardreader.aar使用了synjonesSerial.jar和libDecodeW?lt.so、libserial_port.so;cshtnewidcardreader.aar使用的libtwltdecode.so和調(diào)用C語言生成的so。讀取身份證信息成功后調(diào)用回調(diào)監(jiān)聽事件onReadCardListener.on?ReadCardSuccess(idCard Info),返回身份證信息實體類。
(2)OCR掃描
使用telpo_api.jar
點擊登記界面掃描圖標(biāo)調(diào)用OcrModelImpl中han?dleIntent()方法,通過Intent傳遞參數(shù)調(diào)用OCR掃描類進行解析所拍照片的信息,解析身份證信息成功后調(diào)用回調(diào)監(jiān)聽事件
onReadCardListener.onReadCardSuccess(idCard In?fo),返回身份證信息實體類。
①離線人臉識別
首次安裝先進行離線對比所需資源文件解壓調(diào)用initOffLinemodels(),解壓完成后初始化離線比對句柄initOfflineCompare,刷身份證界面顯示信息后,如果開啟了人臉比對開關(guān)調(diào)用updateResult(1,path)。
1:提取身份證圖片特征值標(biāo)記,path:身份證保存路徑,解析圖片特征值[6]調(diào)用GetFeatureFromPath(path,true),true:提取檢測到的身份證人臉。現(xiàn)場拍照返回后,進行提取現(xiàn)場照圖片調(diào)用updateResult(2,imgPath);2:提取身份證圖片特征值標(biāo)記,imgPath:現(xiàn)場照片保存路徑,解析圖片特征值調(diào)用GetFeature?FromPath(imgPath,false);false:提取檢測到的現(xiàn)場照人臉。現(xiàn)場照提取人臉特征值后,直接分析比較身份證圖片和現(xiàn)場照圖片特征值,返回比對分數(shù),播放提示音并彈窗提示。
②打印
打印分為設(shè)備打印機和USB打印機兩種。設(shè)備打印機即設(shè)備自帶打印機,USB打印機是外界USB口打印機,兩者切換在設(shè)置中選擇。
③保存信息到本地數(shù)據(jù)庫
點擊登記按鈕,調(diào)用presenter層registPresenter. save()方法,調(diào)用RegistModelImpl中save()方法。
④公安接口[7]上傳數(shù)據(jù)
在RegistModelImpl中save()方法。
路徑:appsrcmainjavacomcshtevisitormain eg?istmodelRegistModelImpl
1.2 簽離
路徑:appsrcmainjavacomcshtevisitormainsi?gnoutviewSignOutActivity
簽離可自動簽離:刷身份證、掃描條碼憑條。手動簽離:輸入條形碼的后四位數(shù)或者身份證號的后四位數(shù)。簽離成功彈窗提示。
1.3 條碼號
生成條碼號使用的是將設(shè)備的藍牙地址轉(zhuǎn)換為十進制,utils包NumUtils方法名getMacAddress(),在點擊登記按鈕調(diào)用save()方法NumUtils.getTmh()生成條形碼號,并保存到SP中。
在保存現(xiàn)場照圖片時,圖片命名格式:身份證號+條碼號+”.jpg”,現(xiàn)場照片條碼號獲取方法:getPhotoTmh()。
打印時,條形碼圖片是根據(jù)十進制條碼號生成。
①訪客登記。②預(yù)約登記。③簽離流程。④統(tǒng)計:來訪信息統(tǒng)計視圖折線圖展示本月訪問趨勢、扇形圖展示部門訪問比例、柱狀圖展示簽離比例。⑤查詢記錄⑥黑白名單:提醒操作人員,來訪人是否被標(biāo)記過。⑦系統(tǒng)設(shè)置:設(shè)置的一些開關(guān)狀態(tài),采用SP保存。主要有登記打印開關(guān)、導(dǎo)入U盤記錄、人像對比離線在線選項開關(guān)、公安上傳接口選擇:01-航天接口,02-普惠接口,03-合眾平臺接口,04-公安內(nèi)網(wǎng)接口(警察局內(nèi)部使用的),05-大器接口。
①JDK使用采用jdk1.8.0_101及以上版本。
②開發(fā)統(tǒng)一要求使用AndroidStudio+SVN進行開發(fā)。
③新建項目包名命名格式為:com.csht.項目名或軟件名
④開發(fā)要求必須寫明類名、方法名的注釋,即此類的介紹和方法的說明、方法中調(diào)用的參數(shù)的說明。
⑤每修改過代碼要在項目開發(fā)備注中注明,時間+版本+修復(fù)的bug。例:
⑥打包簽名軟件。使用同一簽名包,打包命名如E訪客4.3版本,打包后命名為:“evisitor_v4.3”,同一版本開發(fā)備注在給別人發(fā)送時,要更名為:“evisitor_v4.3版本開發(fā)備注”。
3.1 開發(fā)工具
開發(fā)工具Android Studio的安裝、配置。Android?Studio安裝2.2版本,具體安裝方法可自行查詢資料。項目中g(shù)radle版本為2.10,2.14.1-all兩個版本,推薦使用高版本gradle。
3.2 開發(fā)框架
E訪客系統(tǒng)主要采用了以下開發(fā)框架:
(1)MVP設(shè)計模式
考慮到項目需求的頻繁增加與變更,傳統(tǒng)的代碼結(jié)構(gòu)已經(jīng)無法應(yīng)付當(dāng)前的需求,當(dāng)項目功能較多時,單個類的代碼可能變的十分臃腫,不管是增添還是刪減都變得十分不易,而且代碼重用率非常低下,不符合公司的功能模塊化理念。所以本次項目擬采用當(dāng)前An?droid開發(fā)中最流行的MVP設(shè)計模式[8],即把項目分成model,view,presenter三層,讓view層負責(zé)界面展示,model層負責(zé)具體的業(yè)務(wù)邏輯處理,presenter層負責(zé)充當(dāng)中間人的角色,做view和model的信使。這樣一來,view層不能直接和model層進行交互,兩者必須通過presenter層進行交互,實現(xiàn)了界面與業(yè)務(wù)邏輯的徹底分離。
(2)GreenDao數(shù)據(jù)庫框架
由于本項目存在離線版本,所以對數(shù)據(jù)庫的操作還是非常頻繁的,數(shù)據(jù)的存儲結(jié)構(gòu),存取的速度,都是項目中不可忽視的問題。在傳統(tǒng)的寫法中,往往直接通過安卓中的SQLiteOpenHelper類來創(chuàng)建一個數(shù)據(jù)庫對象,直接通過SQL語句等方式類操作,這樣的出錯率是非常高的,也是非常繁瑣的,當(dāng)數(shù)據(jù)結(jié)構(gòu)復(fù)雜時,效率也十分低下。GreenDao數(shù)據(jù)庫框架也就應(yīng)運而生,它的效率很高,占用內(nèi)存最小,直接內(nèi)部在線程中完成數(shù)據(jù)操作,不存在阻塞UI線程的情況,不管以后項目數(shù)據(jù)庫有多復(fù)雜,都可以應(yīng)對。
使用:app/build.gradle中添加依賴庫compile'org. greenrobot:greendao:3.1.0'
(3)OkHttp網(wǎng)絡(luò)請求框架
在以往的項目中,使用的都是直接通過HttpClient或者HttpUrlConnection來實現(xiàn)網(wǎng)絡(luò)請求,這些方法寫起來十分繁瑣,沒有合理完善的封裝的話,出錯率也很高,而且在Android的新版本中也拋棄了HttpClient。OkHttp是一個很強大的網(wǎng)絡(luò)通信庫,支持所有常用的HTTP請求,并且支持文件上傳,使用的是Java的接口回調(diào)機制,簡單易用,方便上手,穩(wěn)定性也很強大。
使用:app/build.gradle中添加依賴庫compile'com. zhy:okhttputils:2.6.2'
(4)EventBus事件總線
EventBus是一款針對Android優(yōu)化的發(fā)布/訂閱事件總線。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,線程之間傳遞消息。優(yōu)點是開銷小,代碼更優(yōu)雅。以及將發(fā)送者和接收者解耦。
使用:app/build.gradle中添加依賴庫compile'org. greenrobot:eventbus:3.0.0'
(5)Picasso圖片加載
加載圖片是Android開發(fā)中最常見的功能,不管是加載本地圖片還是加載網(wǎng)絡(luò)圖片,都很可能出現(xiàn)內(nèi)存溢出,對圖片的緩存和回收都是十分重要的。Picasso是Square公司開源的一個Android圖形緩存庫,可以實現(xiàn)圖片下載和緩存功能。僅僅只需要一行代碼就能完全實現(xiàn)圖片的異步加載,而且它也解決了一些開發(fā)中常見的問題如:1.在adapter中需要取消已經(jīng)不在視野范圍的ImageView圖片資源的加載,否則會導(dǎo)致圖片錯位。2.使用復(fù)雜的圖片壓縮轉(zhuǎn)換來盡可能的減少內(nèi)存消耗。3.自帶內(nèi)存和硬盤二級緩存功能。
使用:app/build.gradle中添加依賴庫compile'com. squareup.picasso:picasso:2.5.2'
①看到bug日志不要立即修復(fù),可先進行bug的分析統(tǒng)計下來,向經(jīng)理反饋來決定bug是否修復(fù)。
②修復(fù)過的bug要把bug平臺上的標(biāo)記更改為:已處理。
③在代碼中沒修改一次代碼要在開發(fā)備注做好備注,標(biāo)明修復(fù)了什么問題更改的位置,并把build.gradle中的versionName加1。打包簽名生成新的包。
④重新打包簽名的包必須再次系統(tǒng)地測試,以免因造成本次修改造成了其他bug。
本系統(tǒng)的開發(fā)已經(jīng)用于實踐生活,通過不斷的使用來完善更多的性能。同時此系統(tǒng)實現(xiàn)了上面的所有
功能要求,可以供人們長期使用。
[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安全相關(guān)系統(tǒng)的軟件安全淺析[J].儀器儀表學(xué)報,2008,29(S):442-446.
[3]李少謙,蘭嵐.無線Ad hoc網(wǎng)絡(luò)技術(shù)[J].中興通訊技術(shù),2002,8(1):9-12.
[4]付軍.如何提高OCR掃描識別率?[J].現(xiàn)代計算機月刊,2000(90):63-64.
[5]連珂,王毅,沈冬冬.基于人臉識別技術(shù)的公安檢查站快速通關(guān)系統(tǒng)設(shè)計[J].河北公安警察職業(yè)學(xué)院學(xué)報,2016,16(3):32-34.
[6]王嬋.矩陣值函數(shù)虧損特征值的Puiseux展開式[D].華東理工大學(xué),2015.
[7]孫如江,王斌君,趙明.基于接口的公安信息共享技術(shù)研究[J].中國人民公安大學(xué)學(xué)報:自然科學(xué)版,2016(1):57-60.
[8]林亞明.基于ZK的MVVM與MVP設(shè)計模式應(yīng)用研究[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-),女,工學(xué)碩士人,研究方向為檢測技術(shù)與自動化裝置
2017-05-11
2017-07-25
1007-1423(2017)22-0071-04
10.3969/j.issn.1007-1423.2017.22.017
陳建明(1964-),男,河南鄭州人,教授,研究方向為檢測技術(shù)與自動化裝置
李秦月(1992-),女,河南商丘人,碩士,研究方向為檢測技術(shù)與自動化裝置
Visitors;Android Studio;jdk1.8.0_101;Identification