我正在努力寻找这个Timer问题的简单解决方案。 我希望计时器更新整个工作区,以便我可以重新使用更新的值在GUI上显示。
这是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
目前,TIMER内部的句柄正在更新,但不在WORKSPACE中更新,因此在GUI的其余部分中无法访问/保存更新的HANDLES。
我可以使用GLOBAL VARIABLE,但据我所知,它效率不高,可能会减慢程序速度。
我还可以从计时器内部更新GUI,但我认为拥有2个计时器会更有意义。一个用于处理网络数据流,另一个用于处理GUI界面。
是否有人知道如何让计时器在每个时间段内更新整个WORKSPACE中的HANDLES?
感谢您的帮助: - )
答案 0 :(得分:0)
我不会在我的GUI中使用句柄和guidata,所以我可能在这里错了 - 但我怀疑你错过了对guidata
的调用:
guidata ( uiObject, handles )
这需要确保在核心图中更新句柄 - >所以所有回调等都可以拿起来。