首页 > 解决方案 > 将 ZK 人脸字符串模板上传到设备时出现问题

问题描述

设备型号:SpeedFace-H5L
SDK 我正在使用:StandAlone SDK-Ver6.3.1.34
通过 TCP/IP 连接

当我使用 GetUserFaceStr 时,我得到了所有模板,但是当我尝试执行 SetUserFaceStr 时,操作失败并返回 -103 错误代码,在文档中它说这个错误意味着“-103 设备发回面部版本错误”

Fp版本代码是

axCZKEM1.GetSysOption(GetMachineNumber(), "ZKFaceVersion", out strTemp);

扔给我一个 58 人脸算法

这是获取和设置面孔的代码

public int sta_SetAllUserFaceInfo(ListBox lblOutputInfo, ProgressBar prgSta, ListView lvUserInfo)
{
    if (GetConnectState() == false)
    {
        lblOutputInfo.Items.Add("*Please connect first!");
        return -1024;
    }

    if (lvUserInfo.Items.Count == 0)
    {
        lblOutputInfo.Items.Add("*There is no data can upload!");
        return -1023;
    }

    string sEnrollNumber = "";
    string sEnabled = "";
    bool bEnabled = false;

    string sName = "";
    string sPassword = "";
    int iPrivilege = 0;
    string sTmpData = "";
    int iLength = 0;
    int iFaceIndex = 50;
    int num = 0;

    axCZKEM1.EnableDevice(iMachineNumber, false);
    for (int i = 0; i < lvUserInfo.Items.Count; i++)
    {
        sEnrollNumber = lvUserInfo.Items[i].SubItems[0].Text;
        sEnabled = lvUserInfo.Items[i].SubItems[1].Text;
        if (sEnabled == "true")
        {
            bEnabled = true;
        }
        else
        {
            bEnabled = false;
        }
        sName = lvUserInfo.Items[i].SubItems[2].Text;
        sPassword = lvUserInfo.Items[i].SubItems[3].Text;
        iPrivilege = Convert.ToInt32(lvUserInfo.Items[i].SubItems[4].Text);
        iLength = Convert.ToInt32(lvUserInfo.Items[i].SubItems[5].Text);
        sTmpData = lvUserInfo.Items[i].SubItems[6].Text;


        if (axCZKEM1.SSR_SetUserInfo(iMachineNumber, sEnrollNumber, sName, sPassword, iPrivilege, bEnabled))//upload user information to the device
        {
            if(axCZKEM1.SetUserFaceStr(iMachineNumber, sEnrollNumber, iFaceIndex, sTmpData, iLength)) //upload face templates information to the device
            {
                num++;
                prgSta.Value = num % 100;
            }
            else
            {
                axCZKEM1.GetLastError(ref idwErrorCode);
                lblOutputInfo.Items.Add("*Operation failed,ErrorCode=!" + idwErrorCode.ToString());
                axCZKEM1.EnableDevice(iMachineNumber, true);
            }
           
                
                
           
        }
        else
        {
            axCZKEM1.GetLastError(ref idwErrorCode);
            lblOutputInfo.Items.Add("*Operation failed,ErrorCode=!" + idwErrorCode.ToString());
            axCZKEM1.EnableDevice(iMachineNumber, true);
            return -1022;
        }
    }
    prgSta.Value = 100;

    axCZKEM1.RefreshData(iMachineNumber);//the data in the device should be refreshed
    axCZKEM1.EnableDevice(iMachineNumber, true);
    lblOutputInfo.Items.Add("Upload face successfully");
    return 1;
}

标签: c#biometricszkteco

解决方案


这是 SDK 中的 ZKteco 错误,与设备固件不兼容。我面临同样的问题。SpeedFace V4L 也会发生这种情况


推荐阅读