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); }
//*/ public AAcqFifo() { m_cogAcqFifoTool = new CogAcqFifoTool(); m_cogAcqFifoTool.Name = "AcquireFifo"; // 2015.04.08 Init(); }
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; }
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) }
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; }
public static bool SaveVppAcq(CogAcqFifoTool acqTool, string path) { try { CogSerializer.SaveObjectToFile(acqTool, path, typeof(BinaryFormatter), CogSerializationOptionsConstants.Minimum); return(true); } catch (Exception) { return(false); } }
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"); } }
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); }
// 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); }
/// <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); }
/// <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); } }
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); }
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); } } }
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]; } }
///// <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); }
public void SetupAcqToolEditSubject(CogAcqFifoTool tool, int index) { acqFifoEditV2[index].Subject = tool; }
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(); } } } }
public AAcqFifo(Object oTool) { m_cogAcqFifoTool = oTool as CogAcqFifoTool; // 2015.04.08 Init(); }
// 2014.10.30 public void SetTool(CogAcqFifoTool acqFifoTool) { m_cogAcqFifoTool = acqFifoTool; }
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"); } }
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(); } }
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"); } }
//初始化函数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; }