In App Designer I'm having trouble assigning a function handle to TimerFcn.
13 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Steve Boose
el 29 de Nov. de 2018
Comentada: Greg
el 30 de Nov. de 2018
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 comentarios
Respuesta aceptada
Greg
el 30 de Nov. de 2018
Editada: Greg
el 30 de Nov. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Develop Apps Using App Designer en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!