LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

LabVIEW hangs when configuring the Call Library Function Node

Hi all!

I have a nasty problem with LabVIEW 8.0 for Linux.

I have to develop a shared library under Linux to be an interface between LabVIEW and some existing but pretty user-unfriendly interface. I started with what I considered the hardest - i.e. the callback routines. For test purposes I made a small shared library which was generating User Events and passing them to LabVIEW whenever smth happened. This was working just fine. I was using the Call Library Function Node with totally no problems.

Then I created a shared library which is using the mentioned, existing interface. As this external interface is a pretty big thing, I have experienced some problems straight away. When opening the library in Call Library Function Node configuration panel and accepting the chosen configuration, LabVIEW was complaining it couldn't find some external libraries on which my library was dependent. The error even proceeded when I copied all the missing ".so" files to the directory where my library was placed.

Finally, with a lot of help from libtool and ldconfig I made LabVIEW open the files and not complain about missing libraries. Unfortunately, INSTEAD IT HANGS WHENEVER I CLICK THE "OK" BUTTON in the Call Library Function Node configuration panel. To make it a bit more clear I will just describe step-by-step what I'm doing and what happens:

1. Add a Call Library Function Node to the Block Diagram.
2. Go into the configuration panel for this component.
3. Hit the "Browse" button.
4. Open my library.
5. Choose the function name from the list (maybe it's a useful information but the list loads for a good 10-15 seconds as there are thousands of entries in the dependet libraries).
6. [This step doesn't influence the final effect] Setup return values and function arguments.
7. Hit the "OK" button.
8. LABVIEW HANGS !! TOTALLY NO RESPONSE !!

I also tried to wait for 15 minutes hoping it might be the number of library entry points making it load so slow. Apparently, the process uses 0% CPU and makes no I/O operations what I can see in the task manager. It simply hangs for good... and it happens both when I set a function to run in a UI thread or to be reentrant.

As for the shared libraries, I'm sure they work properly. I have a C++ test client using these libraries. The program is working fine. Also take into consideration that the libraries are actually never executed from LabVIEW - it hangs when I'm trying to accept the configuration so I never have a chance to even run my application. Anyway, not finding any better reason, I'm thinking of the number of dependencies being (maybe an indirect) cause of my problem. The library I'm developing uses 35 other shared libraries. These use another external libraries. Most of them point to each and they also often end up pointing to the same library. Might that have somehing to do with LabVIEW hanging??

I'm using SuSE Linux 9.3 and LabVIEW 8.0 for Linux.

Can anybody help me overcome this problem? Somebody has a good idea of what might be the cause? I would be very grateful for any kind of help!

Thanks in advance,
Michal Tomczewski
0 Kudos
Message 1 of 2
(2,696 Views)
Hi,
 
I have a few suggestions for troubleshooting this. Does the issue occur if only using a single Call Library Function Node  on a blank VI? It may also be that your C file has not released the .so files from memory, since the .dll or .so is loaded in LabVIEW when you press "OK" in the setup dialog.
 
Can you load a basic .so file that has only very basic functionality? If so, try adding the functionality of having that .so object depend on another.
 
Best regards,
Peter

Message Edited by Posse on 05-16-2006 09:06 AM

Peter Porsman | Applications Engineer | National Instruments
0 Kudos
Message 2 of 2
(2,668 Views)