将 ZK 人脸字符串模板上传到设备时出现问题

Posted

技术标签:

【中文标题】将 ZK 人脸字符串模板上传到设备时出现问题【英文标题】:Problems uploading a ZK Face String Template to a device 【发布时间】:2021-11-26 18:56:07 【问题描述】:

设备型号: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.s-s-r_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;

【问题讨论】:

SDK 不完全兼容可见光版本的设备。最好用 web api 试试 【参考方案1】:

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

【讨论】:

以上是关于将 ZK 人脸字符串模板上传到设备时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

通过 Ajax 将数据发布到 Flask 时出现 500 内部服务器错误 [重复]

尝试使用 AJAX 在 Laravel 中上传单个文件时出现数组到字符串转换错误

将多个图像上传到服务器时出现内存问题

执行人脸识别时出现opencv灯问题

将文件从本地上传到雪花表阶段时出现问题

将图像上传到 FTP 时出现错误