国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

智能訪客管理系統(tǒng)中訪客過(guò)程的呈現(xiàn)及數(shù)據(jù)的持久化處理

2016-12-15 21:06:10管毓
電腦知識(shí)與技術(shù) 2016年27期
關(guān)鍵詞:讀卡器來(lái)賓IC卡

管毓

摘要:在軟件設(shè)計(jì)中,客戶與軟件的人機(jī)交互界面,越來(lái)越受到人們的關(guān)注。如何緊密接合客戶的需求,是我們?cè)O(shè)計(jì)的重點(diǎn)。該文討論了在智能訪客管理系統(tǒng)的開(kāi)發(fā)中,從訪客信息、接待人信息的采集到接待后離開(kāi)的完整過(guò)程的呈現(xiàn),實(shí)現(xiàn)來(lái)訪過(guò)程的創(chuàng)建、修改、離開(kāi),這是設(shè)計(jì)智能訪客管理系統(tǒng)的重要環(huán)節(jié)。針對(duì)訪客過(guò)程中可能存在的數(shù)據(jù)物理鏈路斷開(kāi),導(dǎo)致來(lái)訪數(shù)據(jù)無(wú)法上傳到中心的問(wèn)題,該文給出了數(shù)據(jù)的持久化處理方法。

關(guān)鍵詞:智能訪客系統(tǒng);過(guò)程的呈現(xiàn)持久化處理

中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)27-0270-04

Abstract: In the design of software, the interface between the customer and the software is more and more attention.How to engage the customers needs, is the focus of our design. This paper discusses the complete process of presentation in development of intelligent visitor management system,from the visitor informationacquisition、 reception information acquisition to the left after the reception. It creates a visiting process、modify process and leave process.This is an important point in the design of intelligent visitor management system. Because of the data physical link disconnection which may exist in the process of visitors, the data can not be uploaded to the center. In view of the problem,persistent process should be used.

Key words: intelligent visitor system;presentation of process;persistent process

1 前言

智能訪客管理系統(tǒng)是基于Client/Server架構(gòu)的訪客管理系統(tǒng),它具備了全面而完整地進(jìn)行訪客全過(guò)程接待的管理能力,從而對(duì)訪客身份以及其接待信息提供了詳細(xì)的甄別和記載,不僅可以保障各個(gè)單位的安全,更可以提高企事業(yè)單位的電子化訪客登記水平和形象。為各級(jí)政府機(jī)關(guān)和企事業(yè)單位提供一個(gè)多能、高效、安全、穩(wěn)定的訪客管理業(yè)務(wù)平臺(tái),幫助他們實(shí)現(xiàn)高效安全的來(lái)訪人員管理。

針對(duì)政府機(jī)關(guān)的特殊管理要求,我們深入了解相關(guān)需求,開(kāi)發(fā)了政府機(jī)關(guān)的智能訪客系統(tǒng)。本系統(tǒng)的開(kāi)發(fā)基于Visual C++ 語(yǔ)言、TCP/IP協(xié)議、SQL Server數(shù)據(jù)庫(kù)進(jìn)行。由數(shù)據(jù)采集、數(shù)據(jù)傳輸、業(yè)務(wù)操作、業(yè)務(wù)管理等子系統(tǒng)組成。本文論述了訪客過(guò)程的呈現(xiàn)設(shè)計(jì),在物理鏈路斷開(kāi)時(shí),本文討論了可以通過(guò)數(shù)據(jù)持久化處理來(lái)保證數(shù)據(jù)的完整性。

2 問(wèn)題的提出

隨著公安部頒布的《公安機(jī)關(guān)監(jiān)督檢查企業(yè)事業(yè)單位內(nèi)部治安保衛(wèi)工作規(guī)定》在2007年10月1日正式實(shí)施,來(lái)訪賓客進(jìn)出安全管理問(wèn)題成為各級(jí)政府機(jī)關(guān)及企事業(yè)單位的頭等大事。特別是社會(huì)經(jīng)濟(jì)的快速發(fā)展及融合,各種外來(lái)人員流動(dòng)性的日益頻繁,更增加了安全隱患:

來(lái)訪人員真實(shí)身份難以識(shí)別;

人工紙質(zhì)手寫(xiě)登記人員信息,書(shū)寫(xiě)繁雜,而且多位身份證號(hào)碼容易錯(cuò)位漏位;

不利于企事業(yè)單位建立高科技管理形象;

紙質(zhì)登記單容易丟失、損壞,同時(shí)不易保存,不便查找,流于形式,難以進(jìn)行有效管理。

為此, 我們專(zhuān)門(mén)研發(fā)了智能訪客管理系統(tǒng),加強(qiáng)登記有序管理,防止安全事故發(fā)生。

3 系統(tǒng)組成和系統(tǒng)拓?fù)鋱D

1)系統(tǒng)組成

2)系統(tǒng)拓?fù)鋱D

4 過(guò)程的呈現(xiàn)

4.1 來(lái)訪記錄的創(chuàng)建

我們?cè)O(shè)計(jì)借助一些采集設(shè)備自動(dòng)登記來(lái)訪者和接待者的信息,來(lái)訪者的身份信息由二代身份證讀卡器華視CVR100獲取,系統(tǒng)自動(dòng)將來(lái)訪者證件內(nèi)的姓名、性別、出生年月、家庭住址和照片存入系統(tǒng)內(nèi)。如果來(lái)訪者使用警官證,則來(lái)訪者的身份信息由警官證讀卡器讀取,系統(tǒng)自動(dòng)將姓名、警號(hào)、服務(wù)的廳局和照片存到系統(tǒng)內(nèi)。同時(shí),我們?cè)O(shè)計(jì)采用高清晰網(wǎng)絡(luò)攝像頭羅技 Logitech C270進(jìn)行現(xiàn)場(chǎng)頭像抓拍,以防止來(lái)訪者和證件人不符。

對(duì)于政府要害部門(mén),為了防止外來(lái)人員(非政府機(jī)關(guān)內(nèi)部系統(tǒng)人員)誤闖入敏感區(qū)域,規(guī)定外來(lái)訪客人員需由接待人員帶進(jìn)辦公區(qū),再由接待人員帶出辦公區(qū)。那么,如何實(shí)現(xiàn)這個(gè)功能,是我們?cè)O(shè)計(jì)的重點(diǎn)。由于各政府單位基本都實(shí)現(xiàn)了門(mén)禁一卡通系統(tǒng),所以,我們?cè)O(shè)計(jì)充分利用標(biāo)識(shí)員工身份的一卡通IC卡來(lái)完成此功能。在智能訪客系統(tǒng)的前端,安裝一個(gè)門(mén)禁讀卡器,接待人只需在門(mén)禁讀卡器上刷一下他的門(mén)禁控制IC卡,即可。如果門(mén)禁卡非法,軟件會(huì)自動(dòng)提示非法不允許。

在特殊情況下(如:來(lái)訪者的證件無(wú)法識(shí)別),系統(tǒng)可自動(dòng)切換到手動(dòng)創(chuàng)建模式。

4.2 數(shù)據(jù)采集

包括來(lái)訪者信息、接待者信息,為了實(shí)現(xiàn)程序代碼的復(fù)用性,我們把部分模塊設(shè)計(jì)采用OCX的ActiveX組件形式進(jìn)行開(kāi)發(fā)。代碼片段如下(C++語(yǔ)法):

4.2.1 來(lái)訪者二代身份證

基于二代證讀卡器華視CVR100的SDK,我們?cè)O(shè)計(jì)開(kāi)發(fā)了二代證識(shí)別組件IDRCoreOcx.ocx

二代證信息的結(jié)構(gòu)定義:

structdefMsg{

unsigned short name[15]; //姓名

unsigned short sex[1]; //性別

unsigned short nation[2]; //民族

unsigned short bY[4],bM[2],bD[2]; //出生年月日

unsigned short address[35]; //地址

unsigned short id[18]; //身份證號(hào)碼

unsigned short depart[15]; //發(fā)證機(jī)關(guān)

unsigned short tsY[4],tsM[2],tsD[2]; //有效起始日期

unsigned short tpY[4],tpM[2],tpD[2]; };//有效結(jié)束日期

defMsg IDRMsg;

接口函數(shù)的定義:

BOOL InitDevice() //用于初始化加載二代證讀卡器動(dòng)態(tài)鏈接庫(kù)termb.dll到內(nèi)存

Void FreeDevice() //釋放二代證讀卡器動(dòng)態(tài)鏈接庫(kù)termb.dll所占內(nèi)存

BOOL OpenDevice() //用于打開(kāi)二代證讀卡器設(shè)備所接的計(jì)算機(jī)端口(串口或USB口)

Void CloseDevice() //用于關(guān)閉二代證讀卡器設(shè)備

BSTR GetIDRData() //用于讀卡,成功后在termb.dll文件所在路徑下zp.bmp(照片信息),同時(shí)文字信息生成到IDGMsg,最后拼成字符串返回。

4.2.2 來(lái)訪者警官證

基于警官證讀卡器SDK,我們?cè)O(shè)計(jì)開(kāi)發(fā)了警官證識(shí)別組件PoliceCoreOcx.ocx

警官證信息的結(jié)構(gòu)定義:

typedefstructPoliceCardPubInfo

{BYTE _type; //證件類(lèi)型未知 = 0, 警官證 = 1, 工作證 = 2, 退休證 = 3

BYTE _name[27]; //姓名(27個(gè)字節(jié))

BYTE _sex; //性別女 = 0, 男 = 1, 未知 = 2

BYTE _ID[8]; //證件編號(hào)8位數(shù)字編號(hào)

BYTE _grade[16]; //警銜(16字節(jié))

BYTE _duty[40]; //職務(wù)(40字節(jié))

BYTE _unit[54]; //工作單位(54字節(jié))

BYTE _validateStart[4]; //有效期起始:20年月日, 2007年12月1日表示如下:

//_validateStart[0] = 20; (20)

//_validateStart[1] = 7; (年-2000)

//_validateStart[2] = 12; (月)

//_validateStart[3] = 1; (日)

BYTE _validateEnd[4]; //有效期結(jié)束:20年月日, 2012年12月31日表示如下:

//_validateStart[0] = 20; (20)

//_validateStart[1] = 12; (年-2000)

//_validateStart[2] = 12; (月)

//_validateStart[3] = 31; (日)

}PoliceCardPubInfo;

PoliceCardPubInfo myInfo;

接口函數(shù)的定義:

BOOL OpenDevice(); //用于初始化警官證讀卡器設(shè)備,并打開(kāi)設(shè)備;

BOOL CloseDevice(); //關(guān)閉警官證讀卡器設(shè)備,并釋放設(shè)備資源;

BSTR GetPoliceData(); //用于讀卡,成功后,將識(shí)別出的照片buffer保存到指定目錄,將識(shí)別出的文字信息生成到myInfo,最后拼成字符串返回。

4.2.3 接待者門(mén)禁控制IC卡

門(mén)禁控制IC卡讀卡器通過(guò)232的串口,把讀到的卡號(hào)送給訪客系統(tǒng),基于串口通迅原理,我們?cè)O(shè)計(jì)開(kāi)發(fā)了門(mén)禁IC卡識(shí)別組件EmployCardOcx.ocx

接口函數(shù)的定義:

BOOL InitReaderOcx(LPCTSTR strPort); //設(shè)置讀卡器所在串口號(hào),并打開(kāi)串口

void FreeReaderOcx(); //關(guān)閉讀卡器所在串口,

void CardEvent(CstringstrRet); //事件函數(shù),組件可時(shí)刻監(jiān)聽(tīng)是否有人刷門(mén)禁卡,一旦有人刷卡,組件則會(huì)主動(dòng)識(shí)別出卡號(hào),由字符串strRet返回。主程序通過(guò)注冊(cè)事件回調(diào),被動(dòng)獲得IC卡號(hào)。

4.2.4 來(lái)訪者現(xiàn)場(chǎng)頭像照片

USB接口高清晰攝像頭,我們?cè)O(shè)計(jì)采用VFW(Windows 專(zhuān)門(mén)提供的Video For Windows)視頻捕捉技術(shù),實(shí)時(shí)抓拍來(lái)訪者頭像。代碼片段如下(C++語(yǔ)法):

{charszDeviceName[80];

charszDeviceVersion[80];

char item[161];

int i;

for (i=0; i<10; i++)

{if ( capGetDriverDescription(i, szDeviceName, sizeof(szDeviceName),szDeviceVersion, sizeof(szDeviceVersion)) ) //獲取系統(tǒng)已安裝的所有捕獲驅(qū)動(dòng)程序的名稱(chēng)和版本。獲取不到,則不去捕獲視頻。

{strcpy(item, szDeviceName);

strcat(item, “ “);

strcat(item, szDeviceVersion);

BOOL b = FALSE;

capDriverDisconnect(m_hVideo); //與捕獲視頻源斷開(kāi)連接

b = capDriverConnect(m_hVideo,i); //捕獲視頻源

if(!b)

continue;

BITMAPINFO bminfo;

intnSize = sizeof(BITMAPINFO);

capGetVideoFormat(m_hVideo,(void*)&bminfo,nSize); //獲得視頻格式 capPreviewRate( m_hVideo, 40 ); //設(shè)置預(yù)覽的速度

capPreviewScale(m_hVideo, TRUE); //設(shè)置預(yù)覽的比例

capPreview( m_hVideo, TRUE ); //開(kāi)始預(yù)覽

break; }}

if(i == 10)

{//沒(méi)有找到視頻采集設(shè)備}

return 0; }

4.3 數(shù)據(jù)呈現(xiàn)

數(shù)據(jù)呈現(xiàn)如下圖所示,需要采集的信息有訪客信息(含文字和身份證、警官證照片)、接待信息、來(lái)訪者現(xiàn)場(chǎng)頭像照片。

4.4 來(lái)訪記錄的修改

來(lái)訪信息有時(shí)有其他情況需要陳述(如:需延時(shí)退卡、延時(shí)原因,來(lái)訪者的車(chē)輛、事由、實(shí)際離開(kāi)時(shí)間),因此,我們?cè)O(shè)計(jì)可以修改在系統(tǒng)界面實(shí)時(shí)呈現(xiàn)的未退卡訪客記錄。

4.5 來(lái)訪的離開(kāi)

當(dāng)來(lái)訪人員離開(kāi)時(shí),點(diǎn)擊“退卡離開(kāi)”按鈕或者送客人在讀卡器上進(jìn)行刷卡操作都會(huì)彈出離開(kāi)確認(rèn)對(duì)話框,確認(rèn)后,系統(tǒng)將自動(dòng)獲取訪客離開(kāi)時(shí)間并保存,然后將該條訪問(wèn)信息從該訪客記錄列表中刪除。此后該訪客信息只能在“信息檢索”中查看、打印、生成報(bào)表,不能再進(jìn)行任何的修改。

“退卡離開(kāi)”和”刷卡離開(kāi)”的區(qū)別:點(diǎn)擊“退卡離開(kāi)”按鍵,此時(shí),系統(tǒng)默認(rèn)無(wú)送客人;刷員工卡離開(kāi),此時(shí),系統(tǒng)將員工卡所有人視為送客人。當(dāng)送客人與接待人不是同一人時(shí),會(huì)提示如下圖所示:

5 數(shù)據(jù)的持久化處理

本系統(tǒng)設(shè)計(jì)配備了中心存儲(chǔ)服務(wù)器和中心數(shù)據(jù)庫(kù)服務(wù)器,所有照片信息和數(shù)據(jù)信息均通過(guò)網(wǎng)絡(luò)協(xié)議實(shí)時(shí)地傳輸?shù)街行?,但是,?dāng)系統(tǒng)物理鏈路斷開(kāi)時(shí),所有前端的信息均無(wú)法實(shí)時(shí)傳輸,解決這個(gè)問(wèn)題的最好的方法就是將未傳成功的照片和數(shù)據(jù)進(jìn)行本地XML文件的持久化處理保存,當(dāng)物理鏈路恢復(fù)正常時(shí),讀取XML文件后對(duì)照片和數(shù)據(jù)進(jìn)行重新傳輸,從而保證了數(shù)據(jù)的完整性。

來(lái)訪記錄的結(jié)構(gòu)定義

structRecordStruct

{CstringstrGuestName; //來(lái)賓姓名

CstringstrGuestAddress; //來(lái)賓地址

CstringstrGuestBirthday; //來(lái)賓出生日期

CstringstrGuestCertificateID; //來(lái)賓證件編號(hào)

CstringstrGuestDepartment; //來(lái)賓部門(mén)

CstringstrGuestPhone; //來(lái)賓電話

CstringstrEmployeeName; //接待人姓名

CstringstrEmployeeDepartment; //接待人部門(mén)

CstringstrEmployeePhone; //接待人電話

CstringstrEmployeeAdress; //接待人地址

CstringstrEmployeeCode; //接待人卡編號(hào)

CstringstrReason; //來(lái)訪事由

CstringstrInTempID; //來(lái)賓卡編號(hào)

CstringstrStartTime; //來(lái)賓訪問(wèn)時(shí)間

CstringstrEndTime; //來(lái)賓離開(kāi)時(shí)間

CstringstrCarID; //來(lái)賓車(chē)牌號(hào)碼

CstringstrCarType; //來(lái)賓車(chē)型

CstringstrCarColor; //來(lái)賓車(chē)輛顏色

CstringstrGuestCertificateType; //證件類(lèi)型

CstringstrManageName; //管理員姓名

intnGuestSex; //0表示男,1表示女

intnSendGuestEmployID; //送客的員工ID號(hào)

intnReceiveGuestEmployID; //迎客的員工ID號(hào)

CstringstrBeiZhu; //備注

CstringstrPhotoSavePath; //保存路徑身份證照片

CstringstrPhotoLocaleSavePath;}; //保存路徑現(xiàn)場(chǎng)抓圖圖片

RecordStructuploadimageinfo;

首先將不能上傳的數(shù)據(jù)緩存化處理,代碼片段如下(C++):

…//此處代碼省略

if (pDlg->m_pBaseClass->UploadImage(pDlg->m_szCrossName, &uploadimageinfo) == TRUE)

{//上傳成功}

else

{//上傳失敗,寫(xiě)到日志緩存鏈表m_WriteMsgLogList

CwriteMsgLog *pWriteMsgLog = new CwriteMsgLog;

pWriteMsgLog->strLocalPath = szLocalPath;

pWriteMsgLog->uploadimageinfo = uploadimageinfo;

pDlg->m_WriteMsgLogListLock.Lock();

try{

pDlg->m_WriteMsgLogList.AddTail(pWriteMsgLog); }

catch(…)

{}

pDlg->m_WriteMsgLogListLock.UnLock();}

然后將緩存數(shù)據(jù)以XML文件形式落地保存到本地硬盤(pán),代碼片段如下(C++):

POSITION pos = WriteMsgLogList.GetHeadPosition();

while(NULL != pos)

{CwriteMsgLog *pLII = WriteMsgLogList.GetAt(pos);

pDlg->m_SaveMsgLock.Lock();

pDlg->SaveXmlLog_MSG(pLII->strLocalPath,pLII->uploadimageinfo);//保存XML文件

pDlg->m_SaveMsgLock.UnLock();

deletepLII;

pLII = NULL;

WriteMsgLogList.RemoveAt(pos);

pos = WriteMsgLogList.GetHeadPosition();}

最后,當(dāng)條件具備時(shí),讀取XML文件的記錄后,一條一條將文件和數(shù)據(jù)上傳到中心。

6 運(yùn)行效果總結(jié)

本智能訪客管理系統(tǒng)作為某省政府部門(mén)訪客管理工具自2013年開(kāi)始試運(yùn)行以來(lái)運(yùn)行良好,每年平均有12萬(wàn) 至15萬(wàn) 人次,訪客過(guò)程中系統(tǒng)響應(yīng)及時(shí),沒(méi)有出現(xiàn)網(wǎng)絡(luò)阻塞現(xiàn)象,在每次物理鏈路故障時(shí),均未影響系統(tǒng)的訪客接待過(guò)程,且每次鏈路正常后,系統(tǒng)均及時(shí)恢復(fù)信息的上傳,從未影響各級(jí)領(lǐng)導(dǎo)的查看工作。本系統(tǒng)作為智能訪客管理工具為政府機(jī)關(guān)單位提供了良好的服務(wù)。

參考文獻(xiàn):

[1] 姜桂洪,張龍波.SQL Server 2005數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)[M].清華大學(xué)出版社,2010.

[2] (美)Walter Savitch.C++面向?qū)ο蟪绦蛟O(shè)計(jì)[M]. 周靖,譯.7版.清華大學(xué)出版社,2010.

[3] 吳晨.ASP.NET 數(shù)據(jù)庫(kù)項(xiàng)目案例導(dǎo)航[M].清華大學(xué)出版社,2004.

[4] 張海藩.軟件工程導(dǎo)論[M].5版.清華大學(xué)出版社,2008.

[5] 曹付元,梁吉業(yè).基于SQL語(yǔ)言的粗糙數(shù)據(jù)查詢[J].計(jì)算機(jī)科學(xué),2004(7).

猜你喜歡
讀卡器來(lái)賓IC卡
工商業(yè)IC卡控制器改造為物聯(lián)網(wǎng)控制器實(shí)踐
女王
寶藏(2021年8期)2021-09-15 02:20:04
布達(dá)拉宮
寶藏(2021年8期)2021-09-15 02:20:04
寶藏(2021年4期)2021-05-27 08:11:02
與淘汰命運(yùn)抗?fàn)帯】炊P記本的讀卡器
在用電梯加裝外接式IC卡運(yùn)行控制系統(tǒng)設(shè)計(jì)改進(jìn)
來(lái)賓,有三個(gè)“全國(guó)第一”的甜蜜園區(qū)
一種新的無(wú)觸點(diǎn)IC卡的檢測(cè)方法
基于EMV非接通信規(guī)范的非接觸讀卡器設(shè)計(jì)
為二維碼識(shí)別的獻(xiàn)禮之作——評(píng)測(cè)平治二維碼門(mén)禁讀卡器
宁海县| 柳河县| 瑞丽市| 昌黎县| 枣强县| 衡东县| 怀远县| 潍坊市| 汾西县| 自治县| 孟津县| 尉犁县| 江阴市| 华容县| 沾益县| 房产| 乡宁县| 利辛县| 大丰市| 车致| 平塘县| 宁明县| 临湘市| 昆山市| 宝坻区| 宜良县| 秭归县| 舒兰市| 彩票| 文登市| 巍山| 成武县| 永胜县| 五台县| 县级市| 巴林左旗| 醴陵市| 宜宾县| 驻马店市| 甘德县| 荃湾区|