Bonjour.
Je veux créer une Sfunction Matlab level2 qui utilise en entrées et sorties des variables de type Simulink.IntEnumType.
Les classes de variable sont crées dans un fichier .m de type :
Dans la Sfunction je peux définir un port d’entrée (par ex port 3) qui accepte une variable Enumerée de classe "Valeur_State" en mettant -1 (inherited) pour la propriété «DatatypeID » :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 classdef Valeur_State < Simulink.IntEnumType enumeration Valeur1(0) Valeur2 (1110) Valeur3 (1120) Valeur4 (1130) end end
je peux vérifier que la variable énumérée « entre » dans la Sfunction et je peux utiliser sa valeur dans mon code. Bon...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 block.InputPort(3).DatatypeID = -1; % -1 pour inherited block.InputPort(3).Complexity = 'Real';
Pour un port de sortie, la documentation dit que le « DatatypeID » doit être explicitement défini.
Mon problème est que je ne sais pas trouver le DatatypeID correspondant à la classe « Valeur_State » que j’ai défini dans le fichier.m du même nom.
Donc que faut-il mettre ? Quelle est la fonction/méthode pour trouver le «DatatypeID » ?
(la documentation propose de 0 à 8 pour les types standards de nombre de matlab mais aucune de ces valeurs ne convient pour la variable enumerée définie),
Une bonne semaine que je tourne en boucle dans la documentation sans rien y comprendre.
Merci de m’orienter.
Partager