Richie Posted March 12, 2009 Report Posted March 12, 2009 Hello, firstly thanks in advance for your help, I have been struggling with this for the last few days and any help is greatly appreciated. I am using a Pixelink PLB742-F firewire camera with NI-IMAQdx. What I need is to control the ROI and size using mode 7 of the camera. So i started with the example 'Grab and Scalable Format.vi'. I also need to control the shutter of the camera. So I looked at 'Grab and Attributes Setup.vi' and I thought I had figured out how to change the shutter, while the camera is capturing. Please see the attached image and vi. It works sometimes when i decrease the shutter, but if i increase it, it gives a timeout error. Please help me as it it driving me slighlty crazy. Thanks again, Richie Quote
Neville D Posted March 12, 2009 Report Posted March 12, 2009 I took a look. It should work. Maybe you are updating too many camera parameters at one time. I would write subVI's for every camera property you are changing and then activate only those subVI's where properties actually have changed. No point writing Width and Height if only PacketSize has changed. Plus reading everything out as well. This is how I do it: WRITE: Cache your camera values in a shift register at the first iteration, then update your cache values as you change parameters. The fact that you are timing out indicates, something is not able to keep up. Either the camera can't keep up with too many changes or possibly the loop rate is too fast? READ (with cache): The BusType is just used to detect a FireWire or a GigE camera and send the appropriate command. The feedback node stores the last read value, so as not to overload the camera with commands when not necessary. Here's what sending commands looks like (run in a loop): Neville. Quote
Richie Posted March 17, 2009 Author Report Posted March 17, 2009 Thank you Neville, you were right, the driver could not cope with changing so much at the same time. To fix it I used a little bit of a hack, I deconfigured, set the width and height, reconfigured, deconfigured, set the offset, and then finally reconfigured. And that works. Thanks for your help QUOTE (Neville D @ Mar 11 2009, 08:39 PM) I took a look. It should work. Maybe you are updating too many camera parameters at one time.I would write subVI's for every camera property you are changing and then activate only those subVI's where properties actually have changed. No point writing Width and Height if only PacketSize has changed. Plus reading everything out as well. This is how I do it: WRITE: Cache your camera values in a shift register at the first iteration, then update your cache values as you change parameters. The fact that you are timing out indicates, something is not able to keep up. Either the camera can't keep up with too many changes or possibly the loop rate is too fast? READ (with cache): The BusType is just used to detect a FireWire or a GigE camera and send the appropriate command. The feedback node stores the last read value, so as not to overload the camera with commands when not necessary. Here's what sending commands looks like (run in a loop): Neville. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.