clc
clear all
close all

%Kamerdefinition
delete(imaqfind)
vid1 = videoinput('gentl', 1, 'Mono8');
src1 = getselectedsource(vid1);

vid2 = videoinput('gentl', 2, 'Mono8');
src2 = getselectedsource(vid2);

%Kameraparameter
src1.ExposureAutoMax = 50;
src2.ExposureAutoMax = 50;

src1.StreamBytesPerSecond = 1000000;
src2.StreamBytesPerSecond = 1000000;

vid1.ROIPosition = [0 0 2592 1944];
vid2.ROIPosition = [0 0 2592 1944];

% src1.DSPSubregionRight = 200;
% src2.DSPSubregionRight = 200;
% 
% src2.DSPSubregionBottom = 200;
% src1.DSPSubregionBottom = 200;

%Triggereinstellungen
src1.TriggerSelector = 'FrameStart';
src2.TriggerSelector = 'FrameStart';

src1.TriggerActivation = 'RisingEdge';
src2.TriggerActivation = 'RisingEdge';

src1.TriggerMode = 'On';
%src1.TriggerMode = 'Off';
src2.TriggerMode = 'On';

src1.TriggerSource = 'Software';
src2.TriggerSource = 'Line1';

triggerconfig(vid1, 'manual');
triggerconfig(vid2, 'hardware', 'DeviceSpecific', 'DeviceSpecific');
%triggerconfig(vid2, 'manual');
src2.TriggerDelayAbs = 5000;


vid1.FramesPerTrigger = 10;
vid2.FramesPerTrigger = 10;

vid1.TriggerRepeat = 1;
vid1.LoggingMode = 'disk&memory';

diskLogger1 = VideoWriter('C:\Users\itv\Desktop\PIV-Demonstrator\P1.avi', 'Grayscale AVI');
vid1.DiskLogger = diskLogger1;

vid2.TriggerRepeat = 1;
vid2.LoggingMode = 'disk&memory';

diskLogger2 = VideoWriter('C:\Users\itv\Desktop\PIV-Demonstrator\P2.avi', 'Grayscale AVI');
vid2.DiskLogger = diskLogger2;

%Aufnahme
disp('Start')
start(vid1);
start(vid2);

% disp('isrunning(vid1)')
% isrunning(vid1)
% disp('isrunning(vid2)')
% isrunning(vid2)
% 
% disp('isloggin(vid1)')
% islogging(vid1)
% disp('isloggin(vid2)')
% islogging(vid2)

disp('Trigger')
trigger(vid1);

% disp('isrunning(vid1)')
% isrunning(vid1)
% disp('isrunning(vid2)')
% isrunning(vid2)
% 
% disp('isloggin(vid1)')
% islogging(vid1)
% disp('isloggin(vid2)')
% islogging(vid2)

disp('Pause')
pause(10)

disp('Stop')
%stop(vid1)
%stop(vid2)

[data1, ts1] = getdata(vid1, vid1.FramesAvailable);
[data2, ts2] = getdata(vid2, vid2.FramesAvailable);

% delete(vid1)
% clear vid1
% delete(vid2)
% clear vid2