How to gracefully terminate continiuous script?

7 vues (au cours des 30 derniers jours)
Jostein Holmgren
Jostein Holmgren le 25 Oct 2017
I have a script which takes real-time input from an external device. The script begins with establishing a connection to this device, then does some real-time data processing and ends with shutting down said connection. I would like to be able to gracefully terminate the script by user input, that is have the script stop what it's doing, run the shut-down procedures before terminating completely. Currently, I can press ctrl+c to terminate the program, but this causes errors on subsequent attempts to reconnect to the device.

Réponses (2)

Rik
Rik le 25 Oct 2017
What I have done in a GUI is adding a button that is only visible when a callback is active. Each iteration of the loop I first check if the button has been clicked, if so, I exit the loop.

Jos (10584)
Jos (10584) le 25 Oct 2017
Rik provided a nice solution. If you do not have a GUI you might be able to use my STOPLOOP function in your code (which creates a very simple GUI itself): https://uk.mathworks.com/matlabcentral/fileexchange/20455-stoploop--v1-0--jun-2008-

Catégories

En savoir plus sur Standard File Formats dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by