function [M,name]=spget(inTime,Average)
% >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
% Version:new0.2beta
% Auther:ideaoptics
% >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
%
%% spget(inTime,Average) is used for open spectrum and get spectral lines.
% inTime is the Integrationtime(ms).
% Average is the Average times
% output like [M,name]=SPGET(inTime,Average)
% M is the spectral lines of Spectrometers
% M(:,1) is Wavelength Array of Spectrometers
% M(:,2) is Spectrum Array get from Spectrometers
% name is the name of the Spectrometers
%
%% Any problem :baojw@ideaoptics.cn
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
if nargin==1 %set nargin
Average=0;
end
filepath=mfilename('fullpath');
filepath=[filepath-6,'/IdeaOptics.dll'];
try
NET.addAssembly(filepath);%此处为要调用的ideaoptics.dll的所在文件夹
catch e
e.message;
if(isa(e,'NET.NetException'))
eObj=e.ExceptionObject;
end
end
obj=IdeaOptics.Wrapper();%新建Wrapper
SpecCounts=obj.OpenAllSpectrometers();%打开所有的光谱仪,获取光谱仪数量
if SpecCounts==0
disp('NO SPECTRUM!!')
else
numberOfPixels=obj.getNumberOfPixels(0);%获得光谱仪的像素数目
obj.setIntegrationTime(0,inTime);%设置积分时间
obj.setScansToAverage(0,Average);%设置平均次数
name=obj.getName(0);%获得光谱仪名称
wave=NET.createArray('System.Double',numberOfPixels);
count=NET.createArray('System.Double',numberOfPixels);
wave=obj.getWavelengths(0);%获得第1台波长信息,第二台wave=obj.GetWavelength(1);
count=obj.getSpectrum(0);%获得第1台counts值
A=[double(wave);double(count)]';
M=A;
end
评论0