08-07-2008
09:47 PM
- last edited on
06-17-2024
07:01 PM
by
Content Cleaner
08-08-2008
02:20 PM
- last edited on
06-17-2024
07:02 PM
by
Content Cleaner
Dear RichLamb,
The NI-IMAQ driver and the NI-IMAQdx driver are both current drivers. NI-IMAQ is the driver used for all of our framegrabbers (CameraLink, parallel digital, analog), while IMAQdx is the driver for interfacing to FireWire (IEEE 1394) or GigE cameras. Both of these drivers are packaged together in the same download under the name Vision Acquisition Software:
Vision Acquisition Software 8.6 - Windows 2000/Vista x64/Vista x86/XP
https://www.ni.com/en/support/downloads/drivers/download.vision-acquisition-software.html
What type of camera are you using?
Normally people do not modify the camera file used with the IMAQdx driver because the camera files are supplied by the FireWire or GigE Vision camera firmware upon plugging the camera in. Once the camera file is loaded from the camera, the user typically modifies parameters specified in the camera file for that particular camera session using property nodes in LabVIEW, or read and write attribute methods in supported text based languages.
If you have a camera that uses the IMAQ driver, then the type of camera file and reasons for modifying it will be different depending on what camera bus you are using (CameraLink, parallel digital, analog).
Either way, most applications can be written such that you only modify attributes already exposed in the camera file. Why are you looking to programmatically modify a camera file, and by using registry keys?
The camera files used by National Instruments drivers used to be located in the Program Files»National Instruments»... directory prior to Vision Acquisition Software version 8.2.3. It was moved to the Documents and Settings»All Users»Shared Documents»... directory to allow all Windows user accounts to access the files. You can see more details on the exact paths here:
Where Do I Place My Camera File Once I Download It?
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P6ywSAC&l=en-US
When you packages vision applications, the required IMAQ driver (and thus MAX as well) are packaged with it, and then you just reference a camera interface (cam0, cam1, ect...) in your application. This camera interface will be specified in the camera interface file (.iid file). You can find more on the specifics of how the driver uses the .iid and .icd files from the IMAQ and IMAQdx help files.
Best Regards,
~Nate
08-10-2008 10:51 PM
To clarify, I use a GigE camera (Prosilica GC1350) so I understand from what you say that IMAQdx applies to me rather than IMAQ.
There's no mystery as to where my camera file resides: I know where it is. I'm trying to find where it is via the installation data (registry keys) but none of these point to the right place. NI provides examples of how to use the registry keys to find and modify the camera file, but they do not seem to apply to IMAQdx.
As to why? I'm using a separate application to configure camera attributes and video metrics - these updates must persist and so it's perfectly reasonable to update the camera file which is where NI designed them to live. The alternative is that I create my own config file, write values in there from the configuration app, read them out again in the main app and then apply them. A very messy long way to duplicate the NI functionality.
If the NI functionality was complete I would happily use it. I'm beginning to think it's a bit rough-and-ready but I didn't want to assume that.
The simplest way to fix it is to write a registry hack that corrects the path to the camera file, and install this with the application. It's ugly, but as I say, the NI functionality does not appear to be very polished so I have no choice (?)
regards,
RichLamb
08-12-2008 10:39 AM
Some cameras implement additional registers that are not contained in the IIDC 1.31 or GigE Vision 1.0 specifications. These advanced camera features are not natively supported by the camera driver. To use these advanced features, you must use the low-level, register-level access tools to communicate with the camera."
The NI-IMAQdx software provides the following register-level primitives.08-12-2008 07:37 PM
Thanks Nate; that registry key will do the trick for me.
For reference, I'm definitely not planning on doing any register-level programming in the camera. I'm more than happy to use the MAX configurator and it's system of configuration data logged in files - just that it needs to be clarified (by NI) how it is implemented and how to interface to it. What exists currently is a bit messy and inconsistent, and the only examples are misleading.
The unique camera data is saved in the camera files - there's no real need to go to register-level that I can see. It's also explained in the help under how the attributes are modified in LabVIEW: you use a property node and supply the name of the attribute as well as the value; since cameras have distinct properties that cannot reasonably be coded into the property nodes. This works pretty well.
(or perhaps they could; if the LabVIEW implementation was to read an xml configuration file for the camera in question - but I digress).