From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Machine Vision

cancel
Showing results for 
Search instead for 
Did you mean: 

Using a 64bit .so on a CVS with labview 32bit.

Hi, i was not sure if I should have posted this on machine vision, but I thought it is more of a software problem so I put it here. I´m currently working with a Compact Vision System, (CVS 1458-RT) this particular embedded sistem runs Linux Real Time. Real Time systems only work with LabVIEW 32bit (I have 2015 32bit running on Windows 10).

 

I was trying to use some functions from OpenCV; in particular a bilateral filter and a watershed algortihm. LabVIEW lacks the bilateral filter and is limited in functionality in the watershed algorithm compared to the one that OpenCV uses. 

 

I installed the OpenCV utilites through VIPM and followed the instructions to use Eclipse with Cross GCC to be able to compile .so files since .dlls wont work in the Linux-RT OS. Everything compiled well but when I tried to run the LabVIEW API with the .so it would just restart the CVS. It showed no error or anything. 

 

I was wondering if I can run that 64bit compiled .so with LabVIEW 32bit running on an RT Target since it is an external code. I cannot use LabVIEW 64bit because the RT target is not recognized by it, and I cannot use a 32bit compiler for the .so because it is not supported in the wrapper. Am I out of luck on this?? Or is there another way to compile that .so?

 

0 Kudos
Message 1 of 3
(2,610 Views)

Have you seen this tutorial? It looks like the RT support started with LabVIEW 2015 sp1. Do you have access to LabVIEW 2015 sp1? If so I would recommend upgrading and using this option. With this option, you would not need to cross-compile the dll. Just download the utility from VIPM.

 

 

 

 

A Johnson
Applications Engineer
National Instruments
0 Kudos
Message 2 of 3
(2,522 Views)

I was able to resolve the issue. To answer my question I was able to use a 64bit .so while using labview 32bit to create a program to run within the CVS-RT. The problem was in the creation of the .so file. It was not compiling correctly and there were no functions in it so the "Call Library Function Node" would crash when it tried to run something that was not there. 

 

-What I did was install linux in a virtual machine inside my windows pc (i was cross compiling so no way to chek the .so inside the windows machine). In there you can use a function to peak inside the .so to see what functions are in there. The function is

 

$nm -D (name of.so)*.so 

 

i ran this in a terminal in ubuntu. and all the functions created from opencv were after a "-T"

0 Kudos
Message 3 of 3
(2,429 Views)