
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% load library
if not(libisloaded('xisl'))
  [notfound, warnings] = loadlibrary('xisl', 'Acq.h');
  
end
%libfunctionsview xisl

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% define inputs for APIs

dwBoardType = uint32(1);
dwChannelNr = int32(0);
bEnableIRQ = 1;
Rows = uint32(512);
Columns = uint32(512);
dwSortFlags = uint32(6);
bSelfInit = 0;
bInitAlways = 0;

pdwNumSensors = 0;
Pos = 0; 

pdwChannelType = 0;
pnChannelNumber = 0;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% API Functions

[ret, hAcqDesc, bEnableIRQ, bSelfInit, bInitAlways] = calllib('xisl', 'Acquisition_Init', int32(0), dwBoardType, dwChannelNr, bEnableIRQ, Rows, Columns, dwSortFlags, bSelfInit, bInitAlways);
if ret ~= 0
    disp(sprintf('...Init: error no. %.0f occured!',ret))
else
    disp('...Perkin Elmer Init.: ok!')
end

[ret,dwNumSensors] = calllib('xisl', 'Acquisition_EnumSensors', pdwNumSensors, bEnableIRQ, bInitAlways);
if ret ~= 0
    disp(sprintf('...EnumSensors: error no %.0f occured!',ret))
else
    disp(sprintf('...EnumSensors: %d sensor(s) recognized!', dwNumSensors))
end

[ret,Pos,hAcqDesc] = calllib('xisl','Acquisition_GetNextSensor',Pos,hAcqDesc);
if ret ~= 0
    disp(sprintf('...GetNextSensor: error no. %.0f occured',ret))
else
    disp('...GetNextSensor: ok!')
end


[ret,hAcqDesc, pdwChannelType, pnChannelNumber] = calllib('xisl','Acquisition_GetCommChannel',hAcqDesc, pdwChannelType, pnChannelNumber);
if ret ~= 0
    disp(sprintf('...GetCommChannel: error no. %.0f occured!,',ret))
    msgbox(sprintf('...GetCommChannel: error no. %.0f occured',ret),'for f...','warn')
else
    disp('...GetCommChannel: ok!')
end

unloadlibrary xisl
