How do I pass an object into a timer callback function?

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 Kommentar

Jon
Jon am 27 Apr. 2022
I have a similar problem, did you ever find a solution?

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Sean de Wolski
Sean de Wolski am 27 Apr. 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

Weitere Antworten (0)

Kategorien

Mehr zu Code Execution finden Sie in Hilfe-Center und File Exchange

Gefragt:

PW
am 30 Mär. 2018

Kommentiert:

Jon
am 27 Apr. 2022

Community Treasure Hunt

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

Start Hunting!

Translated by