陳建明,李秦月
(華北水利水電大學電力學院,鄭州450011)
E訪客系統的設計
陳建明,李秦月
(華北水利水電大學電力學院,鄭州450011)
針對當前E訪客EKF100的軟件市場調查,發現當前的訪客系統存在功能不齊全,開發的界面不明確等問題。因此在當前的E訪客系統軟件做全面細致的用戶需求分析,明確所要開發的軟件應具有的功能、性能與界面,使系統分析人員及軟件開發人員能清楚地了解用戶的需求,并在此基礎上進一步完成后續設計與開發工作。設備開機E訪客程序自啟動。可對二代證進行讀取、被訪人員的選擇,打印保存功能。可進行聯網比對驗證是否是在逃人員,服務器端可向公安部門進行信息推送等。這些功能更好地為群眾保證人身安全和財產安全,使人民生活更加便利。
訪客;Android Studio;jdk1.8.0_101;識別
隨著人類邁入二十一世紀,計算機技術、通信技術、網絡技術[3]為代表的現代信息技術的飛躍發展。人類正在從工業時代向信息時代邁進,人們越來越重視信息資源的開發和利用。信息化已成為一個國家經濟和社會發展的關鍵環節。信息化水平的高低已成為衡量一個國家現代化水平和綜合國力的重要標志。因此對訪客系統的研究設計就顯得十分重要。本系統在原有E訪客系統上開發了新的功能更好的滿足人們的要求和需要。給以后人們的生活帶來便利。
本系統實現的功能要求:①設備開機。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()。
打印時,條形碼圖片是根據十進制條碼號生成。
①訪客登記。②預約登記。③簽離流程。④統計:來訪信息統計視圖折線圖展示本月訪問趨勢、扇形圖展示部門訪問比例、柱狀圖展示簽離比例。⑤查詢記錄⑥黑白名單:提醒操作人員,來訪人是否被標記過。⑦系統設置:設置的一些開關狀態,采用SP保存。主要有登記打印開關、導入U盤記錄、人像對比離線在線選項開關、公安上傳接口選擇:01-航天接口,02-普惠接口,03-合眾平臺接口,04-公安內網接口(警察局內部使用的),05-大器接口。
①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'
①看到bug日志不要立即修復,可先進行bug的分析統計下來,向經理反饋來決定bug是否修復。
②修復過的bug要把bug平臺上的標記更改為:已處理。
③在代碼中沒修改一次代碼要在開發備注做好備注,標明修復了什么問題更改的位置,并把build.gradle中的versionName加1。打包簽名生成新的包。
④重新打包簽名的包必須再次系統地測試,以免因造成本次修改造成了其他bug。
本系統的開發已經用于實踐生活,通過不斷的使用來完善更多的性能。同時此系統實現了上面的所有
功能要求,可以供人們長期使用。
[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