Passing arguments into timer stopFCN in gui
이전 댓글 표시
Hello all,
I'm having a little confusion on using a timer in data acquisition GUI. I was hoping someone could give me a little help with the syntax. Basically I have code that acquires data and looks like this
function acquireButton_Callback(hObject, eventdata, handles)
sweepsPerTrigger = str2double(get(handles.editSweepsPerTrig, 'String'));
inter_stimulus_interval = str2double(get(handles.editISI, 'String'));
acquisitionTimer = timer;
acquisitionTimer.ExecutionMode = 'fixedRate';
acquisitionTimer.TasksToExecute = sweepsPerTrigger;
acquisitionTimer.Period = inter_stimulus_interval;
acquisitionTimer.StopFcn = @acquisitionTimerCleanup; %(acquisitionTimer, hObject, eventdata, handles);
acquisitionTimer.TimerFcn = @(myTimerObj, thisEvent)startAcquisition(hObject, eventdata, handles);
start(acquisitionTimer);
function acquisitionTimerCleanup(acquisitionTimer,~)
disp('Done Acquiring');
delete(acquisitionTimer);
set(handles.acquireButton, 'String', 'Acquire');
set(handles.acquireButton, 'BackgroundColor', 'g');
The issue that I have is that the stopFCN cannot access the handles.acquireButton to change the string and background color. How do I go about passing "hObject, eventdata, handles" to the stopFCN so that it can modify them.
Thank you tremendously for the help. Quentin
채택된 답변
추가 답변 (1개)
Walter Roberson
2014년 3월 3일
Provided that all you need is the button handles and they are not going to change after you configure the timer, then:
acquisitionTimer.StopFcn = @(src, evt) acquisitionTimerCleanup(src, evt, handles);
If you make any changes to the handles structure between the time that you configure the timer and the time the stop function runs, then the above will not work.
카테고리
도움말 센터 및 File Exchange에서 MATLAB Mobile Fundamentals에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!