05-19-2010 09:08 AM
Hello!
My problem is this: IMAQdx Write Memory.vi does not work with AVT Stingray F080B camera (IEEE1394B), when it is connected to NI CVS-1456 using FireWire A-to-B cable. The previous model AVT Marlin F080B (IEEE1394A) works without any problems.
Goal: upload shading correction image to the camera using GPDATA_BUFFER with the method described in AVT Stingray manual. The method is the same for AVT Marlin camera.
Symptoms:
- the upload starts OK (green LED at the back of the camera blinks fast), then there are a couple of red flashes of the LED, and soon after that the program stalls. Using execution highlighting, breakpoints and probes I have identified that it is IMAQdx Write Memory.vi that gives an error message at the first cycle of the loop and on the next cycle execution stalls at this VI. The loop should go for hundreds of cycles to perform the upload
- the error message:
Error -50150 occurred at IMAQdx Write Memory.vi
Possible reason(s):
NI Platform Services: The software has entered an unknown state - usually as a result of a cascade failure induced by an unexpected series of state inputs. The operation could not be completed as specified and you should immediately terminate all further transactions if you are able to do so.
- the image is uploaded to the camera by writing it in pieces of 2048 bytes
- this works very well with the older Marlin but not with the newer Stingray <=> CVS and software should be OK
- these cameras are register compatible
- image upload works without any problems when using a PC and AVT SmartView program (with AVT drivers)<=> Stingray camera is OK
- image upload works partially OK when using a PC and LabVIEW (image is corrupted if larger than 512 byte pieces of the image are written at once)
This problem has been similar from LabVIEW version 8.6.1 and VAS8.6 with Legacy IEEE1394 drivers and VIs until the most recent version LabVIEW 2009 SP1 with latest VAS2010.03 using IMAQdx drivers and VIs.
To me it seems there is some fundamental problem with compatibility of IMAQdx drivers (on CVS-1456) with AVT Stingray F080B camera. have you experienced similar problems? Any solutions?
I appreciate your help!
05-19-2010 09:47 AM - edited 05-19-2010 09:50 AM
Hi DeepSky,
It is possible that the different firmware of the camera reacts differently and causes the IMAQdx driver to run into problems. Would you be able to attach a VI snippet that uploads the firmware and shows the problem? We could try to reproduce it here with a bus analyzer and see what might be going on.
Have you tried uploading using smaller chunks or possibly increasing the timing interval between memory writes? It is possible that the AVT software is doing something like this and thus is working correctly. As generic software, IMAQdx expects that when the camera says an operation is complete, it is really complete and it can go on to the next operation. Many cameras have subtle timing issues because they violate this assumption and work around it by delays in their own software.
Eric
05-20-2010 03:03 AM
Hello, Eric:
Thanks for your reply. The mechanism you mentioned sounds plausible.
I attach test project and files together with images of the front panel with both successful AVT Marlin and unsuccessful AVT Stingray tests. The main VI is AVT Marlin and Stingray shading test_IMAQdx.vi. For Marlin you should use 516x388 shading image and for Stingray 1038x388 image (reads in the manual for Format 7 mode 3 shading images). You may have to tweak camera name between cam0 and cam1 depending on which camera you connect first to CVS.
The project allows you to test the cameras both with PC and with CVS. Remember to copy Shading test images to C:\Shading test images\ folder on both the PC and the CVS. This project is assumes LabVIEW 2009 SP1 and VAS2010.03.
Thanks for help!
05-20-2010 04:45 AM
05-20-2010 05:51 AM
06-21-2010 12:46 AM
NI found a bug in their driver. I got a new tnf.dll from their support, which solved the problem. I do not know when this fix will be included in the LabVIEW distribution. Maybe someone from NI could comment on this.