Les timers peuvent s’avérer très pratique pour exécuter à l’infini un programme.
Maintenant il faut avouer que ce n’est pas simple au premier abord à comprendre le fonctionnement , pour preuve ce graphique :
En R2011b , les exemples ne sont légion mais en revanche en R2013b , il y a un exemple sympatique permettant de bien comprendre le système: http://www.mathworks.com/help/matlab/ref/timerclass.html
(Chapitre timer class -> chapitre Define Custom Callback Functions)
Les .m donnés en exemple avec createErgoTimer permettent de créer un timer qui tourne pendant 8 heures pour vous rappeller toutes les 10 minutes de prendre une pause de 30 secondes
Bref l’information que je voulais vous partager est l’inconvénient majeur des timers est son mode debug: en effet
le point noir des timers est pour débugguer une erreur . En effet seul un dbstop if caught error vous dira exactement quelle ligne pour quel M-file il y a eu une erreur. Maintenant il suffit que dans votre code vous fassiez des try-catch , le dbstop if caught error vous arrêtera au premier try qui échoue (même si vous faites un catch derrière) . Donc ce n’est pas acceptable.
J’ai contacté le support technique à ce sujet , il n’y a pas de solution ! Malheureusement le simple dbstop if error n’a aucun effet sur les timers …
Suivant l’erreur retournée et le volume du code , cela peut être très fastidieux au développeur de jouer au détective pour trouver où le timer a pu échouer surtout quand on a l’habitude d’utiliser le débogueur MATLAB. Je suis vraiment très étonné que dbstop n’a pas un mode spécial pour les timers autre que le « if caught error ». Enfin bon j’ai remonté l’info et j’espère que la R2014a aura cette fonctionnalité.