2015-04-27 33 views
0

我正在努力尋找這個Timer問題的簡單解決方案。 我想定時器更新整個工作區,以便我可以重新使用更新後的值在GUI上顯示。定時器外部的Matlab更新變量

這裏是Matlab的計時器,

handles.server_timer = timer('TimerFcn',@timer_server,'UserData',handles); 
start(handles.server_timer); 

它調用函數timer_server.m(波紋管):

function timer_server(obj,~) 

    handles=obj.UserData; % Get User Timer input data 

    % GET DATA & GENERATE/UPDATE OBJECT 
    [handles.SERVER,handles.CLIENT,handles.OBJ] = Lib_Zig.zigREAD(handles.SERVER,handles.CLIENT,handles.OBJ); 

    obj.UserData=handles; % Set User Timer output data 

end 

目前該手柄正在更新的定時器內,但不是在工作區, GUI的其餘部分不能訪問/保存更新的手柄。

我可以使用GLOBAL VARIABLE,但是從我聽到的信息來看,它效率不高,可能會減慢程序運行速度。

我也可以從定時器內部更新GUI,但我認爲這會讓2個定時器更有意義。一個用於處理網絡數據流,另一個用於處理GUI界面。

有沒有人有關於如何讓計時器在整個工作空間內更新手柄的想法?

謝謝您的幫助:-)

回答

0

我不使用手柄和guidata在我的GUI的,所以我可能是錯在這裏 - 但我懷疑你缺少一個電話guidata

guidata (uiObject, handles) 

這是需要確保句柄在覈心圖中更新 - >以便所有回調等都可以將其提取出來。

+0

謝謝。問題是我沒有定時器函數中的uiObject – k4lls

+0

'handles'結構中沒有(某處)嗎? – matlabgui

+0

我想我可以將它設置爲任何圖形對象?但我不知道它是否非常優雅。 – k4lls