private string GetCameraPort(CogAcqFifoTool acqFifo)
        {
            string strSN = "";

            if (acqFifo != null &&
                acqFifo.Operator != null &&
                acqFifo.Operator.FrameGrabber != null)
            {
                //*
                // Digital Camera
                if (acqFifo.Operator.FrameGrabber.OwnedGigEAccess != null)
                {
                    strSN = "";
                }
                // Analog Camera
                else
                {
                    strSN = "_#" + acqFifo.Operator.CameraPort.ToString();
                }
                //*/

                //strSN = "";
            }
            else
            {
                strSN = "";
            }

            return(strSN);
        }
        private string GetCameraIPAddress(CogAcqFifoTool acqFifo)
        {
            string strIP = "";

            if (acqFifo != null &&
                acqFifo.Operator != null &&
                acqFifo.Operator.FrameGrabber != null)
            {
                // Digital Camera
                if (acqFifo.Operator.FrameGrabber.OwnedGigEAccess != null)
                {
                    strIP = acqFifo.Operator.FrameGrabber.OwnedGigEAccess.CurrentIPAddress;
                }
                // Analog Camera
                else
                {
                    strIP = "";
                }
            }
            else
            {
                strIP = "";
            }

            return(strIP);
        }
Пример #3
0
        //*/

        public AAcqFifo()
        {
            m_cogAcqFifoTool      = new CogAcqFifoTool();
            m_cogAcqFifoTool.Name = "AcquireFifo";
            // 2015.04.08
            Init();
        }
Пример #4
0
 private void button2_Click(object sender, EventArgs e)
 {
     // CogSerializer.SaveObjectToFile(toolBlock,@"C:\PROJECTS\Stahli.Net\Bin\Debug\CognexStahli\Camera1.vpp");
     CogSerializer.SaveObjectToFile(toolBlock, System.IO.Directory.GetCurrentDirectory() + "\\CognexStahli\\Camera1.vpp");
     cogAcqTool                = cogToolBlockEditV21.Subject.Tools["CogAcqFifoTool1"] as CogAcqFifoTool;
     calbCheckerBoard          = cogToolBlockEditV21.Subject.Tools["CogCalibCheckerboardTool1"] as CogCalibCheckerboardTool;
     CalibNPointTool           = cogToolBlockEditV21.Subject.Tools["CogCalibNPointToNPointTool1"] as CogCalibNPointToNPointTool;
     cogPMAlignTool            = cogToolBlockEditV21.Subject.Tools["CogPMAlignTool1"] as CogPMAlignTool;
     cogPMAlignTool.InputImage = CalibNPointTool.OutputImage as CogImage8Grey;
 }
Пример #5
0
        public FrmLoadTray()
        {
            visionActionDelegate = new VisionActionDelegate(VisionActionDelegateFunc);
            InitializeComponent();

            //Add any initialization after the InitializeComponent() call
            cogToolBlockEditV21.LocalDisplayVisible = false;
            mIFTool = new CogImageFileTool();
            //mIFTool.Operator.Open(Environment.GetEnvironmentVariable("VPRO_ROOT") + @"\images\coins.idb", CogImageFileModeConstants.Read);
            mAcqTool = new CogAcqFifoTool();

            toolBlock = cogToolBlockEditV21.Subject;
            try
            {
                // toolBlock = CogSerializer.LoadObjectFromFile(@"C:\PROJECTS\Stahli.Net\Bin\Debug\CognexStahli\Camera1.vpp") as CogToolBlock;  //Need to upload insernt name as given by asaf
                toolBlock = CogSerializer.LoadObjectFromFile(System.IO.Directory.GetCurrentDirectory() + "\\CognexStahli\\Camera1.vpp") as CogToolBlock; //Need to upload insernt name as given by asaf
                //if it is new insert, upload a defult
            }
            catch (Exception ex)
            {
                MessageBox.Show("Tool block is error");
            }
            cogToolBlockEditV21.Subject         = toolBlock;
            cogToolBlockEditV21.Subject.Ran    += new EventHandler(Subject_Ran);
            cogToolBlockEditV21.SubjectChanged += new EventHandler(cogToolBlockEditV21_SubjectChanged);
            foreach (ICogTool tool in toolBlock.Tools)
            {
                calbCheckerBoard = tool as CogCalibCheckerboardTool;
                if (calbCheckerBoard != null)
                {
                    break;
                }
            }

            foreach (ICogTool tool in toolBlock.Tools)
            {
                CalibNPointTool = tool as CogCalibNPointToNPointTool;
                if (CalibNPointTool != null)
                {
                    break;
                }
            }

            foreach (ICogTool tool in toolBlock.Tools)
            {
                cogPMAlignTool = tool as CogPMAlignTool;
                if (cogPMAlignTool != null)
                {
                    break;
                }
            }

            loadOrderDataDelegate = new LoadOrderDataDelegate(LoadOrderDataDelegateFunc);
            // LoadPatternFromFile();   //13.07.15 (Ziv)
        }
Пример #6
0
        public MainWindow()
        {
            InitializeComponent();

            fifo         = CogSerializer.LoadObjectFromFile(@"C:\Users\jkhong\Desktop\fifo.vpp") as CogAcqFifoTool;
            IsFreeRun    = true;
            textBox.Text = "FreeRun";

            display   = new CogDisplay();
            WFH.Child = display;
        }
Пример #7
0
 public static bool SaveVppAcq(CogAcqFifoTool acqTool, string path)
 {
     try
     {
         CogSerializer.SaveObjectToFile(acqTool, path, typeof(BinaryFormatter), CogSerializationOptionsConstants.Minimum);
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
Пример #8
0
        private void tsbEditCamera_Click(object sender, EventArgs e)
        {
            Vision.FrmCameraEdit frmCameraEdit = new Vision.FrmCameraEdit();
            bool           save;
            CogAcqFifoTool backTool = (CogAcqFifoTool)VisionProTool.CopyTool(acqFifoTool);
            CogAcqFifoTool tool     = frmCameraEdit.ShowEdit(backTool, "相机编辑", out save);

            if (save)
            {
                acqFifoTool = tool;
            }
            CogSerializer.SaveObjectToFile(acqFifoTool, GetValue("CameraVppPath"));
        }
        public void Subject_Ran(object sender, EventArgs e)     //Run tool
        {
            cogAcqTool = cogToolBlockEditV21.Subject.Tools["CogAcqFifoTool1"] as CogAcqFifoTool;
            calbCheckerBoard.InputImage = cogToolBlockEditV21.Subject.Inputs["Image"].Value as CogImage8Grey;
            calbCheckerBoard            = cogToolBlockEditV21.Subject.Tools["CogCalibCheckerboardTool1"] as CogCalibCheckerboardTool;
            calbCheckerBoard.Run();
            CalibNPointTool            = cogToolBlockEditV21.Subject.Tools["CogCalibNPointToNPointTool1"] as CogCalibNPointToNPointTool;
            CalibNPointTool.InputImage = calbCheckerBoard.OutputImage;
            cogPMAlignTool             = cogToolBlockEditV21.Subject.Tools["CogPMAlignTool1"] as CogPMAlignTool;
            cogPMAlignTool.InputImage  = CalibNPointTool.OutputImage as CogImage8Grey;
            cogRecordDisplay1.Image    = cogPMAlignTool.InputImage;
            cogPMAlignTool.Run();
            cogRecordDisplay1.Record = cogPMAlignTool.CreateLastRunRecord();
            cogRecordDisplay1.Fit(true);
            if (dataGridView1.Visible == false)
            {
                dataGridView1.Visible = true;
            }
            dataGridView1.Rows.Clear();


            TrayIndexData TIS;

            AppGen.Inst.UnLoadCarrier.CurrIndex = 0;
            AppGen.Inst.UnLoadCarrier.IndexList.Clear();

            try
            {
                for (int i = 0; i < cogPMAlignTool.Results.Count; i++)
                {
                    TIS = new TrayIndexData();
                    dataGridView1.Rows.Add();
                    dataGridView1[0, i].Value = cogPMAlignTool.Results[i].ID.ToString();
                    dataGridView1[1, i].Value = cogPMAlignTool.Results[i].Score.ToString();
                    dataGridView1[2, i].Value = cogPMAlignTool.Results[i].GetPose().Rotation *(180 / Math.PI);
                    dataGridView1[3, i].Value = cogPMAlignTool.Results[i].GetPose().TranslationX;
                    dataGridView1[4, i].Value = cogPMAlignTool.Results[i].GetPose().TranslationY;

                    TIS.X_VisRes     = cogPMAlignTool.Results[i].GetPose().TranslationX;
                    TIS.Y_VisRes     = cogPMAlignTool.Results[i].GetPose().TranslationY;
                    TIS.Angle_VisRes = cogPMAlignTool.Results[i].GetPose().Rotation *(180 / Math.PI);

                    AppGen.Inst.UnLoadCarrier.IndexList.Add(TIS);
                }
                txtPatMaxScoreValue.Text = cogPMAlignTool.Results.Count.ToString();
            }
            catch (Exception)
            {
                MessageBox.Show("No Input Image available for setup.", "PatMax Setup Error");
            }
        }
Пример #10
0
 public CogAcqFifoTool ShowEdit(CogAcqFifoTool cogAcq, string titleText, out bool save)
 {
     _save = false;
     if (cogAcq == null)
     {
         cogAcq = new CogAcqFifoTool();
     }
     Text    = titleText;
     _cogAcq = cogAcq;
     cogAcqFifoEditV21.Subject = _cogAcq;
     ShowDialog();
     save = _save;
     return(_cogAcq);
 }
Пример #11
0
        // private string vpp_path = @"D:\项目资料\GDL\Height\Height\Debug\SetVpp\ImageProcess\GD1.vpp";
        public MainForm()
        {
            InitializeComponent();
            cogToolBlockEditV21.LocalDisplayVisible = false;
            mIFTool = new CogImageFileTool();
            string pathalpha = Environment.GetEnvironmentVariable("VPRO_ROOT");

            mIFTool.Operator.Open(Environment.GetEnvironmentVariable("VPRO_ROOT") + @"\images\coins.idb", CogImageFileModeConstants.Read);
            mAcqTool = new CogAcqFifoTool();
            //CogToolBlockEditV21
            Init_Vpp();
            cogToolBlockEditV21.Subject      = CogSerializer.LoadObjectFromFile(Environment.GetEnvironmentVariable("VPRO_ROOT") + @"\samples\programming\toolblock\toolblockload\tb.vpp") as CogToolBlock;
            cogToolBlockEditV21.Subject.Ran += new EventHandler(Subject_Ran);
        }
Пример #12
0
 /// <summary>
 /// 从相机中获取图像
 /// </summary>
 /// <param name="camera"></param>
 /// <param name="errMsg"></param>
 /// <returns></returns>
 public static CogImage8Grey GetImage(CogAcqFifoTool camera, ref string errMsg)
 {
     if (camera != null)
     {
         CogImage8Grey image = null;
         try
         {
             camera.Run();
             if (camera.RunStatus.Result == CogToolResultConstants.Accept)
             {
                 image = (CogImage8Grey)camera.OutputImage;
             }
             else
             {
                 image = null;
             }
             //偶尔会有取像异常,需要二次取像
             if (image == null)
             {
                 camera.Run();
                 if (camera.RunStatus.Result == CogToolResultConstants.Accept)
                 {
                     image = (CogImage8Grey)camera.OutputImage;
                 }
                 else
                 {
                     errMsg = "相机二次取像都失败,无法获取图片";
                 }
             }
         }
         catch (Exception ex)
         {
             image  = null;
             errMsg = "相机取像出现异常,异常信息:" + ex.Message;
         }
         return(image);
     }
     else
     {
         errMsg = "相机尚未初始化";
     }
     return(null);
 }
Пример #13
0
        /// <summary>
        /// 初始化相机,需要处理异常
        /// </summary>
        public static string Init()
        {
            string rs = "";

            try
            {
                CogToolBlock ctb = CogSerializer.LoadObjectFromFile(AcqFile) as CogToolBlock;
                Acq1   = ctb.Tools[0] as CogAcqFifoTool;
                Acq2   = ctb.Tools[1] as CogAcqFifoTool;
                Acq3   = ctb.Tools[2] as CogAcqFifoTool;
                IFTool = new CogImageFileTool();
            }
            catch (Exception ex)
            {
                rs += ex.Message + ",";
            }

            if (Acq1.Operator == null)
            {
                rs += "cam1 未连接,";
            }
            if (Acq2.Operator == null)
            {
                rs += "cam2 未连接,";
            }
            if (Acq3.Operator == null)
            {
                rs += "cam3 未连接";
            }
            if (rs == "")
            {
                return("OK");
            }
            else
            {
                return(rs);
            }
        }
Пример #14
0
        public PhotoModeUI(CogAcqFifoTool acqFifoTool1, MyDisPlayUI myDisPlayUI1, CogAcqFifoTool acqFifoTool2, MyDisPlayUI myDisPlayUI2, string name1, string name2)
        {
            InitializeComponent();

            rdoAutoRun1.Checked = true;
            rdoAutoRun2.Checked = true;

            Camera1ImageQueue = new Queue <CogImage8Grey>();
            Camera2ImageQueue = new Queue <CogImage8Grey>();
            AcqFifoTool1      = acqFifoTool1;
            AcqFifoTool2      = acqFifoTool2;
            if (acqFifoTool1.Operator != null)
            {
                AcqTriggerMode1 = acqFifoTool1.Operator.OwnedTriggerParams;
            }
            if (acqFifoTool2.Operator != null)
            {
                AcqTriggerMode2 = acqFifoTool2.Operator.OwnedTriggerParams;
            }
            MyDisPlayUI1 = myDisPlayUI1;
            MyDisPlayUI2 = myDisPlayUI2;
            ReLoadLanguage(name1, name2);
        }
Пример #15
0
        public static void CloseCognexCamera(CogToolBlock toolblock)
        {
            if (toolblock == null) return;

            int n = toolblock.Tools.Count;
            for (int i = 0; i < n; i++)
            {
                if (toolblock.Tools[i] is CogAcqFifoTool)
                {
                    CogAcqFifoTool fifo = (CogAcqFifoTool)toolblock.Tools[i];
                    if (fifo.Operator != null && fifo.Operator.FrameGrabber != null)
                    {
                        fifo.Operator.FrameGrabber.Disconnect(false);
                    }
                }
                else if (toolblock.Tools[i] is CogToolBlock)
                {
                    CogToolBlock tb = (CogToolBlock)toolblock.Tools[i];
                    CloseCognexCamera(tb);
                }
            }

        }
Пример #16
0
        public AcqFifoToolLoader(int ccd)
        {
            MyCogAcqFifoTool = new CogAcqFifoTool();
            MyImage          = null;

            TrigNum     = 0;
            CcdId       = ccd;
            CameraIndex = CameraIndexes[CcdId];

            int    cameraCount = MyCameras.Count;
            string videoFormat = VIDEO_FORMAT;
            CogAcqFifoPixelFormatConstants fifoType = CogAcqFifoPixelFormatConstants.Format8Grey;

            MyCogAcqFifos  = new List <ICogAcqFifo>();
            MyVideoFormats = new List <List <string> >();
            ICogFrameGrabber camera;
            ICogAcqFifo      acqFifo;

            for (int i = 0; i < cameraCount; i++)
            {
                camera = MyCameras[i];
                MyVideoFormats.Add(new List <string>());
                for (int j = 0; j < camera.AvailableVideoFormats.Count; j++)
                {
                    MyVideoFormats[i].Add(camera.AvailableVideoFormats[j]);
                }
                videoFormat = MyVideoFormats[i][0];

                if (!videoFormat.Contains("Mono"))
                {
                    fifoType = CogAcqFifoPixelFormatConstants.Format3Plane;
                }

                MyCogAcqFifos.Add(camera.CreateAcqFifo(videoFormat, fifoType, 0, false));
                acqFifo = MyCogAcqFifos[i];
            }
        }
Пример #17
0
        ///// <summary>
        ///// 加载棋盘格标定工具
        ///// </summary>
        ///// <param name="path">路径</param>
        ///// <param name="errMsg">错误信息</param>
        ///// <returns></returns>
        //public static CogCalibCheckerboardTool LoadCogCalibCheckerboardTool(string path, ref string errMsg)
        //{
        //    if (File.Exists(path))
        //    {
        //        try
        //        {
        //            return (CogCalibCheckerboardTool)CogSerializer.LoadObjectFromFile(path,
        //                new BinaryFormatter().GetType(), CogSerializationOptionsConstants.Minimum);
        //        }
        //        catch (Exception ex)
        //        {
        //            errMsg = "加载VPP异常,异常信息:" + ex.Message;
        //            return null;
        //        }
        //    }
        //    else
        //    {
        //        errMsg = "找不到VPP文件:" + path;
        //    }
        //    return null;
        //}
        ///// <summary>
        ///// 加载坐标系标定工具
        ///// </summary>
        ///// <param name="path">路径</param>
        ///// <param name="errMsg">错误信息</param>
        ///// <returns></returns>
        //public static CogCalibNPointToNPointTool LoadCogCalibNPointToNPointTool(string path, ref string errMsg)
        //{
        //    if (File.Exists(path))
        //    {
        //        try
        //        {
        //            return (CogCalibNPointToNPointTool)CogSerializer.LoadObjectFromFile(path,
        //                new BinaryFormatter().GetType(), CogSerializationOptionsConstants.Minimum);
        //        }
        //        catch (Exception ex)
        //        {
        //            errMsg = "加载VPP异常,异常信息:" + ex.Message;
        //            return null;
        //        }
        //    }
        //    else
        //    {
        //        errMsg = "找不到VPP文件:" + path;
        //    }
        //    return null;
        //}

        /// <summary>
        /// 加载相机Vpp
        /// </summary>
        /// <param name="path"></param>
        /// <param name="ErrMsg"></param>
        public static CogAcqFifoTool LoadVppAcq(string path, ref string ErrMsg)
        {
            if (File.Exists(path))
            {
                try
                {
                    CogAcqFifoTool camera = (CogAcqFifoTool)CogSerializer.LoadObjectFromFile(path);
                    camera.Operator.TimeoutEnabled = false;
                    camera.Operator.OwnedTriggerParams.TriggerEnabled = true;
                    camera.Operator.OwnedTriggerParams.TriggerModel   = CogAcqTriggerModelConstants.Manual;
                    return(camera);
                }
                catch (Exception ex)
                {
                    ErrMsg = "加载VPP异常,异常信息:" + ex.Message;
                    return(null);
                }
            }
            else
            {
                ErrMsg = "找不到VPP文件:" + path;
            }
            return(null);
        }
Пример #18
0
 public void SetupAcqToolEditSubject(CogAcqFifoTool tool, int index)
 {
     acqFifoEditV2[index].Subject = tool;
 }
Пример #19
0
 private void btnLiveVideo2_Click(object sender, EventArgs e)
 {
     if (rdoManualRun2.Checked == true)
     {
         if (!this.IsReal_timeDisplay2)
         {
             try
             {
                 this.AcqTriggerMode2.TriggerEnabled = false;
                 this.rdoAutoRun2.Checked            = false;
                 this.AcqFifoTool2.Operator.Flush();
                 this.AcqTriggerMode2.TriggerModel   = CogAcqTriggerModelConstants.Manual;
                 this.AcqTriggerMode2.TriggerEnabled = true;
                 Thread.Sleep(20);
                 MyDisPlayUI    mydisplaypenal  = this.MyDisPlayUI2;
                 CogAcqFifoTool cogAcqFifoTool  = this.AcqFifoTool2;
                 CogAcqFifoTool cogAcqFifoTool2 = cogAcqFifoTool;
                 object         @operator       = cogAcqFifoTool.Operator;
                 mydisplaypenal.StartLiveDisplay(ref @operator, false);
                 cogAcqFifoTool2.Operator = (ICogAcqFifo)@operator;
                 Application.DoEvents();
                 this.rdoAutoRun2.Enabled   = false;
                 this.rdoManualRun2.Enabled = false;
                 this.lblMsg2.Text          = LanguageHelper.GetString("pm_Msg1");
                 this.btnLiveVideo2.Text    = LanguageHelper.GetString("pm_SR");
                 this.IsReal_timeDisplay2   = true;
             }
             catch (CogException cogException)
             {
                 ProjectData.SetProjectError(cogException);
                 CogException cogex = cogException;
                 MessageBox.Show(cogException.Message, LanguageHelper.GetString("common_Info"), MessageBoxButtons.OK, MessageBoxIcon.Error);
                 ProjectData.ClearProjectError();
             }
         }
         else if (this.IsReal_timeDisplay2)
         {
             try
             {
                 this.rdoAutoRun2.Enabled            = true;
                 this.rdoManualRun2.Enabled          = true;
                 this.AcqTriggerMode2.TriggerEnabled = false;
                 //DateTime now = DateTime.Now;
                 //this.Str = string.Concat(now.ToString("HH:mm:ss.fff"), "1  ");
                 this.AcqFifoTool2.Operator.Flush();
                 this.AcqTriggerMode2.TriggerEnabled = true;
                 Thread.Sleep(20);
                 this.MyDisPlayUI2.StopLiveDisplay();
                 //now = DateTime.Now;
                 //this.str1 = string.Concat(now.ToString("HH:mm:ss.fff"), "2  ");
                 Thread.Sleep(20);
                 Application.DoEvents();
                 this.lblMsg2.Text        = "";
                 this.btnLiveVideo2.Text  = LanguageHelper.GetString("pm_RTD");
                 this.IsReal_timeDisplay2 = false;
             }
             catch (CogException cogException2)
             {
                 ProjectData.SetProjectError(cogException2);
                 CogException cogex = cogException2;
                 this.lblMsg2.Text       = "";
                 this.btnLiveVideo2.Text = LanguageHelper.GetString("pm_RTD");
                 MessageBox.Show(cogException2.Message, LanguageHelper.GetString("common_Info"), MessageBoxButtons.OK, MessageBoxIcon.Error);
                 ProjectData.ClearProjectError();
             }
         }
     }
 }
Пример #20
0
 public AAcqFifo(Object oTool)
 {
     m_cogAcqFifoTool = oTool as CogAcqFifoTool;
     // 2015.04.08
     Init();
 }
Пример #21
0
 // 2014.10.30
 public void SetTool(CogAcqFifoTool acqFifoTool)
 {
     m_cogAcqFifoTool = acqFifoTool;
 }
Пример #22
0
        public void Subject_Ran(object sender, EventArgs e)
        {
            if (RunAgainFlag)
            {
                PatMaxTool.RunParams.AcceptThreshold     = Convert.ToDouble(numericUpDown1.Value * Convert.ToDecimal(0.9));
                cogPMAlignTool.RunParams.AcceptThreshold = Convert.ToDouble(numericUpDown1.Value * Convert.ToDecimal(0.9));
            }
            cogAcqTool = cogToolBlockEditV21.Subject.Tools["CogAcqFifoTool1"] as CogAcqFifoTool;
            calbCheckerBoard.InputImage = cogToolBlockEditV21.Subject.Inputs["Image"].Value as CogImage8Grey;
            calbCheckerBoard            = cogToolBlockEditV21.Subject.Tools["CogCalibCheckerboardTool1"] as CogCalibCheckerboardTool;
            calbCheckerBoard.Run();
            CalibNPointTool            = cogToolBlockEditV21.Subject.Tools["CogCalibNPointToNPointTool1"] as CogCalibNPointToNPointTool;
            CalibNPointTool.InputImage = calbCheckerBoard.OutputImage;
            cogPMAlignTool             = cogToolBlockEditV21.Subject.Tools["CogPMAlignTool1"] as CogPMAlignTool;
            cogPMAlignTool.InputImage  = CalibNPointTool.OutputImage as CogImage8Grey;
            //cogRecordDisplay1.Image = cogPMAlignTool.InputImage;
            cogPMAlignTool.Run();
            if (flagDisplayResult)  //add on 25/11/14
            {
                cogRecordDisplay1.Image  = cogPMAlignTool.InputImage;
                cogRecordDisplay1.Record = cogPMAlignTool.CreateLastRunRecord();
                cogRecordDisplay1.Fit(true);
            }
            dataGridView1.Rows.Clear();

            try
            {
                if ((cogPMAlignTool.Results.Count == 0) && (!AppGen.Inst.MDImain.frmVisionMain.FrmLoadtray.flagFullTray))   //no insert founded
                {
                    AppGen.Inst.LoadTray.IndexList[AppGen.Inst.LoadTray.CurrIndex].IsFound = false;
                    UnfoundInsertList.Add(AppGen.Inst.LoadTray.IndexList[AppGen.Inst.LoadTray.CurrIndex]); //not in use!!
                }
                else                                                                                       //insert founded
                {
                    AppGen.Inst.LoadTray.IndexList[AppGen.Inst.LoadTray.CurrIndex].X_VisRes     = cogPMAlignTool.Results[0].GetPose().TranslationX;
                    AppGen.Inst.LoadTray.IndexList[AppGen.Inst.LoadTray.CurrIndex].Y_VisRes     = cogPMAlignTool.Results[0].GetPose().TranslationY;
                    AppGen.Inst.LoadTray.IndexList[AppGen.Inst.LoadTray.CurrIndex].Angle_VisRes = cogPMAlignTool.Results[0].GetPose().Rotation *(180 / Math.PI);   //converted to degree
                }

                for (int i = 0; i < cogPMAlignTool.Results.Count; i++)
                {
                    dataGridView1.Rows.Add();
                    dataGridView1[0, i].Value = cogPMAlignTool.Results[i].ID.ToString();
                    dataGridView1[1, i].Value = cogPMAlignTool.Results[i].Score.ToString();
                    dataGridView1[2, i].Value = cogPMAlignTool.Results[i].GetPose().Rotation *(180 / Math.PI);
                    dataGridView1[3, i].Value = cogPMAlignTool.Results[i].GetPose().TranslationX;
                    dataGridView1[4, i].Value = cogPMAlignTool.Results[i].GetPose().TranslationY;
                }
                txtPatMaxScoreValue.Text = cogPMAlignTool.Results.Count.ToString();
                if ((cogPMAlignTool.SearchRegion != null))
                {
                    //cogPMAlignTool.SearchRegion.FitToImage(cogRecordDisplay1.Image, 0.990,0.999);
                    cogRecordDisplay1.StaticGraphics.Add(cogPMAlignTool.SearchRegion as ICogGraphic, "test");
                    cogToolBlockEditV21.Subject.Inputs["Image"].Value = cogRecordDisplay1.Image;
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Insert wasn't found", "Run tool Error");
            }
        }
Пример #23
0
        private void frmMain_Load(object sender, EventArgs e)
        {
            try
            {
                string loadMsg = string.Empty;


                string saveImage = GetValue("SaveImage");
                if (saveImage == "")
                {
                    saveImage = "true";
                    SetValue("SaveImage", saveImage);
                }
                isSaveImage = !bool.Parse(saveImage);
                tsbSaveImage_Click(null, null);

                imageSavePath = GetValue("SaveImagePath");
                if (imageSavePath == "")
                {
                    imageSavePath = Application.StartupPath + "\\图片";
                    SetValue("SaveImagePath", imageSavePath);
                }

                //订阅事件
                cognexAreaCamera.CameraStatusChange += CognexAreaCamera_CameraStatusChange;

                //载入相机
                string cameraPath = GetValue("CameraVppPath");
                if (cameraPath == "")
                {
                    cameraPath = Application.StartupPath + "\\Vpp\\acq.vpp";
                    SetValue("CameraVppPath", cameraPath);
                }
                //cognexAreaCamera.LoadCamera(1, cameraPath,out cameraLoadStatus,out loadMsg);
                acqFifoTool = (CogAcqFifoTool)CogSerializer.LoadObjectFromFile(cameraPath,
                                                                               new BinaryFormatter().GetType(), CogSerializationOptionsConstants.Minimum);
                if (acqFifoTool.Operator != null)
                {
                    crdLiveImage.StartLiveDisplay(acqFifoTool.Operator);
                    //runStart = true;
                    CognexAreaCamera_CameraStatusChange(1, true);
                    processEndStatus = true;
                }

                //if (cameraLoadStatus)
                //{
                //    crdLiveImage.StartLiveDisplay(cognexAreaCamera.AcqFifo);
                //    //runStart = true;
                //    processEndStatus = true;
                //}

                //载入Vpp
                string processVppPath = GetValue("ProcessVppPath");
                if (processVppPath == "")
                {
                    processVppPath = Application.StartupPath + "\\Vpp\\test.vpp";
                    SetValue("ProcessVppPath", processVppPath);
                }
                processToolBlock = (CogToolBlock)CogSerializer.LoadObjectFromFile(processVppPath,
                                                                                  new BinaryFormatter().GetType(), CogSerializationOptionsConstants.Minimum);

                if (processToolBlock != null)
                {
                    processThread              = new Thread(ThreadProcess);
                    processThread.Priority     = ThreadPriority.AboveNormal;
                    processThread.IsBackground = true;
                    processThread.Start();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("初始化软件异常:" + ex);
                Close();
            }
        }
Пример #24
0
        public void InitVision()
        {
            SettingUp          = false;
            ImageFileTool      = CogImageFileEdit1.Subject;
            ImageFileTool.Ran += ImageFileTool_Ran;
            //Set reference to CogAcqFifoTool created by Edit Control
            //The Acq Fifo Edit Control creates its subject when its AutoCreateTool property is True
            AcqFifoTool      = CogAcqFifoEdit1.Subject;
            AcqFifoTool.Ran += AcqFifoTool_Ran;

            cogAcqTool = CogAcqFifoEdit1.Subject;
            cogAcqTool = cogToolBlockEditV21.Subject.Tools["CogAcqFifoTool1"] as CogAcqFifoTool;
            cogAcqTool.Run();

            //Operator will be Nothing if no Frame Grabber is available.  Disable the Frame Grabber
            //option on the "VisionPro Demo" tab if no frame grabber available.
            if (AcqFifoTool.Operator == null)
            {
                optImageAcquisitionOptionFrameGrabber.Enabled = false;
            }

            //Initialize the Dialog box for the "Open File" button on the "VisionPro Demo" tab.
            ImageAcquisitionCommonDialog.Filter          = ImageFileTool.Operator.FilterText;
            ImageAcquisitionCommonDialog.CheckFileExists = true;
            ImageAcquisitionCommonDialog.ReadOnlyChecked = true;

            //AutoCreateTool for the PMAlign edit control is False, therefore, we must create
            //a PMAlign tool and set the subject of the control to reference the new tool.
            PatMaxTool              = new CogPMAlignTool();
            PatMaxTool.Changed     += PatMaxTool_Changed;
            CogPMAlignEdit1.Subject = PatMaxTool;

            //Change the default Train Region to center of a 640x480 image & change the DOFs
            //so that Skew is not enabled.  Note - TrainRegion is of type ICogRegion, therefore,
            //we must use a CogRectangleAffine reference in order to call CogRectangleAffine
            //properties.
            CogRectangleAffine PatMaxTrainRegion = default(CogRectangleAffine);

            PatMaxTrainRegion = PatMaxTool.Pattern.TrainRegion as CogRectangleAffine;
            //PatMaxTrainRegion = cogPMAlignTool.Pattern.TrainRegion as CogRectangleAffine;
            if ((PatMaxTrainRegion != null))
            {
                PatMaxTrainRegion.SetCenterLengthsRotationSkew(320, 240, 100, 100, 0, 0);
                PatMaxTrainRegion.GraphicDOFEnable = CogRectangleAffineDOFConstants.Position | CogRectangleAffineDOFConstants.Rotation | CogRectangleAffineDOFConstants.Size;
            }
            //PatMaxTool.SearchRegion = PatMaxSearchRegion;
            //PatMaxSearchRegion.SetCenterWidthHeight(320, 240, 640, 480);
            //PatMaxSearchRegion.GraphicDOFEnable = CogRectangleDOFConstants.Position | CogRectangleDOFConstants.Size;
            //PatMaxSearchRegion.Interactive = true;
            numericUpDown1.Value = Convert.ToDecimal(cogPMAlignTool.RunParams.AcceptThreshold);
            PatMaxTool.RunParams.AcceptThreshold = Convert.ToDouble(numericUpDown1.Value);
            numericUpDown2.Value = Convert.ToDecimal(cogPMAlignTool.RunParams.ApproximateNumberToFind);
            PatMaxTool.RunParams.ApproximateNumberToFind = Convert.ToInt32(numericUpDown2.Value);
            myAcqFifo = AcqFifoTool.Operator;
            try
            {
                myFrameGrabber       = cogAcqTool.Operator.FrameGrabber;
                myAcqFifo            = cogAcqTool.Operator;
                AcqFifoTool.Operator = myAcqFifo;

                myAcqFifo.OwnedContrastParams.Contrast     = cogAcqTool.Operator.OwnedContrastParams.Contrast;
                myAcqFifo.OwnedBrightnessParams.Brightness = cogAcqTool.Operator.OwnedBrightnessParams.Brightness;
                brightnessParams = myAcqFifo.OwnedBrightnessParams;
                contrastParams   = myAcqFifo.OwnedContrastParams;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            if (brightnessParams != null)
            {
                brightnessUpDown.Value = Convert.ToDecimal(brightnessParams.Brightness);
            }
            if (contrastParams != null)
            {
                contrastUpDown.Value = Convert.ToDecimal(contrastParams.Contrast);
            }
            try
            {
                cogToolBlockEditV21.Subject.Inputs["Image"].Value = cogRecordDisplay1.Image;
            }
            catch (Exception ex)
            {
                MessageBox.Show("Input image wasn't set");
            }
        }
Пример #25
0
        //初始化函数2
        private void initToolEdit()
        {
            //JobManagerEdit.Subject = m_JobManager;

            //一级视觉
            CogToolGroup m_ToolGroup_1 = (CogToolGroup)m_Job_1.VisionTool;

            cogToolGroupEditV21.Subject = m_ToolGroup_1;



            if (m_ToolGroup_1 == null)
            {
                MessageBox.Show("toolgroup1工具读取失败,窗口将自动关闭");
                this.Close();
                return;
            }


            blobTool_1 = (CogBlobTool)m_ToolGroup_1.Tools["CogBlobTool1"];
            if (blobTool_1 == null)
            {
                MessageBox.Show("blob1工具读取失败,请退出软件");
            }



            pmaTool_1 = (CogPMAlignTool)m_ToolGroup_1.Tools["caliPMATool"];
            if (pmaTool_1 == null)
            {
                MessageBox.Show("pma1工具读取失败,请退出软件");
            }

            calibTool_1 = (CogCalibNPointToNPointTool)m_ToolGroup_1.Tools["CogCalibNPointToNPointTool1"];
            if (calibTool_1 == null)
            {
                MessageBox.Show("calib1工具读取失败,请退出软件");
            }

            acqFifoTool_1 = (CogAcqFifoTool)m_ToolGroup_1.Tools["CogAcqFifoTool1"];
            if (acqFifoTool_1 == null)
            {
                MessageBox.Show("acqfifo1工具读取失败,窗口将自动关闭");
                this.Close();
                return;
            }

            mAcqFifo_1 = acqFifoTool_1.Operator;

            if (mAcqFifo_1 == null)
            {
                MessageBox.Show("macqfifo1为 null,窗口将自动关闭");
                this.Close();
                return;
            }


            mAcqFifo_1.Timeout = 1000;



            //二级视觉
            CogToolGroup m_ToolGroup_2 = (CogToolGroup)m_Job_2.VisionTool;

            cogToolGroupEditV22.Subject = m_ToolGroup_2;



            if (m_ToolGroup_2 == null)
            {
                MessageBox.Show("toolgroup2工具读取失败,窗口将自动关闭");
                this.Close();
                return;
            }

            blobTool_2 = (CogBlobTool)m_ToolGroup_2.Tools["CogBlobTool1"];
            if (blobTool_2 == null)
            {
                MessageBox.Show("blob2工具读取失败,请退出软件");
            }

            pmaTool_2 = (CogPMAlignTool)m_ToolGroup_2.Tools["caliPMATool"];
            if (pmaTool_2 == null)
            {
                MessageBox.Show("pma2工具读取失败,请退出软件");
            }

            calibTool_2 = (CogCalibNPointToNPointTool)m_ToolGroup_2.Tools["CogCalibNPointToNPointTool1"];
            if (calibTool_2 == null)
            {
                MessageBox.Show("calib2工具读取失败,请退出软件");
            }


            acqFifoTool_2 = (CogAcqFifoTool)m_ToolGroup_2.Tools["CogAcqFifoTool1"];
            if (acqFifoTool_2 == null)
            {
                MessageBox.Show("acqfifo2工具读取失败,窗口将自动关闭");
                this.Close();
                return;
            }

            mAcqFifo_2 = acqFifoTool_2.Operator;

            if (mAcqFifo_2 == null)
            {
                MessageBox.Show("macqfifo2为 null,窗口将自动关闭");
                this.Close();
                return;
            }



            mAcqFifo_2.Timeout = 1000;



            ////对比度Test
            //ICogAcqContrast mContrast = mAcqFifo_2.OwnedContrastParams;
            //double val = mContrast.Contrast;
            //Console.WriteLine(val);



            //三级视觉
            CogToolGroup m_ToolGroup_3 = (CogToolGroup)m_Job_3.VisionTool;

            cogToolGroupEditV23.Subject = m_ToolGroup_3;


            if (m_ToolGroup_3 == null)
            {
                MessageBox.Show("toolgroup3工具读取失败,窗口将自动关闭");
                this.Close();
                return;
            }

            blobTool_3 = (CogBlobTool)m_ToolGroup_3.Tools["CogBlobTool1"];
            if (blobTool_3 == null)
            {
                MessageBox.Show("blob3工具读取失败,请退出软件");
            }
            pmaTool_3 = (CogPMAlignTool)m_ToolGroup_3.Tools["caliPMATool"];
            if (pmaTool_3 == null)
            {
                MessageBox.Show("pma3工具读取失败,请退出软件");
            }

            calibTool_3 = (CogCalibNPointToNPointTool)m_ToolGroup_3.Tools["CogCalibNPointToNPointTool1"];
            if (calibTool_3 == null)
            {
                MessageBox.Show("calib3工具读取失败,请退出软件");
            }


            acqFifoTool_3 = (CogAcqFifoTool)m_ToolGroup_3.Tools["CogAcqFifoTool1"];
            if (acqFifoTool_3 == null)
            {
                MessageBox.Show("acqfifo3工具读取失败,窗口将自动关闭");
                this.Close();
                return;
            }

            mAcqFifo_3 = acqFifoTool_3.Operator;

            if (mAcqFifo_3 == null)
            {
                MessageBox.Show("macqfifo3为 null,窗口将自动关闭");
                this.Close();
                return;
            }



            mAcqFifo_3.Timeout = 1000;
        }