IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Simulink Discussion :

Détecter si un modèle Simulink est ouvert


Sujet :

Simulink

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 209
    Points : 78
    Points
    78
    Par défaut Détecter si un modèle Simulink est ouvert
    bonjour,

    Existe il une fonction sous Matlab qui retourne Vrai si un model simulinkk est ouvert ?

    je connais la focntion OPEN_SYSTEM qui permet d'ouvrir un model simulink, mais j'aimerais bien, avant d'ouvrir le model, s'il est déjá ouvert ou pas.

    Voilà,
    Merci

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    Pourquoi ca? Si tu lances OPEN_SYSTEM, il t'ouvrira le modèle s'il n'est pas ouvert et te l'affichera s'il est déjà ouvert donc ca ne devrait pas poser de problème particulier, non?

    Bonne journée,
    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 209
    Points : 78
    Points
    78
    Par défaut
    en fait, je mais OPEN_SYSTEM dans une boucle. et dans donc à chaque repassage par la boucle, il me réaffiche le model, ce qui est genant... donc, avant de réafficher le model, j'aimerai bien tester s'il est déjà ouvert, auquel cas, je n'ai pas besoin de le réafficher...

    voilà,

  4. #4
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Si tu ne veux pas que le modèle s'affiche tu devrais peut-être plutôt utiliser LOAD_SYSTEM (enfin ca dépend surtout de l'usage que tu en fais ensuite...)

    Sinon tu peux peut-être bricoler avec FIND_SYSTEM, s'il te renvoit une erreur c'est que le modèle n'est pas ouvert...
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 209
    Points : 78
    Points
    78
    Par défaut
    effectivement, load_system renvoie une erreur si le modèle n'est pas ouvert, mais j'aimerai plutot envoyer un boolean, afin de l'utiliser dans une condition if.

    je ne peux pas faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if load_system(modelName)
    ......
    end

  6. #6
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Je ne peux pas tester mais FIND_SYSTEM est la commande à utiliser.

    Duf semble dire qu'il retourne une erreur si le modèle n'est pas ouvert.
    A tester quand même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if isempty(find_system(modelname))
       disp('modele non ouvert');
    else
       disp('modele ouvert');
    end
    Si vraiment ça plante dans le cas où modelname n'est pas ouvert, il y a 2 possibilités :
    - bourrin : utiliser TRY/CATCH
    - plus propre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    allMod = find_system('type','block_diagram');%renvoit la liste de tous les modèles ouverts, si je ne me trompe sous forme de tableau de cellules
    estOuvert = any(strcmp(modelname,allMod));%1 si ouvert 0 sinon
    [EDIT] Une autre fonction à tester trouvée dans la liste des fonctions : bdIsLoaded
    Règles du Forum

    Adepte de la maïeutique

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 209
    Points : 78
    Points
    78
    Par défaut
    Ok, merci.

    je crois que je vai m'en passer.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Détecter si une connection est ouverte !
    Par Sancha dans le forum C#
    Réponses: 5
    Dernier message: 16/03/2010, 11h08
  2. comment détecter qu'une fenetre est ouverte?
    Par canary dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 15/05/2008, 14h22
  3. détecter si une fenètre est ouverte et si oui la fermer
    Par malabarbe dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 29/02/2008, 11h36
  4. Comment détecter si une session Windows est ouverte?
    Par yosthegost dans le forum Delphi
    Réponses: 3
    Dernier message: 23/05/2006, 17h42
  5. Détecter qu'une page HTML est ouverte dans une frame
    Par Pigoulou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 10/01/2006, 14h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo