function varargout = aufnehmen_speichern(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @aufnehmen_speichern_OpeningFcn, ...
'gui_OutputFcn', @aufnehmen_speichern_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function aufnehmen_speichern_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
hForm = gcf;
h = waitbar(0,'Initializing...');
set(0, 'CurrentFigure', h);
set(0, 'CurrentFigure', hForm);
clc;
imaqreset;
handles.vid1 = videoinput('gige', 1,'Mono8');
handles.vid2 = videoinput('gige', 2,'Mono8');
waitbar(0.20,h,'Setting Videoinput...');
src1 = getselectedsource(handles.vid1);
src2 = getselectedsource(handles.vid2);
waitbar(0.35,h,'Setting Resources...');
src1.AcquisitionFrameRateAbs = 30.000300003;
src2.AcquisitionFrameRateAbs = 30.000300003;
set(handles.vid1,'FramesPerTrigger',Inf);
set(handles.vid2,'FramesPerTrigger',Inf);
waitbar(0.45,h,'Setting FramesPerTrigger...');
triggerconfig(handles.vid1,'hardware','DeviceSpecific','DeviceSpecific');
triggerconfig(handles.vid2,'hardware','DeviceSpecific','DeviceSpecific');
set(handles.vid1,'TriggerRepeat',inf);
set(handles.vid2,'TriggerRepeat',inf);
waitbar(0.6,h,'Setting Triggerconfig...');
src1.TriggerSelector = 'FrameStart';
src2.TriggerSelector = 'FrameStart';
src1.TriggerSource = 'Line1';
src2.TriggerSource = 'Line1';
waitbar(0.75,h,'Setting TriggerActivation...');
src1.TriggerActivation = 'FallingEdge';
src2.TriggerActivation = 'FallingEdge';
src1.TriggerMode = 'on';
src2.TriggerMode = 'on';
handles.vid1.LoggingMode = 'disk';
handles.vid2.LoggingMode = 'disk';
waitbar(0.80,h,'Setting Image Handle...');
vidRes = handles.vid1.VideoResolution;
imWidth = vidRes(1);
imHeight = vidRes(2);
nBands = handles.vid1.NumberOfBands;
handles.hImage1= image(zeros(imHeight,imWidth,nBands));
setappdata(handles.hImage1,'UpdatePreviewWindowFcn',@mypreview_fcn);
setappdata(handles.hImage1,'HandleToTimestampLabel',handles.text1);
setappdata(handles.hImage1,'HandleToResolutionLabel',handles.text2);
setappdata(handles.hImage1,'HandleToStatusLabel',handles.text3);
setappdata(handles.hImage1,'HandleToFrameRateLabel',handles.text4);
set(handles.save,'Enable','off');
set(handles.restart,'Enable','off');
preview(handles.vid1, handles.hImage1);
waitbar(1,h,'Done...');
delete(h);
guidata(hObject, handles);
function varargout = aufnehmen_speichern_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
set(gcf, 'units', 'normalized', 'outerposition', [0 0 1 1]);
function back_Callback(hObject, eventdata, handles)
delete(handles.vid1);
clear handles.vid1;
delete(handles.vid2);
clear handles.vid2;
close;
main;
function exit_Callback(hObject, eventdata, handles)
delete(handles.vid1);
clear handles.vid1;
delete(handles.vid2);
clear handles.vid2;
close;
function create_files_Callback(hObject, eventdata, handles)
set(handles.create_files,'Enable','off');
set(handles.back,'Enable','off');
set(handles.exit,'Enable','off');
time = datetime('now','TimeZone','local','Format','dd-MM-yyyy''-T-''HH-mm-ss');
setT = char(time);
[file1,path] = uiputfile(['F:\Aufnahmen\test\' 'Hummel-01_',setT,'_links.avi'],'Select the directory for the left Grayscale AVI');
if(isequal(file1,0) || isequal(path,0))
set(handles.create_files,'Enable','on');
set(handles.back,'Enable','on');
set(handles.exit,'Enable','on');
return;
end
file2 = strrep(file1,'links','rechts');
disk1 = VideoWriter(fullfile(path,file1), 'Grayscale AVI');
disk2 = VideoWriter(fullfile(path,file2), 'Grayscale AVI');
handles.vid1.DiskLogger = disk1;
handles.vid2.DiskLogger = disk2;
start(handles.vid1);
start(handles.vid2);
set(handles.save,'Enable','on');
function save_Callback(hObject, eventdata, handles)
stoppreview(handles.vid1);
stoppreview(handles.vid2);
while(handles.vid1.FramesAcquired ~= handles.vid1.DiskLoggerFrameCount)
pause(.1);
end
stop(handles.vid1);
while(handles.vid2.FramesAcquired ~= handles.vid2.DiskLoggerFrameCount)
pause(.1);
end
stop(handles.vid2);
set(handles.save,'Enable','off');
set(handles.restart,'Enable','on');
set(handles.back,'Enable','on');
set(handles.exit,'Enable','on');
function restart_Callback(hObject, eventdata, handles)
if(isrunning(handles.vid1) == 0 && isrunning(handles.vid2) == 0)
choice = questdlg({'Do you really want to restart the acquisition?'},...
'Warning',...
'Yes','No','No');
switch choice
case 'Yes'
set(handles.restart,'Enable','off');
set(handles.create_files,'Enable','on');
set(handles.back,'Enable','on');
set(handles.exit,'Enable','on');
preview(handles.vid1, handles.hImage1);
case 'No'
return;
end
end
function mypreview_fcn(hObject, eventdata, handles)
tst = eventdata.Timestamp;
rsl = eventdata.Resolution;
sts = eventdata.Status;
frr = eventdata.FrameRate;
ts1 = getappdata(handles,'HandleToTimestampLabel');
rs1 = getappdata(handles,'HandleToResolutionLabel');
st1 = getappdata(handles,'HandleToStatusLabel');
fr1 = getappdata(handles,'HandleToFrameRateLabel');
ts1.String = tst;
rs1.String = rsl;
st1.String = sts;
fr1.String = frr;
handles.CData = eventdata.Data;