Beispiel #1
0
        // 局部更新指纹信息高速缓存
        // return:
        //      -2  remoting服务器连接失败。驱动程序尚未启动
        //      -1  出错
        //      0   成功
        int UpdateFingerprintCache(
            string strBarcode,
            string strFingerprint,
            out string strError)
        {
            strError = "";

            if (string.IsNullOrEmpty(this.MainForm.FingerprintReaderUrl) == true)
            {
                strError = "尚未配置 指纹阅读器URL 系统参数,无法更新指纹高速缓存";
                return -1;
            }

            int nRet = StartFingerprintChannel(
                this.MainForm.FingerprintReaderUrl,
                out strError);
            if (nRet == -1)
                return -1;

            try
            {
                List<FingerprintItem> items = new List<FingerprintItem>();

                FingerprintItem item = new FingerprintItem();
                item.ReaderBarcode = strBarcode;
                item.FingerprintString = strFingerprint;
                items.Add(item);

                // return:
                //      -2  remoting服务器连接失败。驱动程序尚未启动
                //      -1  出错
                //      0   成功
                nRet = AddItems(items,
    out strError);
                if (nRet == -1)
                    return -1;
                if (nRet == -2)
                    return -2;
            }
            finally
            {
                EndFingerprintChannel();
            }

            return 0;
        }
Beispiel #2
0
        // return:
        //      -2  remoting服务器连接失败。驱动程序尚未启动
        //      -1  出错
        //      >=0 实际发送给接口程序的事项数目
        int CreateFingerprintCache(DpResultSet resultset,
            out string strError)
        {
            strError = "";

            if (string.IsNullOrEmpty(this.MainForm.FingerprintReaderUrl) == true)
            {
                strError = "尚未配置 指纹阅读器URL 系统参数,无法创建指纹高速缓存";
                return -1;
            }

            int nRet = StartFingerprintChannel(
                this.MainForm.FingerprintReaderUrl,
                out strError);
            if (nRet == -1)
                return -1;

            try
            {
                if (resultset == null)
                {
                    // 清空以前的全部缓存内容,以便重新建立
                    // return:
                    //      -2  remoting服务器连接失败。驱动程序尚未启动
                    //      -1  出错
                    //      0   成功
                    nRet = AddItems(null,
    out strError);
                    if (nRet == -1)
                        return -1;
                    if (nRet == -2)
                        return -2;

                    return 0;
                }

                int nSendCount = 0;
                long nCount = resultset.Count;
                List<FingerprintItem> items = new List<FingerprintItem>();
                for (long i = 0; i < nCount; i++)
                {
                    DpRecord record = resultset[i];

                    string strTimestamp = "";
                    string strBarcode = "";
                    string strFingerprint = "";
                    ParseResultItemString(record.BrowseText,
out strTimestamp,
out strBarcode,
out strFingerprint);
                    // TODO: 注意读者证条码号为空的,不要发送出去


                    FingerprintItem item = new FingerprintItem();
                    item.ReaderBarcode = strBarcode;
                    item.FingerprintString = strFingerprint;

                    items.Add(item);
                    if (items.Count >= 100)
                    {
                        // return:
                        //      -2  remoting服务器连接失败。驱动程序尚未启动
                        //      -1  出错
                        //      0   成功
                        nRet = AddItems(items,
            out strError);
                        if (nRet == -1)
                            return -1;
                        if (nRet == -2)
                            return -2;
                        nSendCount += items.Count;
                        items.Clear();
                    }
                }

                if (items.Count > 0)
                {
                    // return:
                    //      -2  remoting服务器连接失败。驱动程序尚未启动
                    //      -1  出错
                    //      0   成功
                    nRet = AddItems(items,
                        out strError);
                    if (nRet == -1)
                        return -1;
                    if (nRet == -2)
                        return -2;
                    nSendCount += items.Count;
                }

                // Console.Beep(); // 表示读取成功
                return nSendCount;
            }
            finally
            {
                EndFingerprintChannel();
            }
        }