In App Designer I'm having trouble assigning a function handle to TimerFcn.
17 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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
0 Kommentare
Akzeptierte Antwort
Greg
am 30 Nov. 2018
Bearbeitet: Greg
am 30 Nov. 2018
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)
2 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Develop Apps Using App Designer finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!