|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre émérite
![]() Mathieu MartinezAcousticien Inscription : août 2009 Messages : 641 ![]() |
Bonjour,
suite à un problème rencontré je poste ce message. L'idée est que la fermeture d'une fenêtre peut prendre un certain temps et empêcher la bonne exécution de fonctions qui devraient s'exécuter ensuite (en supposant l'appel d'une fenêtre suivi de l'attente d'une réponse). Le cas précis dans lequel j'ai rencontré ce problème est le suivant : lors de l'exécution du programme une nouvelle fenêtre peut être ouverte (par exemple demande de validation d'action). Une fois la réponse de l'utilisateur obtenue (clic sur OK), la fenêtre se ferme et le programme doit envoyer des données via le port série. Problème : pour quelques-unes des premières trames Matlab renvoie un 'Timeout' (normalement Matlab attend une réponse dans les 5s mais ne la voit pas). Ce problème est éliminé en forçant le raffraîchissement graphique dans la fonction de fermeture ou avant l'envoi de trames ou à tout autre endroit adéquat. ex dans le callback d'un bouton de validation : ou dans le programme principal Code :
Si quelqu'un sait exactement ce que fait Matlab lors de la fermeture d'une fenêtre ou à des remarques à faire sur les problèmes de raffraîchissement graphiques, elles sont les bienvenues. |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Aurélien QueffurustMATLAB Geek ! Inscription : juin 2006 Messages : 1 778 ![]() |
Tout est résumé dans cette note technique:
How do I set up a uicontrol callback to interrupt a routine? et explique pourquoi drawnow résout ce type de problème. Et c'est là que la propriété "Interruptible" des callbacks devient intéressante pour gérer les priorités des actions. |
|
00
|
Copyright © 2000-2013 - www.developpez.com