LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Micro-Epsilon laser scanner on Linux RT

We use the ScanCONTROL 2910-xx laser profile scanner from Micro-Epsilon. They offer a LabVIEW driver for the Windovs platform and it works well. However, we want to develop the final application for the IC-3173 (Linux RT). Since communication with the sensor is carried out through the LTT.dll library, of course it does not work on the Linux platform.

There is also a Linux SDK (https://www.micro-epsilon.com/2D_3D/laser-scanner/Software/downloads/?dl=32). Is there any idea how to integrate the Linux library successfully into the LabVIEW program?
Another posible solution: Does Linux RT allow the installation of a third-party application, which would, for example, capture the profile and transfer it to a LabVIEW RT layer via the standard interface?

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

First Linux RT is a Linux system, so you can certainly install Linux applications on it and for instance launch them from your LabVIEW application. But!!!

 

Linux RT uses a certain Linux kernel version, with a certain according libc runtime library versions and quite a few other specific software components. And in true Linux tradition, which pretty much assumes that you get everything in source code and compile it on the target system with a make; make install on the command line, this often fails for closed source applications. They were compiled with a specifc gcc version, that uses a specific libc version for a specific Linux kernel version and if any of these differ to much from that setup used to compile the closed source app, it simply won't start up or crash at random points during execution.

 

Not being able to see the mentioned SDK I can't comment on the feasability to get this to work on Linux RT. If it contains shared libraries that an application must call, you have similar problems as shared libraries are also precompiled binary executable modules that may or may not be compatible for the Linux RT system. If it is compatible you can call its functions with the Call Library Node just as you can for DLLs under Windows, though I would guess that they did not develop the Linux shared library in a way to be binary API compatible, so you would need to develop a new LabVIEW VI library with according Call Library Nodes to call this shared library.

 

If the SDK contains source code for a shared library you can of course try to recompile it for the NI Linux platform. Generally it is not as simple as installing gcc-devel on your controller and typing make; make install on the command line but it should be doable if you have some C programming experience. Another approach might be to reverse engineer the communication protocol from that C source code (if it is provided as source code) or even better if there is a documentation about the protocol and reimplement it fully in LabVIEW using the TCP/IP nodes. This would be possibly a little more work than trying to get a ready made shared library to work on the Linux RT system, but has much more promise to work, is a lot easier to debug (you don't need to debug Call Library Node calls and external code libraries) and would give you a library that works on any LabVIEW platform independent of the underlaying OS.

 

One possibility in the way of the last option might be the scanControl UDP tool. It seems to come with full source code and allows to communicate with the scanner through UDP communication. You could reimplement those functions fully in LabVIEW using the built in UDP nodes.

Rolf Kalbermatter
My Blog
0 Kudos
Message 2 of 3
(2,777 Views)

DIKU, did you get this to work ?

 

Best regards

Martin

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