Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

How do I tell NI-MAX what "snap" means?

Hi all

 

Still peeling the onion here. I have an evaluation camera board from a vendor that came with a Labview app to run it. There's no driver, so all commands from the app go straight to the CL serial comm port.

 

I'm modifying the camera and Labview design (they provided the source to get me started). I'd like to use camera Link Logger and Analyzer to show whether the Valid bits are detected and if so, how many. Trouble is, if I use NI-MAX to request a snap, nothing happens. I expect NI-MAX is trying to use some standard DLL call, which won't here because there is no DLL.

 

I can't figure out how to tell NI-MAX, or maybe the Camera File Generator, what it should do when I click "snap".  Anybody know what I should do, or maybe have a link to an app note?

 

Cheers!

MADman

0 Kudos
Message 1 of 6
(4,816 Views)

What camera and frame grabber are you using?

Michael Bilyk
Former NI Software Engineer (IT)
0 Kudos
Message 2 of 6
(4,711 Views)

Hi AA

 

Thanks for offering your help.

 

The camera is an eval board from a camera chip vendor. It doesn't even have a driver, just a Labview app that sends register value changes over the CL serial link. FG is an NI PCIe-1433.

 

I'm modifying the FPGA that lives on the evaluation board, and at the moment my code doesn't work.  The LV app doesn't get a frame before timeout, which is 3 seconds, so the question is whether the FG got no data, or not enough data, or what?  NI has a new downloadable utility that might help by logging received Valid bits: http://www.ni.com/product-documentation/14301/en/. It's looks pretty cool, but it needs something to start a capture, and my LV app can't access the session at the same time as the Logger.

 

MacGyver time: One of ouur techs just rigged me a trigger switch so I can set the camera into an 'external trigger' mode, exit the app, and start the Logger, using the trigger to force a Snap.  But if there were an all-SW solution, it would be handy to know.

 

Cheers!

MADman

0 Kudos
Message 3 of 6
(4,705 Views)
You could add custom serial commands to your camera file and then you can trigger them via setting attributes in MAX. Normally, Snap/Grab doesn't send anything to the camera. You may be able to mess with the pulse generation settings to cause the 1433 to emit some sort of signaling on the CC lines during capture, but I'm not that familiar with that. I don't believe there's any generic notion of sending a serial command to start a capture. You can of course modify a LabVIEW example to send whatever serial strings you want.
0 Kudos
Message 4 of 6
(4,669 Views)

Hi BlueCheese

 

I have been trying to do just that.  Attached is a screen shot of MAX. I created an attribute called SNAP with values GO and NO-GO. GO has a series of serial commands that should trigger a snap. However, selecting GO from the pull-down doesn't do anything. Is there some other control in MAX that does the actual sending?

 

I know the commands aren't being sent because I loaded ChipScope into the camera's FPGA and watched the serTC FIFO outputs.  The scope triggers when I send commands via the LV app, but not when I'm in NI-MAX.

 

What am I missing?

 

As always, thanks for the help. Hope I can return the favor sometime.

MADman

0 Kudos
Message 5 of 6
(4,555 Views)

Can you start a Grab and then change the attribute? I think the IMAQ driver typically defers serial commands until it thinks they are needed to run. if you aren't actually acquiring, I'm not sure it will have any effect.

0 Kudos
Message 6 of 6
(4,515 Views)