門禁管理軟件開發(fā)總結(jié)
一、定制需求簡述:
門禁管理軟件向設(shè)備傳輸數(shù)據(jù)時,上傳人員信息及指紋信息不全,由于門禁管理軟件是按照固件版本來處理下發(fā)指紋數(shù)據(jù),因為以前的軟件對于現(xiàn)在的機器固件的指紋下發(fā)是處理不了的。因此需要定制。
門禁管理軟件
二、實現(xiàn)方法:
因上傳人員組合驗定時,在高速下是無法成功下發(fā)。原因為,在高速上傳用戶時,是先寫到內(nèi)存中,最后提交的,而上傳人員組合驗證的方法,不支持高速,它會直接下發(fā)到機器,這時機器中還沒有人員,所以會失敗。因此,在高速上傳時,上傳人員組合驗證的功能移到最后,待人員都上傳完畢之后處理。
三、門禁管理軟件代碼Changelog:
主要代碼如下:
UploadOk := ZkManager.UpdateBatch;
//更新組合驗證 不可以放到高速里面,只有在高速完成了之后再做
//如果是高速模式還要處理 上傳驗證方式
First; //從頭開始
while Not Eof do
begin
if Not FieldByName('Selected').AsBoolean then //此用戶沒有選中跳過
begin
Next;
Continue;
Application.ProcessMessages;
end;
if ckbBase.Checked then
begin
if FCancelOp then Exit;
ZeroMemory(Pointer(@UserACCfg),Sizeof(UserACCfg));
//處理驗證方式
UserACCfg.VerifyStyle := 0;
//根據(jù)門禁管理軟件參數(shù)[上傳用戶沒有指定門禁權(quán)限時,門禁管理軟件將默認(rèn)權(quán)限(使用組1時間段)。],
//去查找此用戶有沒有定義用戶門禁權(quán)限
bFind := SearchUserDoorPri(ZkManager.DeviceInfo.ID, IntToStr(FieldByName('UserNo').AsInteger), UserACCfg);
if not bFind then
begin
//沒有找到用戶自定義門禁權(quán)限, 用戶在不在:組->門禁組中
bFind := SearchUserDoorPriExt(ZkManager.DeviceInfo.ID, FieldByName('UserNo').AsInteger, UserACCfg);
end;
if bFind and ZkManager.TFTACC then
begin
iVerify:=IfThen((UserACCfg.VerifyStyle > 0), (128 UserACCfg.VerifyStyle-1), 0);
ZkManager.ZKem.SetUserInfoEx(ZkManager.DeviceInfo.MachineNumber, FieldByName('UserNo').AsInteger, iVerify, Reserved);
end;
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。