//ABB private void myImgComplete4(object sender, CogCompleteEventArgs e) //定义ABB的相机 { CogToolBlock myToolBlock; CogToolBlock myRunToolblock3; //= myToolBlock.Tools("MyToolBlock3") int numReadyVal = 0; int numPendingVal = 0; bool busyVal = false; CogToolGroup myTG = (CogToolGroup)myJob.VisionTool; myToolBlock = (CogToolBlock)myTG.Tools["AcquireImageAndProcessLeft"]; myRunToolblock3 = (CogToolBlock)myToolBlock.Tools["MyToolBlock3"]; CogAcqInfo info = new CogAcqInfo(); ICogImage CurrentImage = default(ICogImage); // static int numAcqs = 0; try { AcqFifoTool4.Operator.GetFifoState(out numPendingVal, out numReadyVal, out busyVal); if (numReadyVal > 0) { CurrentImage = (ICogImage)(AcqFifoTool4.Operator.CompleteAcquireEx(info)); } else { //Throw New CogAcqAbnormalException("Ready count is not greater than 0.") } myImgComplete4_numAcqs++; // We need to run the garbage collector on occasion to cleanup // images that are no longer being used. if (myImgComplete4_numAcqs > 4) { GC.Collect(); myImgComplete4_numAcqs = 0; } ModuleCard.d1000_out_bit((short)10, (short)1); // Issue another acquisition request if we are in manual trigger mode. if (!ReferenceEquals(CurrentImage, null)) { myRunToolblock3.Inputs["Input2dImage"].Value = CurrentImage; myRunToolblock3.Run(); } // CogRecordDisplay1.Image = CurrentImage } catch (Exception) { } }
/// <summary> /// Auto-Triggerring /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void CogAcqFifo_Complete(object sender, CogCompleteEventArgs e) { lock (_lockFifoComplete) { _lastCogImage = null; try { do { Stopwatch sw = Stopwatch.StartNew(); ICogImage cogImage = WaitForImage(-1); if (cogImage == null) { return; } _lastCogImage = cogImage; if (ShowImageInWindows) { AssignImageToWindows(cogImage); } D.ObjectEventHandler delCallback = GetNextCallback(); if (delCallback != null) { delCallback(_lastCogImage); } _waitForImage.Set(); } while (true); } catch (Exception ex) { U.LogError(ex, "Error in obtaining image"); System.Diagnostics.Debug.WriteLine(string.Format("Error in obtaining image {0}", Name)); } _waitForImage.Set(); } }