04-23-2012 09:31 PM
I have IMAQdx version 3.9.1, and a GigE camera that needs to output to several computers. I need LabVIEW to read this data, but for some reason, I can't get LabVIEW or the IMAQdx (through measurement and automation explorer) to do anything with the multicast. I have tried the following configurations:
Another progarm acts as the controller, commanding multicast. When I do this, the camera ouputs a multicast stream (observable on wireshark), but it can't be read by IMAQdx. It can be read by the other software (Pleora's GEV player and JAI's SDK control tool). I've tried selecting it in measurement and automation explorer, where it appears to want to be the controller, and in labVIEW set to "listener"
Running with LabVIEW as the controller. In this case, the camera unicasts to my computer... no other program can read it
Running with measurement and automation explorer as the controller. In this case, again, the camera unicasts to the 1 computer (observable on wireshark)... no one else can read the data. This happens even when I explicitly set it to multicast mode per the directions at:
What am I doing wrong? How do I get LabVIEW to read a multicast data stream from the camera?
04-23-2012 10:45 PM
I'm sorry for the troubles you are experiencing. I think there might be a few explanations for what you are seeing:
- MAX does not currently let you connect as a listener, only a controller. This can only be done via the API
- Running as a multicast listener should work properly in the situation you described. On that exact same system, have you ensured that you can acquire sucessfully in regular unicast mode? One possibility is that the Windows Firewall might be enabled. Depending on how the other software acquires, they may sit under the firewall and so could be unaffected by it.
- Unfortunately you are seeing the result of a bug introduced in IMAQdx 3.9.1 where the address register is not written properly with the multicast address. This results in the camera still unicasting the image stream so that only the controller sees it. This should be fixed in the next release. However, in the meantime there is a relatively simply workaround you can put in your code. I have attached a VI with this workaround.
Please let me know if you still encounter issues.
04-24-2012 07:02 AM
thanks for the reply... I though I had firewall off, but I'll check today when I get in. LabVIEW does work fine displaying the image when it is the controller, though everything comes through unicast.
I tried to open the vi you sent, but it says it is a labview 11 vi. I should have mentioned this before, I'm using labview 10. Could you post a picture of the block diagram?
08-27-2012 08:51 AM
I have a similar problem but I'm using LV 2009 SP1.
I have a DLL that opens my IP based camera. I need this DLL to send special commands which are not supported via the GigE protocol. Commands sending is only possible when I configure the DLL as "master" (= controller mode).
In parallel I need to grab images. I'd like to do this via IMAQdx. Opening the IMAQdx session in controller mode leads to "camera already in use", opening in listener mode leads to "not possible as listener" when I want to start the image acquisition.
The idea was now to start the grabbing within the DLL in multicast mode and configure LabView to receive the images as listener. But this fails, too because I'm not able to set the multi-cast attributes after I opened the session as listener.
Do you have an idea what I can try? Will it help to update to the latest IMAQdx driver? Is the bug you talked before already fixed?
thanks in advance.
08-27-2012 10:07 AM
The bug was specifically on the controller side of a multicast setup where the camera was not being configured properly to send images to the multicast address. It did not affect the listener mode itself (although if IMAQdx was also the controller. the listener would not see any images). Thus I don't think it would be affecting you.
When you use your DLL as the "master", do you have any option to configure the camera for multicast mode? If IMAQdx is giving the error "The camera is not configured properly to support a listener." it means your other DLL is not configuring the camera to send to the multicast address. The listener is unable to write any registers in this mode and so it cannot adjust the parameters (this is why you cannot set that attribute directly as a listener in IMAQdx). It has to be configured by the controller.