PXI

cancel
Showing results for 
Search instead for 
Did you mean: 

Installing frame grabber sofware

When I build an installer to move a program that uses uses a frame grabber to another system - both are XP machines - the program with work with an 1409 card but not an 1422 card.  However, if the new system has an 1409 card in img0 and an 1422 card in img1 then the program with work with either card.  The program was developed on a system that uses an 1409 PXI card in img0 but the new system uses PCI cards.  The LABVIEW version is 8.2.  What is going on?
0 Kudos
Message 1 of 13
(4,103 Views)
Hi bswartze,

Is it possible that you have something hard-coded in your code which specifies a certain card as img0 or img1?  Maybe the way the program is written, it does not look for the 1422 in im0, for example.  Without knowing more about the code, it will be hard to give specifics.  Also, what do you mean by "will not work?"  Are you getting an error? And if so, what error?  Or are you just not getting any response?
Wes Pierce
Principal Engineer
Pierce Controls
0 Kudos
Message 2 of 13
(4,093 Views)

Wes P,

   Thanks for your response.

   By not working I mean the program will not collect frames from the 1422 card.  The imgn number is not hard wired;  it is read from a text file.  There is an error that occurs in the imaqInitBufferList but only if the 1422 card is installed in the img0 slot.  The fact that it will work just fine if the 1422 card is in img1 but not if it is in img0 is the mystery.  If the frame grabber is an 1409 card the program works just fine with the card in img0.  The program (which is very complicated) was developed on a system with a PXI 1409 frame grabber in img0 and works just fine.  The system I want to install the executable on has a PCI 1422 card in img0.  Again, why does the slot number have any effect on whether the program works or not?  Since the program will work with the PCI 1422 card in img1 shows that it doesn't matter if an analog or digital camera is the video source.  Could the builder hard code some variables?  This is very puzzling and driving me crazy.

Thanks,

Bud (bswartze)

0 Kudos
Message 3 of 13
(4,082 Views)
Hi Bud,

Thanks for the additional information.  Since you are setting the channel name (img0, img1, etc) from a text file, I wonder if there is an issue with the file.  Reading from a fixed file, is effectively no different from hard coding a value.  Could it be that something in the text file is preventing a 1422 from being used as the img0 name?  The name img0 or img1 is assigned by windows when the card is installed, so any hard-coding (including reading from text files) cannot be sure to work.
Wes Pierce
Principal Engineer
Pierce Controls
0 Kudos
Message 4 of 13
(4,052 Views)

Wes P,

    Here are the things I have tried.

      1.  Hard wiring the interface as img0 and installing a PCI-1422 card in img0.

      2.  Making the interface name a control and setting it before running the program using a PCI-1422 installed in img0.

     3.  Reading the interface name from a text file.  The file name is fixed but the text is not and can be changed.  The PCI-1422 card was installed in img0.

     4.  Running an example program that was complied by NI to test the buffering on a frame grabber card.  A PCI-1422 card in img0 was installed.  The NI program worked just fine on my PXI system with a PXI-1409 card installed in img0.

     5.  Installing a PCI-1409 card in img0 and a PCI-1422 card in img1.

MAX was able to grab frames from img0 regardless of the type of card (hence the type of camera) installed in img0.

Only (5.) collected frames using my program and a digital camera (img1.)  (4.) also failed with a PCI-1422 card in img0.   A NTSC  camera connected to a PCI-1409 card in img0 always worked.

I hope this helps.

Bud

0 Kudos
Message 5 of 13
(4,047 Views)
Hi Bud,

Thanks for the additional information.  You kept mentioning that the card was "installed in img0" (or img1).  Note that the handles "img0" and "img1" are assigned by the operating system to the card when the card is installed.  It has no dependence on the physical location of the card.   You should  check in MAX to be sure of the handle that is assigned to the card.
Wes Pierce
Principal Engineer
Pierce Controls
0 Kudos
Message 6 of 13
(4,033 Views)

Wes P,

    img0 and img1 are the handles in MAX.  I could find no way to force the system to assign a different handle to the card.  If there is a way to tell the system to install the card using the handle img1 instead of img0 I would be glad to try that to see if that would make a difference.

 

Bud

0 Kudos
Message 7 of 13
(4,025 Views)
Hi Bud,

These handles should be assigned in the order that you install your card.  The first card installed should appear as img0, and the second should be img1.  If you install them at the same time, it will be random.  If you install one, and then startup the computer, it should be instanced as img0.  If you then shut down and install a second, that card should be img1.
Wes Pierce
Principal Engineer
Pierce Controls
0 Kudos
Message 8 of 13
(4,015 Views)

Wes P

Maybe I should have been more specific.  I have found no way to install a SINGLE PCI-1422 card and force to be assigned img1.  Is there a way to do that?

 

Bud

0 Kudos
Message 9 of 13
(3,997 Views)
Hi Bud,

You can change the handle by going into MAX, and right-clicking on the interface name.  Select Save as..., and you can name it anything you want.





Message Edited by Wes P on 06-09-2008 09:01 AM
Wes Pierce
Principal Engineer
Pierce Controls
0 Kudos
Message 10 of 13
(3,976 Views)