public void InitHalcon()
        {
            // Default settings used in HDevelop
            HOperatorSet.SetSystem("do_low_error", "false");
            if (this.Image == null)
            {
                MyDebug.ShowMessage("初始化失败");
                return;
            }
            HTuple width = new HTuple(), height = new HTuple();

            HOperatorSet.GetImageSize(Image, out width, out height);
            HOperatorSet.SetPart(this.LWindowHandle, 0, 0, height, width);
            HOperatorSet.DispObj(Image, this.LWindowHandle);
            HOperatorSet.SetDraw(this.LWindowHandle, "margin");
            HalconHelp.set_display_font(this.LWindowHandle, 16, "mono", "true", "false");
            HOperatorSet.SetColor(this.LWindowHandle, "green");
        }
Example #2
0
        private void OnImageProcessedEvent(CCamera instance, HObject ho_Image)
        {
            try
            {
                if (InvokeRequired)
                {
                    Invoke(new CCamera.OnImageProcessedEventHandler(OnImageProcessedEvent), new object[] { instance, ho_Image });
                    return;
                }
                kk++;
                //Console.WriteLine("kk:" +kk);
                instance.tempImage.Dispose();
                HOperatorSet.CopyImage(instance.Image, out instance.tempImage);

                HTuple cwindow = new HTuple();
                switch (instance.logicName)
                {
                case "CCD1": cwindow = hWindowControl1.HalconWindow;
                    break;

                case "CCD2": cwindow = hWindowControl2.HalconWindow;
                    break;

                case "CCD3": cwindow = hWindowControl3.HalconWindow;
                    break;

                case "CCD4": cwindow = hWindowControl4.HalconWindow;
                    break;

                case "CCD5": cwindow = hWindowControl5.HalconWindow;
                    break;
                    //case "CCD6": cwindow = hWindowControl6.HalconWindow;
                    //    break;
                }

                for (int i = 0; i < 6; i++)
                {
                    if (instance.logicName == "CCD" + i.ToString())
                    {
                        HOperatorSet.SetColor(cwindow, "green");
                        HOperatorSet.SetDraw(cwindow, "margin");
                        HTuple w, h;
                        HOperatorSet.GetImageSize(ho_Image, out w, out h);

                        HOperatorSet.SetPart(cwindow, 0, 0, h, w);

                        HOperatorSet.DispObj(ho_Image, cwindow);

                        if (instance.RegionToDisp.IsInitialized() && instance.resultHTuple.Length > 0)
                        {
                            HOperatorSet.DispObj(instance.RegionToDisp, cwindow);
                            HalconHelp.set_display_font(cwindow, 14, "courier", "false", "false");
                            HalconHelp.disp_message(cwindow, instance.resultHTuple, "window", 10, 10, "green", "false");
                        }
                    }
                }
                switch (instance.logicName)
                {
                case "CCD1": cwindow = hWindowControl6.HalconWindow;
                    break;

                case "CCD2": cwindow = hWindowControl7.HalconWindow;
                    break;

                case "CCD3": cwindow = hWindowControl8.HalconWindow;
                    break;

                case "CCD4": cwindow = hWindowControl9.HalconWindow;
                    break;

                case "CCD5": cwindow = hWindowControl10.HalconWindow;
                    break;
                }

                for (int i = 0; i < 6; i++)
                {
                    if (instance.logicName == "CCD" + i.ToString())
                    {
                        HOperatorSet.SetColor(cwindow, "green");
                        HOperatorSet.SetDraw(cwindow, "margin");
                        HTuple w, h;
                        HOperatorSet.GetImageSize(ho_Image, out w, out h);

                        HOperatorSet.SetPart(cwindow, 0, 0, h, w);

                        HOperatorSet.DispObj(ho_Image, cwindow);

                        if (instance.RegionToDisp.IsInitialized() && instance.resultHTuple.Length > 0)
                        {
                            HOperatorSet.DispObj(instance.RegionToDisp, cwindow);
                            //if (instance.logicName == "CCD1")
                            //{
                            //    HalconHelp.set_display_font(cwindow, 14, "courier", "false", "false");
                            //    HalconHelp.disp_message(cwindow, instance.resultHTuple, "window", 2, 2, "green", "false");
                            //}
                        }
                    }
                }
                DataRowCollection drc = ds.Tables["detailTable"].Rows;

                int    rs      = 0;
                string shijian = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString();
                string path    = PathHelper.currentProductPath + @"\" + shijian + ".txt";
                foreach (DataRow dr in drc)
                {
                    string s = dr[0].ToString();

                    if (dr[0].ToString() == instance.logicName)
                    {
                        if (instance.result.resultToShow.Count > rs)
                        {
                            double cl = double.Parse(instance.result.resultToShow[rs].data);
                            double xz = (double)dr[2];
                            dr[5] = Math.Round((cl + xz), 3);
                            if (double.Parse(dr[5].ToString()) <= double.Parse(dr[3].ToString()) && double.Parse(dr[5].ToString()) >= double.Parse(dr[4].ToString()))
                            {
                                dr[6] = "OK";
                            }
                            else
                            {
                                dr[6] = "NG";
                            }
                            if (instance.goodcountlist.Count() != 0)
                            {
                                dr[7] = Math.Round((double)(instance.goodcountlist[rs] / (double)Turntable.Instance.pn.totalCount * 100), 2).ToString() + "%";
                                //Console.WriteLine("" + instance.goodcountlist[rs] + "---" + (double)Turntable.Instance.pn.totalCount);
                            }
                            rs++;
                        }
                        else
                        {
                            dr[5] = 0;
                        }
                        // File.AppendAllText(path,dr[1].ToString() + "  " + dr[5].ToString(), Encoding.Default);
                    }
                }

                //File.AppendAllText(path,Environment.NewLine, Encoding.Default);
                DataHelper.CheckData(ds, instance.logicName, instance);
            }
            catch (Exception e)
            {
                MyDebug.ShowMessage("界面图像处" + e.Message);
            }
            finally
            {
                ho_Image.Dispose();
                instance.RegionToDisp.Dispose();
                instance.Image.Dispose();
                instance.resultHTuple = new HTuple();
                //UpdateProInfo();
            }
        }