Assembly: Cognex.VisionPro.Core (in Cognex.VisionPro.Core.dll) Version: 65.1.0.0
Parameters
- requestedTicket
- Type: System Int32
The ticket of an outstanding acquisition. This is usually a value returned by StartAcquire . If this value is omitted or set to -1, the oldest outstanding acquisition is completed. requestedTicket must be -1 for automatically triggered acquisitions.
- ticket
- Type: System Int32
The actual ticket of the completed acquisition. When requestedTicket is not −1, this value is the same as requestedTicket.
- triggerNumber
- Type: System Int32
The trigger sequence number of the completed acquisition. You can compare this value with Trigger value returned by Acquire(Int32 ) to see if there were missed triggers.
Return Value
Type: ICogImageThe acquired image.
| Exception | Condition |
|---|---|
| CogAcqTimeoutException | Timeout period expired. |
| CogAcqBadTicketException | ticket is −1 and there is no outstanding StartAcquire , or if there is no StartAcquire for this ticket. |
| CogAcqOldTicketException | The image corresponding to ticket has already been collected. |
| CogAcqOverrunException | A trigger could not be serviced. |
| CogAcqAbnormalException | The acquisition failed because of a fault in the acquisition hardware or because of some other unusual problem. |
| CogAcqEncoderOverrunException | Encoder overrun. |
| CogAcqInvalidROIException | The region of interest is not valid. |
| CogAcqNoOutstandingStartsException | ticket was −1, but there were no outstanding StartAcquire requests |
| CogAcqOtherFifoErrorException | There was an error in another FIFO in the same master/slave group. |
Completes the acquisition specified by the given ticket and returns the acquired image. If ticket is omitted, or set to -1, the oldest outstanding acquisition will be completed.
Note: If you are completing an automatically triggered acquisition (one for which StartAcquire was not called), then you must either omit the requestedTicket argument or supply a value of -1.
Under some conditions, the VisionPro acquisition system may fire a Complete event when there is no completed acquisition available. If you call CompleteAcquire(Int32, Int32 , Int32 ) when this happens, you will receive a timeout error, or possibly some other error. This happens primarily when you disable triggers and Flush the FIFO (to stop acquisitions), and the Complete event for the flushed image fires. To avoid this situation, be sure to call GetFifoState(Int32 , Int32 , Boolean ), to determine whether there really is an image pending.
CompleteAcquire(Int32, Int32 , Int32 ) can fire Complete, MovePart, and Overrun.
using Cognex.VisionPro; private CogFrameGrabbers myFrameGrabbers; private ICogFrameGrabber myFrameGrabber; private ICogAcqFifo myAcqFifo; private void AcquireDisplay () { const string VIDEO_FORMAT = "Sony XC75 640x480"; int acqTicket, completeTicket, triggerNumber, numPending, numReady; bool busy; myFrameGrabbers = new CogFrameGrabbers(); myFrameGrabber = myFrameGrabbers[0]; myAcqFifo = myFrameGrabber.CreateAcqFifo(VIDEO_FORMAT, Cognex.VisionPro.CogAcqFifoPixelFormatConstants.Format8Grey, 0, false); acqTicket = myAcqFifo.StartAcquire(); do { myAcqFifo.GetFifoState(out numPending, out numReady, out busy); if (numReady > 0) cogDisplay1.Image = myAcqFifo.CompleteAcquire(acqTicket, out completeTicket, out triggerNumber); } while (numReady <= 0); }
Imports Cognex.VisionPro
Private myFrameGrabbers As CogFrameGrabbers
Private myFrameGrabber As Cognex.VisionPro.ICogFrameGrabber
Private myAcqFifo As Cognex.VisionPro.ICogAcqFifo
Private Sub AcquireDisplay()
Const VIDEO_FORMAT = "Sony XC75 640x480"
Dim acqTicket As Integer
Dim numPending As Integer : Dim numReady As Integer : Dim busy As Boolean
Dim completeTicket As Integer : Dim triggerNum As Integer
myFrameGrabbers = New CogFrameGrabbers
myFrameGrabber = myFrameGrabbers.Item(0)
myAcqFifo = myFrameGrabber.CreateAcqFifo(VIDEO_FORMAT, CogAcqFifoPixelFormatConstants.Format8Grey, 0, False)
acqTicket = myAcqFifo.StartAcquire()
Do
myAcqFifo.GetFifoState(numPending, numReady, busy)
Loop Until numReady > 0
CogDisplay1.Image = myAcqFifo.CompleteAcquire(acqTicket, completeTicket, triggerNum)
End Sub