Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

front panel hangs when waiting on externally triggered camera

When calling IMAQ1394 Get Image the front panel of my VI freezes until a frame comes in (cameras externally triggered in Mode0) or until the timeout period expires.  As this call is in a while loop the panel freezes again until the next event. 
 
Independent while loops still run as debugging counters etc that I put in still count as they should in the background, but even their indicators are frozen. 
 
I've tried changing the Preferred Execution System of the VI but this doesn't seem to help at all. 
 
This is obviously unacceptable behaviour for the user of the application as it could be hours between camera triggers and you can't set the timeout to a rediculously short time just to get the screen to become responsive.
 
Any suggestions welcome.
 
Thanks
 
0 Kudos
Message 1 of 3
(3,183 Views)
What version of the driver are you using?

With version 1.5.x of the Windows driver, the code will block inside the DLL. If the camera driver is waiting for a frame to arrive, it will cause the LabVIEW front panel to freeze up.

Starting with version 2.0.x of the Windows driver, the code will block inside the LabVIEW block diagram. Now parallel tasks and drivers can continue to execute while the camera driver waits for a frame to arrive.

Hope this helps

Johann
0 Kudos
Message 2 of 3
(3,177 Views)

Thanks Johann, I am using version 2.0.1.  Yes I see what you mean - the Get Image vi now has a Wait For Occurance in it (like the Pharlap version had before). 

I seem to get the problem with both versions.  But what I tried last night was the following:  I called my VI as a subvi (so the acquisition now happens in a subvi) instead of the top-level VI and something strange happens. . . The first call to Get Image (now in the subvi) freezes the front panel (of the new high-level calling function), but if I trigger the cameras once or if the first timeout occurs the front panel suddenly wakes up and after that subsequent blocking calls to Get Image doesn't have any effect on the front panel.  Can you explain this?

A slightly unrelated comment - I've noticed that I do not need to call IMAQ1394 Configure Acquisition followed by IMAQ1394 Start Acquisition after a timeout on a camera anymore (like I had to do in version 1.5 otherwise it would give me a 'no acquisition in progress' error or something similar if I tried to Get Image after a timeout). 

Thanks for the help so far.
 
Cheers
Anthon
 
0 Kudos
Message 3 of 3
(3,165 Views)