02-06-2010 09:12 AM
Hi all,
I've been using Labview v8.5 & v8.6 for the past year or so to write an application for measurement of volcanic gases
using UV spectrometers. I traverse underneath the plume and with the use of a GPS logging data,I get real-time measurements
of SO2 concentrations and fluxes.I use spectrometers from two manufacturers (Ocean Optics and Avantes) from whom I also got
the relative vi's to control the instruments.Make a note that although I use these vi's and I know their inputs and outputs I am
unaware of their internal architecture regarding dll's etc since my programming skils are not very good. I decided that since
I built the application with a user-friendy GUI I can distribute it so I read some things about the installer and gave it a shot.
The problem I have is that only one of the spectrometers is working (one from Avantes) when I install the application on a
different computer. The one with the problem is from Ocean Optics and I narrowed down the problem to the first vi in order of
use which I am attaching and its called Wrapper_create.
According to the manual of the drivers package (OmniDriver):
One final and important note regarding the OmniDriver architecture. OmniDriver contains classes which represent each
distinct Ocean Optics spectrometer (eg. USB2000+, HR4000, etc.). However, all access to your spectrometers, regardless of
model, should be through the “Wrapper” object. Your application should instantiate the Wrapper object and then use the
methods of this Wrapper object to connect to and control your spectrometer.
The only thing that this vi does is to call a dll called OmniDriver32.dll and from which I assume
reads the wrapper_create function. When i run the application on my laptop where both labview and the drivers are installed
the Wrapper_create.vi returns a non-zero value but when I run the application on a computer where only the labview
run-time engine is installed it returns zero and so the application cannot see the spectrometer.
I tried to give as many details as possible because I have no idea where the problem originates from.
I'd appreciate any help or input.
Thank ypou
Solved! Go to Solution.
02-06-2010 12:34 PM
02-06-2010 12:40 PM - edited 02-06-2010 12:41 PM
True but the drivers are pretty pricy and are made for people to develop application not using existing ones.
Dont forget that Im trying to distribute the application to people that dont have neither Labview
nor the drivers.
Im trying to understand why one spectrometer works as intented and not the other and I think it has
something to do with the creation of the wrapper object.
02-06-2010 01:16 PM
epik78 wrote:True but the drivers are pretty pricy and are made for people to develop application not using existing ones.
I don't think the manufacturer of that device cares about that point.
Dont forget that Im trying to distribute the application to people that dont have neither Labview
nor the drivers.
If the user of the device wants to use your application, then they will have to buy the drivers from the manufacturer. There is no way around it. You could try contacting the manufacturer and see what their policy is and if they offer any deals. Most manufacturers tend to offer drivers for free because they consider they had made their money by selling you the device. The cost of developing the drivers is rolled up in their overall development costs. For whatever reason, that one manufacturer is requiring you to pay extra for the drivers. It's a business decision they made that they want to make additional money by selling the drivers. It could wind up costing them business in the long run if you or others decide to stop buying their products as a result.
I'm trying to understand why one spectrometer works as intended and not the other and I think it has
something to do with the creation of the wrapper object.
Who knows? That is all in the way the manufacturers decided to write their drivers. It is almost certainly illegal for you to try to reverse engineer either manufacturer's drivers to figure out the way they work depending on the license agreement whether or not one manufacturer happens to give away the drivers for free and the other charges a pricey amount for it.
Message Edited by epik78 on 02-06-2010 12:41 PM
02-13-2010 06:21 AM
It turns out that the OmniDriver has its own runtime engine. So if you build an application
in Labview that uses the OmniDriver and you want to install it on a different computer
you need to install Labviews and the OmniDrivers runtime engine.
Note that the OmniDrivers runtime is free to download.
06-02-2010 12:58 PM
Hi epik78,
Where did you get the VI's to operate the Avantes spectrometer and what model were you using? I was only able to buy a DLL set from Avantes to develope my own Labview application. Some of functions (synchronizing multiple spectrometers and applying cal files) are proving difficult from the DLL calls.
Thanks.