我怎么能使用一个事件触发的COM对象调用一个方法的一个类,在COM对象没有一个回调函数?

5视图(30天)
我使用一个com服务器连接测量装置:
ophirApp = actxserver ( “OphirLMMeasurement.CoLMMeasurement” )
当设备准备读出它触发事件DataReady:
事件(ophirApp)
DataReady =无效DataReady (int32 hDevice int32通道)
当事件被触发时,我想有一个 侦听器, 以来的一个不同的对象调用一个方法 ophirApp尚未建成的回调函数 类似的:
el = addlistener (ophirApp, “DataReady” ,@handleEvent);
在哪里 @handleEvent不是的一种方法 ophirApp
有办法不?
1评论
Yuxiao翟
Yuxiao翟 2023年3月15日
或许你可以定义一个新类,它有一个属性来存储您的phirApp。
这个新类也有一个方法,触发DataReady ophirApp。
然后您可以创建一个处理新类的一个实例化的方法,通过处理addlistener

登录置评。

接受的答案

Abhijeet
Abhijeet 2023年4月6日
你好,
创建一个监听器调用一个方法时,不同的对象 DataReady 触发事件,您可以使用“ addlistener” 像你提到的功能。
下面是一个示例代码片段演示:
%创建一个测量装置的实例
ophirApp = actxserver (“OphirLMMeasurement.CoLMMeasurement”);
%定义一个函数处理方法你想触发事件时调用
handleEvent = @myEventHandler;
%为DataReady事件创建一个监听器
侦听器= addlistener (ophirApp,“DataReady”@ (src evt) handleEvent (evt src obj));
% obj是对象的方法你想触发事件时调用
%开始测量
ophirApp.StartAllChannels;
%等待事件被触发
%当事件被触发时,它将调用obj的handleEvent方法
%通过删除侦听器进行清理
删除(听众);
注意:src参数中 handleEvent 方法将 ophirApp 触发事件的对象, evt 参数将是一个对象包含关于事件的信息。
希望这个解决您的查询。

更多的答案(0)

类别

找到更多的在在MATLAB中使用COM对象帮助中心文件交换

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!