필터 지우기
필터 지우기

In App Designer I'm having trouble assigning a function handle to TimerFcn.

조회 수: 32 (최근 30일)
Steve Boose
Steve Boose 2018년 11월 29일
댓글: Greg 2018년 11월 30일
I'm kind of a newby with App Designer and having trouble assigning a function handle to TimerFcn.
I know the Timer is set up properly because the line:
app.myTimer.TimerFcn = @(~,~)disp('do something'); works fine.
But when I use:
app.myTimer.TimerFcn = @Timer_func; I get "Undefined function 'Timer_func' for input arguments of type 'timer' ".
But the function is in fact defined:
methods (Access = private)
function Timer_func(app)
if app.tval == "Green"
app.tval = 'Red';
elseif app.tval == "Red"
app.tval = 'Green';
end
app.TimerLamp.Value = app.tval;
end
end

채택된 답변

Greg
Greg 2018년 11월 30일
편집: Greg 2018년 11월 30일
You missed the second half of the error message: "Undefined function 'Timer_func' for input arguments of type 'timer'." Apps in AppDesigner are classdefs, meaning the app is a class. When you define a method inside the .MLAPP file, you've defined it for "input arguments of type [your app]," which means variables like timers can't see that function. Move Timer_func out of the .MLAPP into its own .M or .MLX file on your MATLAB path.
Or, since you appear to need app itself inside the timer callback, use
@(~,~) Timer_func(app)

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Develop Apps Using App Designer에 대해 자세히 알아보기

태그

제품


릴리스

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by