@Tomi M wrote:
Hi folks,
I have only been
using LV in Windows environment. We would however like to use our
signal analysis software in Linux environment to be able to utilize
available computational capacity. Regarding portin Windows VI to linux
I have a few questions:
1) We use HDF5 file format in our
analysis software. The interfacing is done via a DLL. It's possible to
compile similar shared library in linux with exactly the same
functions. Is it possible to interface this linux library in similar
manner using library node as it is in Windows. If it is possible what
needs to be considered when porting the software.
2) We are using
Advanced Signal Processing Toolkit and Express VI Development Toolkit
from which Advanced Signal Processing Toolkit is not currently
available to linux. Does NI have plans implementing the toolkit for
Linux.
3) Are there any special considerations that need
to be taken care of when moving software from Windows to Linux. Does
all of the even most advanced functions work accordingly in Linux?
Tomi
The link that has been provided is good information on these topics. A little more detail about some of the points:
1) LabVIEW allows you to specify the library name in following way in
the Call Library Node: <name>.* In that case LabVIEW will search
for a shared library/DLL with the name <name> and the prefered
extension for the current platform ( .dll for Windows, .so for Unix,
.Framework for MacOS). In order that the DLL/shared library can be
called on all platforms with the same VI the different functions need
to have the same name on all platforms and need to be binary
compatible. Binary compatibility means that all parameters need to be
the same datatype and order and the calling convention must match.
Since C calling convention is the only one that is supported by all
current LabVIEW platforms this means all shared library/DLL functions
should be exported as __cdecl. Some projects have that already others
don't. If it is not already provided in the projcet for the shared
library you should consider making it work that way either by modifying
the project source code and makefiles to do so or more recommended
writing a wrapper shared library that does provide the uniform binary
API on all platforms.
2) Check out the Advanced Signal Processing Suite. I'm not sure how
many VIs are actually using a Call Library Node but quite a lot
probably don't. Those without a Call Library Node should port easily to
another LabVIEW platform by simply copying them over to the other
LabVIEW installation.
3) Checkout the documentation already recommended to you. Apart from
what I have explained in point 1) of course functions like Active X,
.Net, DDE and similar MS proprietary technologies simply won't port so
if you used them in your Windows only application then there will be
quite some work to port this application. Calling Windows API functions
through the Call Library Node will of course also break badly.
Rolf Kalbermatter
Message Edited by rolfk on 04-06-2006 05:30 PM
Rolf Kalbermatter
My Blog 
DEMO, Electronic and Mechanical Support department, room 36.LB00.390