%% written @ AlexHall 06/2014 Teil 1
clear all;
clc;
disp('MeasureSensorPos00.m running...');
workspace;
% Wechsle Pfad wenn [...]
if(~isdeployed)
    cd(fileparts(which(mfilename)));
end
%% Timer Klasse für Wartezeiten 
T = timer('TimerFcn',@(~,~)disp('Fired.'),'StartDelay',1);%init timer
start(T);%Starte Timer
%% Welche Hardeware ist vorhanden, Adapter GigE
imaqreset;%Alle Image Aquisition Klassen schließen
wait(T);
info = imaqhwinfo('gige');%Welche Image Aquisition Hardware? Adapter GiGe
dev_info =info.DeviceInfo;
dev_info_Device = dev_info(1).DeviceName;% Kamera Name z.B eco415
%% Objekt, Schnittstelle zwischen MATLAB und Kamera
vid = videoinput('gige', dev_info_Device, 'Mono8');
vid.FramesPerTrigger = 10;%sideeffect mit getdata
triggerconfig(vid, 'manual');
%% Aktuelle VideoSource Klasse u nd Kamera Features 
src = getselectedsource(vid);
get(src);% Eigenschaften der Kamera zeigen
%% Kameraparameter lesen/schreiben/einstellen
src.ExposureTime = 20000;%Beispiel Belichtungszeit auf 20000µsec
src.AcquisitionFrameRate = 5;%fps auf 5[Hz]
temperatur = get(src,'TemperaturSensor');%Lese Sensortemperatur
wait(T);
%% Starte Image Aquisition und hole Bilddaten
preview(vid);%Live Bilder von der Kamera
wait(T);% T = 1sec.
k=1;
figure;
while k < 10% bisschen unschön geht auch anders
 start(vid);
 trigger(vid);
 im1 = getdata(vid,1,'native');%Speichern des letzten Bildes. Achtung: FramesPerTrigger!
 imshow(im1);%zeige mir das Bild
 drawnow;
 k = k+1;
 % Bounding Box
 s(1).BoundingBox=[100 100 150 150]; % Beispiel Koordinaten für den Rahmen
 rectangle('Position',s(1).BoundingBox,'EdgeColor','red'); 
 end
%% Stop Image Aqusition
stoppreview(vid);%keine online Vorshow
stop(vid);%Stop Image Aqusition
%% Videoobjekt schließen, Timer schließen
delete(T); %Delete timer
delete(vid); % Video Klassefreigeben
clear vid;
close(gcf);
clear all;% Workspace bereinigen
clc;%Kommandofenster bereinigen
close all;



