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 :

*Incrementer* les noms des ports d´une carte


Sujet :

Simulink

  1. #21
    Nouveau Candidat au Club
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Okay merci oui c´est bien l´objectif,
    donc il faut modifier le coeur de la fonction aussi; et le fait que je n´ai pas pu relier directement au bloc write0, contenant cette fonction, le paramètre 'InputSignalNames' et 'S***' n´est pas problématique ?

  2. #22
    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
    Citation Envoyé par Jerome24 Voir le message
    et le fait que je n´ai pas pu relier directement au bloc write0, contenant cette fonction, le paramètre 'InputSignalNames' et 'S***' n´est pas problématique ?
    Je ne sais pas. Pour tout t'avouer je n'ai absolument rien compris à cette partie-là...
    Pour moi ce que dit la documentation c'est que ce paramètre sur le bloc write0 doit te retourner le nom de l'input ie S***.
    J'ai tendance à croire la doc vu que je ne peux tester.
    Après je n'arrive pas à comprendre ce que tu as essayé.

    Un petit conseil : essaye de faire des messages plus courts et aérés, ce sera plus simple à lire.
    Et puis montrer le code que tu as essayé en expliquant bien sur quel bloc tu viens de cliquer lorsque tu utilises GCB.
    Règles du Forum

    Adepte de la maïeutique

  3. #23
    Nouveau Candidat au Club
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    J´essaie d´etre plus clair, et c´est pas simple de simuler quand on voit pas pourquoi ca s´articule pas simplement.

    J´ai laissé joint un Word.
    Et merci pour les infos
    Fichiers attachés Fichiers attachés
    • Type de fichier : doc Doc.doc (247,0 Ko, 71 affichages)

  4. #24
    Nouveau Candidat au Club
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 16
    Points : 1
    Points
    1
    Par défaut Fonction OK je pense mais pas de résultat *visible*
    Bonjour,

    En travaillant sur la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function fcn(u)
    eml.extrinsic('writevar2');
    bloc_courant=gcb;
    nom_entree=get_param(bloc_courant,'InputSignalNames');
    writevar2(nom_entree,num2str(u));
    J´ai déjà réglé les problèmes d´input : message d´erreur lors de la simulation (First Input Variablename must be a char...) en modifiant la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    writevar2(nom_entree, num2str(u));
    nom_ entree doit etre un char a priori donc entre ' '.

    Cela fonctionne : après avoir simulé, Matlab me retourne
    Embedded MATLAB parsing for model "bloc"...Done
    Embedded MATLAB code generation for model "bloc"....Done
    Embedded MATLAB compilation for model "bloc"... 1 Datei(en) kopiert.
    Done
    Mais aussi
    Warning: The model 'bloc' does not have continuous states...
    J´ai vu qu´un (Datei) fichier a été copié : le nom de mon fichier Simulink étant bloc.mdl, il a créé bloc_sfun.mexw32
    Il s´agit d´une S-function je crois : je suis allé exporer mais rien de spécial.

    Suis-je dans la bonne direction?
    Ce que je comprend pas : comment ma valeur peut elle etre modifiée en simulant avec cette meme fonction ? : en utilisant les modifications que tu as proposé Caro**.

    Merci encore et j´espère avoir des infos

  5. #25
    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
    Tiens c'est bizarre nom_entree te retourne donc finalement un char et pas un cell.
    Bon pourquoi pas ?
    Juste par curiosité tu pourrais quand même enlever le ; dans la ligne ci-dessous, normalement tu devrais alors avoir nom_entree qui s'affiche dans le command window quand la fonction sera appelée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom_entree=get_param(bloc_courant,'InputSignalNames')
    Après :
    Citation Envoyé par Jerome24
    Ce que je comprend pas : comment ma valeur peut elle etre modifiée en simulant avec cette meme fonction ? : en utilisant les modifications que tu as proposé Caro**.
    Rien compris De quelle valeur tu parles ?
    Règles du Forum

    Adepte de la maïeutique

  6. #26
    Nouveau Candidat au Club
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 16
    Points : 1
    Points
    1
    Par défaut Valeur : 'S000E20.0'
    Bonjour,

    Quand je parle de valeur : c´est de ma valeur à modifier 'S***' dont il est question.
    Oui, en enlevant le ' ; ' sur la ligne associée à nom_entree, Command Window retourne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    nom_entree =
        {''}
    c´est à dire le meme résultat que lorsque je tape:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    get_param(gcb, 'InputSignalNames')
    J´ai entré pour le moment la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function fcn(u)
    eml.extrinsic('writevar2');
    bloc_courant=gcb;
    nom_entree=get_param(bloc_courant,'InputSignalNames')
    writevar2('nom_entree',num2str(u));
    à la place de la fonction d´origine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function fcn(u)					
    eml.extrinsic('writevar2');
    writevar2('S000E20.0',num2str(u));
    Ma question de compréhension était:
    Comment cette fonction peut s´auto-modifier (changer 'S000E20.0' en 'S000E20.1') ?
    Etait-ce le 1er niveau : création du fichier (S-fonction : bloc_sfun.mexw32) à réutiliser peut-etre?
    Avant je pensais devoir absolument écrire une fonction extérieure au bloc, et qui ordonne à ce bloc de modifier la valeur 'S***' .
    Merci pour les retours d´infos

  7. #27
    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
    Bon apparemment le paramètre InputSignalNames ne renvoie pas ce qu'il faut. C'est bizarre

    Pour ta question : non ce n'est pas la peine a priori de modifier tes fonctions "à la main" ou par une fonction externe pour que le nom soit écrit en dur : c'est quand même mieux si tu peux écrire la même pour tous tes blocs.

    Mais pour cela il faut réussir à récupérer cette $ù*$$$* de valeur à partir de gcb qui normalement dans ta fonction est le bloc write* (on aurait le même problème pour la fonction externe de toute façon...)

    Là je dois dire que je n'ai plus d'idée...désolée
    Règles du Forum

    Adepte de la maïeutique

  8. #28
    Nouveau Candidat au Club
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    16
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 16
    Points : 1
    Points
    1
    Par défaut
    Et oui,
    Je souhaite écrire une seule fonction pour modifier plusieurs fonctions : clair.
    Mais fondamentalement c´est étrange que le paramètre 'InputSignalNames' ne retourne pas la fameuse 'S***'
    Et ce serait incorrect d´attribuer cette valeur, car elle doit etre variable :
    S000E20.0 à S000E20.7
    hmm - merci quand meme

Discussions similaires

  1. Récupérer les noms des ports COM actifs
    Par snymix dans le forum C#
    Réponses: 2
    Dernier message: 15/03/2010, 10h35
  2. [JTable] les noms des colonnes de s'affichent pas
    Par macben dans le forum Composants
    Réponses: 6
    Dernier message: 25/04/2008, 11h03
  3. ShellListView : comment récupérer les noms des fichiers?
    Par Lolo1988 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 11/12/2005, 23h19
  4. Réponses: 2
    Dernier message: 03/02/2005, 13h21
  5. [VBA]Obtenir les noms des polices disponibles
    Par xp dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/03/2004, 15h39

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