門禁管理軟件開發(fā)總結
一、定制需求簡述:
門禁管理軟件向設備傳輸數據時,上傳人員信息及指紋信息不全,由于門禁管理軟件是按照固件版本來處理下發(fā)指紋數據,因為以前的軟件對于現在的機器固件的指紋下發(fā)是處理不了的。因此需要定制。
門禁管理軟件
二、實現方法:
因上傳人員組合驗定時,在高速下是無法成功下發(fā)。原因為,在高速上傳用戶時,是先寫到內存中,最后提交的,而上傳人員組合驗證的方法,不支持高速,它會直接下發(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;
//根據門禁管理軟件參數[上傳用戶沒有指定門禁權限時,門禁管理軟件將默認權限(使用組1時間段)。],
//去查找此用戶有沒有定義用戶門禁權限
bFind := SearchUserDoorPri(ZkManager.DeviceInfo.ID, IntToStr(FieldByName('UserNo').AsInteger), UserACCfg);
if not bFind then
begin
//沒有找到用戶自定義門禁權限, 用戶在不在:組->門禁組中
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;
版權聲明:本文內容由互聯網用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發(fā)現本站有涉嫌抄襲侵權/違法違規(guī)的內容, 請發(fā)送郵件至 舉報,一經查實,本站將立刻刪除。