在while循环期间未调用MATLAB事件处理程序

时间:2016-10-21 14:33:57

标签: matlab

我有一个用于motorcontroller(h_TDC)的ActiveX句柄,它允许我注册一些事件。我想利用'MoveComplete'事件。 在我的主函数中,我循环直到切换标志。我想在我之前注册的eventhandler中设置标志。它是一个嵌套函数,因此它共享同一个工作区,标志位于。

似乎事件被正确触发,但只在while循环之后处理,除非我绘制一些东西,例如与imshow。这对我来说没有意义。 如何在循环期间不进行绘图的情况下使处理“中断”?

如果我不使用imshow,则脚本在MAX_ITER之后终止。如果我使用imshow,处理程序会提前终止它(如所希望的那样)

function Blubb
    MAX_ITER = 100;
    move_completed = false;
    ....
    h_moveComplete = @MyMoveCompleteHandler;
    h_TDC.registerevent({'MoveComplete' h_moveComplete});  % h_TDC is our activeX handle
    figure;
    while ~move_completed && i < MAX_ITER
        .....
        imshow(blubb)  %<-- without this the handler is executed only after while-loop
    end

        function MyMoveCompleteHandler(varargin)
            move_completed = true;
        end
end

0 个答案:

没有答案