I cannot access the handles in a timer callback function
1 回表示 (過去 30 日間)
古いコメントを表示
I have a GUI with a timer in it. I would like to be able to update a plot every .1 seconds, however, the timer function gives me the error:
Error while evaluating TimerFcn for timer 'timer-3'
Reference to non-existent field 'concMarker'
Can anyone help me fix this? I have been reading some other posts and people have been saying you need to update the handles structure, which I am not quite sure how to do (though when I have tried copying other people's code to do so it did not work either).
axis = findobj(PumpRateGuiDisplay,'Type','axes');
timerData = timer('TimerFcn',@timerFunction,...
'Period',.1,'ExecutionMode','FixedRate','BusyMode','Drop',...
'TasksToExecute',endTime*10 + 1,'Tag','timerData');
function timerFunction(hObject,eventData)
handles = guihandles(PumpRateGuiDisplay);
handles.cocnMarker = plot(axis,NaN,NaN,'r*');
timeElapsed = get(hObject,'TasksExecuted')-1;
if timeElapsed ~= 0
set(handles.concMarker,'XData',times(int64(timeElapsed*.1/timeIncrement)),'YData',concLeftVent(int64(timeElapsed*.1/timeIncrement)),'*');
end
end
Thanks in advance for the help!
0 件のコメント
採用された回答
Walter Roberson
2017 年 7 月 30 日
handles.cocnMarker = plot(axis,NaN,NaN,'r*');
set(handles.concMarker,'XData',times(int64(timeElapsed*.1/timeIncrement)),'YData',concLeftVent(int64(timeElapsed*.1/timeIncrement)),'*');
Compare the name of the handle carefully between those two lines.
4 件のコメント
Walter Roberson
2017 年 7 月 30 日
編集済み: Walter Roberson
2017 年 7 月 30 日
This was really obscure, and I had no idea that it happened.
I tend not to use imshow() because it changes too many properties for my liking, so I had never happened to encounter this before. It took digging.
I can see from the code that the behaviour is intended, but I filed a bug report anyhow to at least get it mentioned in the tips section.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Specifying Target for Graphics Output についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!