Filter löschen
Filter löschen

Stop the function pause(n)

4 Ansichten (letzte 30 Tage)
Niccolò de Cesare
Niccolò de Cesare am 12 Okt. 2016
Beantwortet: Geoff Hayes am 27 Mai 2019
Hi everybody,
i've a question about pause(n) where n is the time in seconds.
The fragment code where i've the problem is this:
tic
while (~get(handles.pause,'Value')) %toc<=60 &&
writePosition(s,maxTravel);
pause(ts);
writePosition(s,INITPOS);
pause(ts);
cycle = cycle+1;
cycleTotal(day+1) = cycle+1;
[time,minutes,hours,day] = timerFun(minutes,hours,day,toc);
set(handles.status,'String',time);
pause(ttot);
end
in fact i use the 'Value' of ToggleButton, named pause, to stop the while cycle, but the pause(ttot) varies (i.e. 1 second or 20 seconds), obviously if the waiting time is short the ToggleButton 'Value' is checked frequently, otherwise if the waiting time is long when i push the ToggleButton on the GUI i must wait the end of pause before the while-cycle 'Value' is invoked.
Is there a trick to stop pause() function or other method to check the ToggleButton 'Value' independently from pause function?
  3 Kommentare
Niccolò de Cesare
Niccolò de Cesare am 13 Okt. 2016
Sorry,
I've omitted pre and post code at cycle. This piece of code is into a GUI and user, through a text box, sets the delay and start the process with a button. As I said the delay varies and thus the togglebutton check is slow if the pause(ttot) is long. If ttot=20, for example and I press togglebutton when the pause is just started I must wait 20 seconds before the check happen, therefore I'm interested to know if there's a way to stop the pause function or to make a togglebutton check in other manner.
Tonghui Zhang
Tonghui Zhang am 24 Mai 2019
Hi,
I am confronted with this problem now. When I quit GUI, the pause function is still working. I am wondering if there is any method to terminate it when the GUI is close(except ctrl+c)?
Thanks in advance

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Geoff Hayes
Geoff Hayes am 27 Mai 2019
Rather than using a while loop in your GUI code, use a timer which you can then programmatically start and stop. See https://www.mathworks.com/matlabcentral/answers/284202-how-to-plot-a-real-time-signal-with-axes-automatically-updating for one such example.

Kategorien

Mehr zu MATLAB Compiler finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by