Chapter 3 Programming with NI-IMAQ©National Instruments Corporation3-11NI-IMAQ User ManualThe HLSeq.c example demonstrates how to perform a sequenceacquisition using imgSequenceSetup. The example sets up a sequencethat uses 10 user-allocated buffers. Unlike the ring example, each buffer inthe sequence has its own skip count associated with it. The skip count is thenumber of frames to skip prior to acquiring the next image. The acquisitionis started at setup time and the setup call is synchronous.High-Level Ring FunctionsRing and sequence functions include imgRingSetup,imgSessionStartAcquisition and imgStopAcquisition. Usethese functions to perform a continuous acquisition that loops or stops aftera certain number of images have been captured.A ring initiates a continuous high-speed acquisition to multiple buffers.Calling imgRingSetup initiates a ring. imgRingSetup specifies both thebuffer list that will be used for transfers and the number of buffers. AfterimgRingSetup is called, you can monitor the status of the transfer andperform processing on any of the buffers in the ring. A ring is appropriatefor high-speed applications where you need to perform processing on everyimage. You must use multiple buffers because processing times may varydepending on other applications and processing results. You can configurea ring to acquire every frame or to skip a fixed number of frames betweeneach acquisition.For certain applications, you can temporarily extract a buffer from the ringto prevent it from being overwritten during the ring’s next pass. Use theimgSessionExamineBuffer and imgSessionReleaseBufferfunctions to do this. Figure 3-5 illustrates a typical ring programming order.