Hey TheSpecialist,
To answer your questions:
"How does the image get stored? Does it pull in a frame of video? Is there a way to detect errors in the frame and throw it away?"
The image gets stored in memory, and if you are using a modified Ring Example, then the images are getting stored in the multiple buffers that you set up in the beginning of your program. The "video" gets stored in these buffers one image at a time, as soon as they are acquired from the framegrabber (1411). Then in software you use an Extract or a copy type of function to get that image from memory and then display it however you want to. There is no way to detect "errors in the frame (image)" as the framegrabber just acquires whatever image it gets from the camera. If you wanted to detect errors in the actual image, then you would have to use some kind of image processing to do that.
I was able to set up something similar to what you are doing in LabVIEW, and I was able to get it to lock on to the video as soon as the other camera was connected. So you need to set up in software something similar to what you are already doing. You can set it up to catch an error that occurs if the camera is not connected. Then you need to loop back and start up a new Session. You don't need to set up a new Interface, but you do need a new session. Then if you get to the Examine Buffer again, and you error out, then you need to loop back until you lock onto an image. Or you could set up in software to acquire once after an error, then stop and start a new session after that. This should still be in the milliseconds to check this. You shouldn't need a wait in there for the board to latch on to a signal if the signal is coming in correctly. You will have to play around with where you need to loop at and where you need to check for errors.
Have you tried to use a Grab type of acquisition instead of a ring type of acquisition, and how does that work for you? Have you looked at the low level Ring example for some things you can change around or some different functions you can use? One thing that I am unclear on is how fast are you switching from one image source to another? Again, the image acquisition board is set up to lock onto one signal while a grab is acquiring images. In order to switch to another signal, you should really stop the session that is acquiring the image, then start up a new session that has the new signal connected.
If you really need to go fast between two image acquisitions, then you have a couple other solutions that you might want to consider. First option would be to get two framegrabbers, which would allow you to constantly be locked onto each signal separately without ever losing any connections. Another option that you have is to GenLock your cameras (if they have that feature), so that they are synchronized in the signal that they send out. The reason your image is rolling when you switch is that it is locked onto the signal at a different frequency than the previous signal that came in. If you genlock the cameras to have the same signal timing, then when you switch between them, the framegrabber would automatically lock onto the new signal.
I hope this helps with your overall system setup and with your software application. Please let me know if you have further questions or concerns. Thanks, and have a great day.
Regards,
DJ L.