#matlab
#matlab
Вопрос:
У меня есть дескриптор ActiveX для motorcontroller (h_TDC), который позволяет мне регистрировать несколько событий. Я хочу использовать ‘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 amp;amp; i < MAX_ITER
.....
imshow(blubb) %<-- without this the handler is executed only after while-loop
end
function MyMoveCompleteHandler(varargin)
move_completed = true;
end
end
Комментарии:
1. Попробуйте
drawnow
2. drawnow помог. Большое спасибо, excaza!