How to Update Data automatically in a UITABLE GUI?

Hello,
I am not very used to the GUI framework of MATLAB. I have a GUI, a uitable which is linked to a table situated in my workstation in which the data are constantly changing. So I want to know how I can make the data which are shown in the GUI table, dynamic with a timer say a refresh each 10 seconds.
From what I can see, you need to initiate a timer then a callback?
I would really appreciate any help.
Thank you
D.

Answers (1)

Yes, a timer with a callback that fetched the latest information and set() the Data property of the uitable should work.

3 Comments

thanks Walter.
Can you please tell me where to put these things, Timer in the OpeningFcn and CallBack in the CellEditCallback?
Can you help me on the CallBack instructions, with the set please?
OpenFcn is as good a place as any when you are using GUIDE. The Callback would be a property you set for the timer object. It would have nothing to do with CellEditCallback. It should call a function that grabs the data from the table on your workspace (I am presuming that is a database access or perhaps an ActiveX call to Excel).
guifig = ancestor(hObject, 'figure');
timerobj = timer(.....);
set(timerobj, 'Callback', @(src,evt) Update_From_Table(src, evt, guifig));
...
function Update_From_Table(hObject, event, guifig)
handles = guidata(guifig);
do something to get the update from the workspace table into newdata
set(handles.uitable1, 'Data', newdata);
Thanks Walter. I am very new to GUI coding, so I am still a bit stuck on that, the objective of the code is to import changing values from a table in the workspace, my code is like this
guidata(hObject, handles)
guifig = ancestor(hObject, 'figure')
timerobj = timer('TimerFcn', 'stat=false; disp(''Lag'')',...
'StartDelay',3);
start(timerobj)
function Callback(obj, event, string_arg)
txt1 = ' event occurred at ';
txt2 = string_arg;
event_type = event.Type;
event_time = datestr(event.Data.time);
msg = [event_type txt1 event_time];
disp(msg)
disp(txt2)
set(timerobj, 'Callback', @(src,evt) Update_From_Table(src, evt, guifig))
function Update_From_Table(hObject, event, guifig)
handles = guidata(guifig)
newdata = evalin('base', 'JadeVine')
set(handles.JadeVineCapitalPortfolio, 'Data', newdata);
But there is an issue on the Set command, it does not recognise the Callback. Normally, when i will be be changing a value in XL, the same value is being changed in my MATLAB workspace, then hopefully refreshed on the GUI.Thats why i need a timer to refresh the table each 3 to 5 seconds... All of this is in the OpenFcn section....
Could you please give some insigts please?
Thanks very much
D

Sign in to comment.

Categories

Find more on Interactive Control and Callbacks in Help Center and File Exchange

Asked:

on 11 Aug 2015

Commented:

on 12 Aug 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!