How do I pass an object into a timer callback function?
10 次查看(过去 30 天)
显示 更早的评论
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"?
采纳的回答
Sean de Wolski
2022-4-27
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
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Interactive Control and Callbacks 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!