How do I pass an object into a timer callback function?
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
The main part of my code has an object called cam. In the middle of the code, I want to call a timer to execute [~,b]=cam.Aqquisition.IsFished every second and output b.
cam = uc480.Camera;
%... unrelated
t = CheckTimer;
start(t)
In a separate file, I have
function t=CheckTimer
t = timer;
t.TimerFcn = @check;
t.Period = 1;
t.TasksToExecute = 10;
t.ExecutionMode = 'fixedSpacing';
end
function check(~,~)
[~,b]=cam.Acquisition.IsFinished
end
The error message is: Undefined variable "cam" or class "cam.Acquisition.IsFinished". if I put cam.Acquisition.IsFinished in main part of my code, it works fine.
cam = uc480.Camera;
%... unrelated
[~,b]=cam.Acquisition.IsFinished
How do I pass the object "cam" into a timer callback function and output "b"?
1 commentaire
Réponse acceptée
Sean de Wolski
le 27 Avr 2022
Pass cam in with an anonymous function when you create the timer
cam = camera
t = timer(TimerFcn=@(~,~)checkFinished(cam))
function checkFinished(cam)
whatever_with(cam)
end
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Interactive Control and Callbacks dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!