How to control button in GUI Start and Stop process

when I press stop button process is stop all and when press start button again process is begin again

1 Comment

provide more details, we don't understand like what to start or stop lot of assumptions

Sign in to comment.

 Accepted Answer

There is no way to use the GUI to interrupt a routine without its cooperation.
Your stop_Callback should set a value in a shared area. Your realtimefunction routine should sometimes fetch the current version of the value, and exit if it finds it has been asked to stop.
For example,
function start_Callback(hObject, eventdata, handles)
set(hObject, 'UserData', false);
realtimefunction(handles);
function stop_Callback(hObject, eventdata, handles)
set(handles.start, 'UserData', true);
function realtimefunction(handles)
...
while true
drawnow(); %give a chance for interrupts
need_to_stop = get(handles.start, 'UserData');
if ~isempty(need_to_stop) && need_to_stop;
break;
end
...
end
%now clean up as needed

9 Comments

How can I do it anything else? follow in your code?
You currently have
function realtimefunction(handles)
and it must already loop around getting new data and processing it. I show here how you can have the stop button set an indicator that you want to stop, and I show here how to have the realtimefunction check that indicator. This should be a minor change to the code you already have.
Post your original code for function realtimefunction
Adjusted code enclosed. I did not attempt to debug your classification code.
Note: I did, however, follow the comment in the code that said it had to stop after 100 frames; I added in appropriate variables to do that. I did that in addition to adding in the code for the stop button, so the routine will stop if it reaches 100 frames or if the stop button is pushed.
Your code reads two frames each time, so 100 frames is 50 iterations of the loop. I cannot see any good reason for the code to read 2 frames each time: I think you should be reading 1 frame at a time and comparing to the immediately preceding frame instead of reading pairs of frames and computing the second one relative to the first of the pair.
stop when find A twice program is stop process
That is not what the comments say. As you inform me that you are having problems executing the code, I must presume that the comments describe the way that the code is intended to operate and that any code that does not work that way is incorrect code that you were asking me to repair.
In any case you can easily remove the test I put in about framecount < 100
Hello,
Have the same problem but I did not catch nothing from above. Where I can read more about starting and stopping real time functions in APP designer?
Best

Sign in to comment.

Categories

Products

Community Treasure Hunt

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

Start Hunting!