Hello Benjamin,
thanks for your reply. I was on vacation until yesterday and therefore I'm replying a little bit late, so I hope this reply still reaches you.
You wrote that I should have a look at the Ring example that comes with the NI-IMAQ toolkit. I do know the example you mentioned. Infact, part of my original question was if it would increase performance significantly if I used the img... functions (e.g. imgSessionExamineBuffer) instead of the imaq... functions (e.g. imaqExtractFromRing). From my understanding, the imaq... functions are just a thin wrapper around the img... functions which return data in a different format. I asked this because I'd like to use the imaq.... functions because they seem more high-level and return the data in the format I want (Image*), so I don't have to write additional code for conversion. In my opinion, the problem is rather that the documentation on these functions is sparse and there is no example provided. E.g. I asked if imaqExtractFromRing() waits until an image actually has been aquired. My tests say that it usually does, but the documentation does not mention it. This creates a certain uncertainity that makes me feel uneasy about using that API, especially as the application we're building will be used in an environment where failure of the system could create damage to the client.
You wrote that I "should be able to have specific control over which buffer index [...] to extract". Could you elaborate on this? Neither the documentation nor the example you mentioned covers this scenario. Infact, question 2 and 3 of my original message still remain unanswered. All the documentation to imaqExtractFromRing() says is that the imageToExtract parameter should be increased.
You wrote that aquiring one line at a time is inefficient and I should configure my software to acquire a set number of lines to a buffer if I know how many lines constitute one image. However, as I wrote in my original post, I do not know how many lines constitute one image because the objects to recognize can have different lengths. I'm a bit puzzled that this is even remarkable because I would have imagined that applications with line scan cameras where objects have different lengths should be common. Anyway, my tests show that there are no performance problems acquiring some thousand lines per second as individual images with the NI Vision toolkit, as long as the number of buffers used is large enough to acount for the largest possible jitter in the computing system.
Best regards
Markus