Accessing an actxserver COM object with a GUI

Hello,
I am trying to create a GUI that controls a third party program, which controls a camera.
I create the COM object as an activeX server as follows:
cameraHandle = actxserver('maxim.ccdcamera');
Now this object is in the workspace and I can interact with this object and make it do whatever I wish, no problem.
For example, the command for the camera to take a picture is:
invoke(cameraHandle,'Expose',exposureTime);
Now I would like to make one of the buttons in my GUI, do the same thing.
The code for the button is:
function buttonExpose_Callback(hObject, eventdata, handles)
% hObject handle to buttonExpose
% handles structure with handles and user data
% some commands here
How can I make this function act on the object cameraHandle?
Thanks!

 Respuesta aceptada

Geoff Hayes
Geoff Hayes el 9 de En. de 2015
Dmitry - if you wish to use the same code in your GUI, then instantiate the cameraHandle in the _OpeningFcn of the GUI, save it to the handles structure, and then reference it in your pushbutton code. Try the following
function myGui_OpeningFcn(hObject, eventdata, handles, varargin)
% Choose default command line output for untitled3
handles.output = hObject;
% create the COM object
handles.cameraHandle = actxserver('maxim.ccdcamera');
% Update handles structure
guidata(hObject, handles);
And then in your push button callback, just do
function buttonExpose_Callback(hObject, eventdata, handles)
exposureTime = 42;
invoke(handles.cameraHandle,'Expose',exposureTime);
Note that any callback that receives the handles structure as an input parameter, can reference the cameraHandles via
handles.cameraHandle

1 comentario

Dmitry
Dmitry el 9 de En. de 2015
Geoff,
You're absolutely right. I was trying to figure out how to add the camera handle to the handles structure of the gui. This is the way to do that.
It works fine now. Thanks again!

Iniciar sesión para comentar.

Más respuestas (1)

Abdur Rosyid
Abdur Rosyid el 3 de Feb. de 2018

0 votos

This is interesting. I also need to do the same task, but in AppDesigner. Furthermore, I need to call the object in different callbacks. How can I do this in AppDesigner? Thank you.

1 comentario

Geoff Hayes
Geoff Hayes el 6 de Feb. de 2018
Abdur - this is not an answer to the question so please delete and post as a comment or create a new question. Please provide sufficient details.

Iniciar sesión para comentar.

Categorías

Etiquetas

Preguntada:

el 8 de En. de 2015

Comentada:

el 6 de Feb. de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by