Exemple #1
0
        public Boolean LoadFromVPPFile(string FileName, CogRecordDisplay mCogRecordDisplay)//檔案參數載入
        {
            string ProcID       = System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString();
            string TempFileName = (string)FileName;

            try
            {
                //從CogTool裡面讀出來
                string       strFolderPath = @"D:\VPS_File\Product\IDTool\" + @FileName + @"\";
                CogToolBlock ToolBlock1    = new CogToolBlock();

                FileName = strFolderPath + FileName + "_IDT.vpp";

                ToolBlock1 = (CogToolBlock)CogSerializer.LoadObjectFromFile(FileName);//開啟ToolBlock vpp檔案

                //依序載入
                mIDTool = (CogIDTool)ToolBlock1.Tools[TempFileName + "_IDTool_"];
                this.ROI_Create(mCogRecordDisplay);

                SaveLog.Msg_("Data of IDTool Loaded : " + @FileName);
                ToolBlock1 = null;

                mIDTool_Status = true;
                return(true);
            }
            catch (Exception ex)
            {
                SaveLog.Msg_("Load IDTool Data Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString());
                mIDTool_Status = false;
                return(false);
            }
        }
Exemple #2
0
        public bool unLoad()
        {
            string ProcID = System.Reflection.MethodInfo.GetCurrentMethod().Name.ToString();

            try
            {
                mIDTool = null;
                mID_ROI = null;

                return(true);
            }
            catch (Exception ex)
            {
                SaveLog.Msg_("IDTool Load Failed : " + ModularID + ":\r\n" + ProcID + ":\r\n" + ex.ToString());
                return(false);
            }
        }
Exemple #3
0
        public string ReadBarcode(int nMode)
        {
            ICogImage           cogOutputImage;
            CogImageConvertTool ConvertTool = new CogImageConvertTool();
//            Cog2DSymbolTool cog2DSymbol = new Cog2DSymbolTool();
//          CogBarcodeTool cog1dSymbol = new CogBarcodeTool();
            CogIDTool         cogIDTool = new CogIDTool();
            CogImageFileTool  SaveImage = new CogImageFileTool();
            CogIPOneImageTool oneTool   = new CogIPOneImageTool();

            CogRectangle cogRect = new CogRectangle();


            CogIPOneImageEqualize         EqulParam        = new CogIPOneImageEqualize();
            CogIPOneImageMultiplyConstant MultiplyConstant = new CogIPOneImageMultiplyConstant();

            MultiplyConstant.ConstantValue = 2;

            string strReadBarcode = "";

            if (BarcodeRect.Width <= 0)
            {
                return(strReadBarcode);
            }
            if (m_imgScreenShot == null)
            {
                return("");
            }
            ConvertTool.InputImage = m_imgScreenShot;
            ConvertTool.Run();

            if (nMode == 1)
            {
                oneTool.InputImage = ConvertTool.OutputImage;
                //oneTool.Operators.Add(EqulParam);
                oneTool.Operators.Add(MultiplyConstant);
                oneTool.Run();
                cogOutputImage = oneTool.OutputImage;// ConvertTool.OutputImage;
            }
            else if (nMode == 2)
            {
                oneTool.InputImage = ConvertTool.OutputImage;
                oneTool.Operators.Add(EqulParam);
                //oneTool.Operators.Add(MultiplyConstant);
                oneTool.Run();
                cogOutputImage = oneTool.OutputImage;// ConvertTool.OutputImage;
            }
            else
            {
                cogOutputImage = ConvertTool.OutputImage;
            }
            if (BarcodeRect.Width > 0 && BarcodeRect.Height > 0)
            {
                cogRect.SetXYWidthHeight(BarcodeRect.X, BarcodeRect.Y, BarcodeRect.Width, BarcodeRect.Height);
                try
                {
                    ICogRegion cogRegion;
                    cogRegion = new CogRectangle();
                    cogRegion.FitToBoundingBox(cogRect);

                    cogIDTool.InputImage = (CogImage8Grey)cogOutputImage;
                    cogIDTool.RunParams.DisableAllCodes();
                    cogIDTool.RunParams.DataMatrix.Enabled = true;

                    cogIDTool.RunParams.DataMatrix.ProcessControlMetrics = CogIDDataMatrixProcessControlMetricsConstants.None;
                    cogIDTool.Region = cogRegion;

                    cogIDTool.Run();

                    if (cogIDTool.Results != null && cogIDTool.Results.Count == 1)
                    {
                        strReadBarcode = cogIDTool.Results[0].DecodedData.DecodedString;
                    }

                    /*
                     * if (cog2DSymbol.Pattern.Trained)
                     *  cog2DSymbol.Pattern.Untrain();
                     * cog2DSymbol.InputImage = (CogImage8Grey)cogOutputImage;
                     * cog2DSymbol.Pattern.TrainImage = (CogImage8Grey)cogOutputImage;
                     * cog2DSymbol.SearchRegion = cogRegion;// barcodeRegion;
                     * cog2DSymbol.Pattern.Train();
                     * if (cog2DSymbol.Pattern.Trained)
                     * {
                     *  try
                     *  {
                     *      cog2DSymbol.SearchRegion = cogRegion;// barcodeRegion;
                     *      cog2DSymbol.Run();
                     *      if (cog2DSymbol.Result != null)
                     *          strReadBarcode = cog2DSymbol.Result.DecodedString;
                     *
                     *  }
                     *  catch (Cognex.VisionPro.Exceptions.CogException)
                     *  {
                     *
                     *  }
                     * }
                     * if (strReadBarcode == "")
                     * {
                     *  cog1dSymbol.InputImage = (CogImage8Grey)cogOutputImage;
                     *  cog1dSymbol.Region = cogRegion;
                     *  cog1dSymbol.Run();
                     *  strReadBarcode = cog1dSymbol.Results.ToString();
                     * }*/
                }
                catch (Cognex.VisionPro.Exceptions.CogException)
                {
                }
            }
            return(strReadBarcode);
        }
Exemple #4
0
        private bool VpDecode(Bitmap img, out List <string> codeList)
        {
            bool          status         = false;
            List <string> _codeList      = new List <string>();
            DateTime      startTime      = DateTime.Now;
            bool          deCodeStatus1d = false;
            bool          deCodeStatusDM = false;
            bool          deCodeStatusQR = false;

            //一维码工具
            if (_deCode1d)
            {
                CogImage8Grey cogImg1 = new CogImage8Grey(img);
                Task          task1d  = new Task(() =>
                {
                    CogIDTool cogIDTool1d                = new CogIDTool();
                    cogIDTool1d.RunParams.Timeout        = _timeOut1d;
                    cogIDTool1d.RunParams.TimeoutEnabled = true;
                    cogIDTool1d.RunParams.DisableAllCodes();
                    cogIDTool1d.RunParams.Code128.Enabled = true;
                    cogIDTool1d.RunParams.Code39.Enabled  = true;
                    cogIDTool1d.RunParams.Code93.Enabled  = true;
                    cogIDTool1d.RunParams.UpcEan.Enabled  = true;
                    cogIDTool1d.RunParams.ProcessingMode  = CogIDProcessingModeConstants.IDMax;
                    cogIDTool1d.RunParams.NumToFind       = 15;
                    cogIDTool1d.InputImage = cogImg1;
                    cogIDTool1d.Run();
                    if (cogIDTool1d.Results != null)
                    {
                        foreach (var result in cogIDTool1d.Results)
                        {
                            lock (_codeList)
                            {
                                _codeList.Add(result.DecodedData.DecodedString);
                            }
                        }
                    }
                    deCodeStatus1d = true;
                });
                task1d.Start();
            }
            else
            {
                deCodeStatus1d = true;
            }
            //DM码工具
            if (_deCodeDM)
            {
                CogImage8Grey cogImgDm = new CogImage8Grey(img);
                Task          taskDM   = new Task(() =>
                {
                    CogIDTool cogIDToolDM                = new CogIDTool();
                    cogIDToolDM.RunParams.Timeout        = _timeOutDM;
                    cogIDToolDM.RunParams.TimeoutEnabled = true;
                    cogIDToolDM.RunParams.DisableAllCodes();
                    cogIDToolDM.RunParams.DataMatrix.Enabled = true;
                    cogIDToolDM.RunParams.ProcessingMode     = CogIDProcessingModeConstants.IDMax;
                    cogIDToolDM.RunParams.NumToFind          = 3;
                    cogIDToolDM.InputImage = cogImgDm;
                    cogIDToolDM.Run();
                    if (cogIDToolDM.Results != null)
                    {
                        foreach (var result in cogIDToolDM.Results)
                        {
                            lock (_codeList)
                            {
                                _codeList.Add(result.DecodedData.DecodedString);
                            }
                        }
                    }
                    deCodeStatusDM = true;
                });
                taskDM.Start();
            }
            else
            {
                deCodeStatusDM = true;
            }
            //QR码工具
            if (_deCodeQR)
            {
                CogImage8Grey cogImgQr = new CogImage8Grey(img);
                Task          taskQR   = new Task(() =>
                {
                    CogIDTool cogIDToolQR                = new CogIDTool();
                    cogIDToolQR.RunParams.Timeout        = _timeOutQR;
                    cogIDToolQR.RunParams.TimeoutEnabled = true;
                    cogIDToolQR.RunParams.DisableAllCodes();
                    cogIDToolQR.RunParams.QRCode.Enabled = true;
                    cogIDToolQR.RunParams.ProcessingMode = CogIDProcessingModeConstants.IDMax;
                    cogIDToolQR.RunParams.NumToFind      = 3;
                    cogIDToolQR.InputImage = cogImgQr;
                    cogIDToolQR.Run();
                    if (cogIDToolQR.Results != null)
                    {
                        foreach (var result in cogIDToolQR.Results)
                        {
                            lock (_codeList)
                            {
                                _codeList.Add(result.DecodedData.DecodedString);
                            }
                        }
                    }
                    deCodeStatusQR = true;
                });
                taskQR.Start();
            }
            else
            {
                deCodeStatusQR = true;
            }
            while (true)
            {
                if (deCodeStatus1d && deCodeStatusDM && deCodeStatusQR)
                {
                    status = true;
                    break;
                }
                if ((DateTime.Now - startTime).TotalMilliseconds > _pageDecodeTimeOut)
                {
                    status = false;
                    break;
                }
                Thread.Sleep(10);
            }
            codeList = _codeList;

            return(status);
        }