Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

Imaq IEEE 1394 Camera Programming Problem

Hello,

I am have a problem with my multicamera acquisition program. I am using LabWindows/CVI. I have already written a program to acquire two cameras simultaneously. These are IMAQ frame grabber type cameras. We recently purchased an IMAQ IEEE 1394 camera. My problem is that there seems to be no good way to poll the device like in IMAQ for which frame it has acquired. For example, I could call the "imgSessionStatus" command in IMAQ to poll the current buffer. I do not seem to be able to do the same in the IMAQ for IEEE 1394.

Also, there is no way to control the buffer allocation. In IMAQ you pass the buffer into the Session Configuration. I am not sure how IMAQ for IEEE 1394 deals with buffer allocation.

Thanks in Adv
ance
0 Kudos
Message 1 of 4
(3,515 Views)
My problem is that there seems to be no good way to poll the device like in IMAQ for which frame it has acquired. For example, I could call the "imgSessionStatus" command in IMAQ to poll the current buffer.
See the information in the next paragraph for information on why this function is not present.

Also, there is no way to control the buffer allocation. In IMAQ you pass the buffer into the Session Configuration. I am not sure how IMAQ for IEEE 1394 deals with buffer allocation.

Linked here is a thread which discusses a similar issue. Basically, the IMAQ for 1394 driver does not have the ability to setup a
ring acquisition like traditional IMAQ does. Essentially, your option is simply to create a series of buffers using IMAQ Create and place the images sequentially into the buffers in software.

Because of the nature of this fact, the imgSessionStatus function is not really valid, as its primary funciton is to check which buffer is valid. For 1394 cameras, you can only use one buffer in a Grab type of acquisition.

I hope this clarifies the way the driver works.
Regards,
Colin C.
Applications Engineering
Colin Christofferson
Community Web Marketing
Blog
0 Kudos
Message 2 of 4
(3,515 Views)
Hello Colin,

Thank you for your response. I saw in the documentation that you can setup a callback function for the IEEE 1394 driver. Is there some code that demonstrates how this callback could be used? I am mostly interested in if it could be setup to call the callback routine after each image acquisition. This way I could have the callback update a global variable to keep track of the buffer number acquired.

Thank in Advance,
Palmer
0 Kudos
Message 3 of 4
(3,515 Views)
Attached is an example that gets installed with the 1394 driver that uses the imaq1394InstallCallback function. This example requries IMAQ Vision to run, but if you just have the driver the code should give you some insight into how to program with the callback.

Regards,
Colin C.
Colin Christofferson
Community Web Marketing
Blog
0 Kudos
Message 4 of 4
(3,515 Views)