public WebSocketResult TransCmd(SuperWebSocket.WebSocketSession session, string cmd, string pars)
        {
            WebSocketResult result = new WebSocketResult();
            result.ResultCode = PsDeviceConstant.RESULT_OK;

            switch (cmd)
            {
                case PsDeviceConstant.CMD_OPEN:
                    Open(result);
                    break;
                case PsDeviceConstant.CMD_STATE:
                    result.ResultData = _scanner.ScannerCount.ToString();
                    break;
                case PsDeviceConstant.CMD_CLOSE:
                    _scanner.Close();
                    result.ResultData = _scanner.ScannerCount.ToString();
                    break;
                default:
                    result.ResultCode = PsDeviceConstant.RESULT_FAILED;
                    result.ErrorMsg = PsDeviceConstant.UNKNOWNCMD;
                    break;
            }
            result.Command = cmd;
            result.DeviceID = ID;
            return result;
        }
 /// <summary>
 /// 打开指纹仪
 /// </summary>
 /// <param name="result">返回结果</param> 
 private void Openfingerprint(WebSocketResult result)
 {
     if (zpf == null)
     {
         zpf = new ZKFPEngXClass();
         zpf.OnCapture += zpf_OnCapture;
     }
     switch (zpf.InitEngine())
     {
         case 0:
             result.ResultData = PsDeviceConstant.START_OK;
             break;
         case 1:
             result.ResultCode = PsDeviceConstant.RESULT_FAILED;
             result.ErrorMsg = PsDeviceConstant.START_FAILED;
             break;
         case 2:
             result.ResultCode = PsDeviceConstant.RESULT_FAILED;
             result.ErrorMsg = PsDeviceConstant.NOTCONNECTED;
             break;
         case 3:
             result.ResultCode = PsDeviceConstant.RESULT_FAILED;
             result.ErrorMsg = PsDeviceConstant.NOTFIND;
             break;
     }
 }
        /// <summary>
        /// 打开扫描仪
        /// </summary>
        /// <param name="result">返回结果</param> 
        private void Open(WebSocketResult result)
        {
            string rst = string.Empty;
            if (_scanner != null)
            {
                if (_scanner.ScannerCount > 0)
                {
                    result.ResultData= _scanner.ScannerCount.ToString();
                }
                else
                {
                    _scanner.Open();
                    if (_scanner.ScannerCount != 0)
                    {
                        result.ResultData = _scanner.ScannerCount.ToString();

                    }
                    else
                    {
                        result.ResultCode = PsDeviceConstant.RESULT_FAILED;
                        result.ErrorMsg = PsDeviceConstant.SCANNER_NOTCONNECTED;
                    }
                }
            }
            else
            {
                _scanner = new MotoScanner();
                _scanner.OnBarcode += _scanner_OnBarcode;
                _scanner.Open();
                if (_scanner.ScannerCount != 0)
                {
                    result.ResultData = _scanner.ScannerCount.ToString();
                }
                else
                {
                    result.ResultCode = PsDeviceConstant.RESULT_FAILED;
                    result.ErrorMsg = PsDeviceConstant.SCANNER_NOTCONNECTED;
                }
            }
        }
        /// <summary>
        /// 成功取到指纹事件
        /// </summary>
        /// <param name="ActionResult"></param>
        /// <param name="ATemplate"></param>
        void zpf_OnCapture(bool ActionResult, object ATemplate)
        {
            foreach (WebSocketSession session in webSocketServer.GetAllSessions())
            {
                WebSocketResult result = new WebSocketResult();
                result.DeviceID = ID;
                try
                {
                    if (ActionResult)
                    {
                        ZKFPEngXClass ztlp = new ZKFPEngXClass();
                        string sss = ztlp.EncodeTemplate1(ATemplate);
                        result.ResultCode = PsDeviceConstant.RESULT_OK;
                        result.ResultData = sss;
                        result.ErrorMsg = "";
                        result.Command = "";

                    }
                    else
                    {
                        result.ResultCode = PsDeviceConstant.RESULT_FAILED;
                        result.ResultData = "";
                        result.ErrorMsg = PsDeviceConstant.READFP_FAILED;
                        result.Command = "";

                    }
                }
                catch (Exception e)
                {
                    result.ResultCode = PsDeviceConstant.RESULT_FAILED;
                    result.ResultData = "";
                    result.ErrorMsg = e.Message;
                    result.Command = "";

                }
                finally
                {
                    session.Send(result.JsonText);
                }
            }
        }
Esempio n. 5
0
 /// <summary>
 /// 收到消息触发事件
 /// </summary>
 /// <param name="session"></param>
 /// <param name="value"></param>
 void m_WebSocketServer_NewMessageReceived(WebSocketSession session, string value)
 {
     try
     {
         _logger.Debug(string.Format("收到消息,消息内容={0}", value));
         string pars = value;
         string cmd = GetCommand(ref pars);
         foreach (IDeviceService item in devicelist)
         {
             if (cmd.StartsWith(item.ID + "_", StringComparison.OrdinalIgnoreCase))
             {
                 cmd = cmd.Substring(item.ID.Length + 1, cmd.Length - item.ID.Length - 1);
                 WebSocketResult result = item.TransCmd(session, cmd, pars);
                 session.Send(result.JsonText);
                 _logger.Debug(string.Format("对消息处理完成,消息内容={0}", value));
                 break;
             }
         }
     }
     catch (Exception e)
     {
         WebSocketResult result = new WebSocketResult();
         result.ResultCode = -1;
         result.DeviceID = "";
         result.ResultData = "";
         result.Command = value;
         result.ErrorMsg = e.Message;
         session.Send(result.JsonText);
         _logger.Error(string.Format("消息处理时产生异常,异常信息={0}", e.Message));
     }
 }
 /// <summary>
 /// 扫描到内容触发
 /// </summary>
 /// <param name="barcode"></param>
 void _scanner_OnBarcode(string barcode)
 {
     foreach (WebSocketSession session in webSocketServer.GetAllSessions())
     {
         WebSocketResult result = new WebSocketResult();
         result.DeviceID = ID;
         try
         {
             result.ResultCode = PsDeviceConstant.RESULT_OK;
             result.ResultData = barcode;
             result.ErrorMsg = "";
             result.Command = "";
         }
         catch (Exception e)
         {
             result.ResultCode = PsDeviceConstant.RESULT_FAILED;
             result.ResultData = "";
             result.ErrorMsg = e.Message;
             result.Command = "";
         }
         finally
         {
             session.Send(result.JsonText);
         }
     }
 }
 public WebSocketResult TransCmd(SuperWebSocket.WebSocketSession session, string cmd, string pars)
 {
     WebSocketResult result = new WebSocketResult();
     result.ResultCode = PsDeviceConstant.RESULT_OK;
     switch (cmd)
     {
         case PsDeviceConstant.CMD_OPEN:
             Openfingerprint(result);
             break;
         case PsDeviceConstant.CMD_BEGINCAPTURE:
             zpf.BeginCapture();
             result.ResultData = PsDeviceConstant.BEGINCAPTURE;
             break;
         case PsDeviceConstant.CMD_CANCLECAPTURE:
             zpf.CancelCapture();
             result.ResultData = PsDeviceConstant.CANCLECAPTURE;
             break;
         case PsDeviceConstant.CMD_CLOSE:
             zpf.EndEngine();
             result.ResultData = PsDeviceConstant.CLOSE_OK;
             break;
         default :
             result.ResultCode = PsDeviceConstant.RESULT_FAILED;
             result.ErrorMsg = PsDeviceConstant.UNKNOWNCMD;
             break;
     }
     result.Command = cmd;
     result.DeviceID = ID;
     return result;
 }