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.
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.
01-05-2017 11:54 AM
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?
01-06-2017 01:55 PM - edited 01-06-2017 01:56 PM
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.
02-24-2017 05:39 PM
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"