04-22-2013 01:07 PM - modifié 04-22-2013 01:17 PM
Je crée une Type Def contenant un Variant dans lequel je place un Type.
Sur mon BD, se trouvent plusieurs constantes "Variant+Type" reliées à ce Type_Def.
Si je change le Type contenu dans le Variant du Type_Def ... mes constantes ne sont pas mises à jour (???)
Type Def ... ou Strict Type Def ... ne change rien au comportement observé (!)
Un d'entre vous a-t-il déjà remarqué cela ?
Existe-t-il une explication à ça ? Est-ce un comportement voulu ? (et pourquoi ?)
Merci à tous.
Résolu ! Accéder à la solution.
le 04-23-2013 02:08 AM
Retour aux bases, qu'est-ce qu'une déf. de type ? 🙂
Le type du variant est une partie intégrante de sa valeur. Et les instances d'une déf. de type de conservent pas les valeurs/valeurs par défaut.
Cdt,
Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.
le 04-23-2013 02:35 AM
Bonjour Eric,
Je me doutais qu'il y avait un soucis de contenant/contenu.
Là est la confusion (que j'ai faite) ... une "déf de type" qui ne tient pas compte du type ... (?)
mais le piège est "variant" ... Le type du variant est une partie intégrante de sa valeur
Le type du contenant ... et le type du contenu!
... et je m'y suis laissé prendre ! jnark
belle journée Eric et merci.
le 04-23-2013 09:20 AM
Salut,
Moi j'ai rencontré un problème similaire avec des types plus classiques!!
En gros, j'ai un cluster en typedef, ce cluster contient un menu déroulant lui même en typedef.
J'utilise un menu déroulant pour faire une sélection, mais où la valeur en sortie n'est pas 0,1,2,3... séquentiel, mais une valeur définie pour chaque cas (par ex: 1, 1.5, 2, ...).
Et lorsque j'ai mis à jour les valeurs de sorties associées aux cas dans mon typedef de menu déroulant, les instances de mon cluster déjà utilisées me fournissaient en sortie les valeurs définies dans le menu déroulant au moment de la création de l'instance. Il n'y a pas eu de mise à jour de l'instance par la mise à jour du typdef.
Eric, t'as une idée??
Est-ce que ma description est clair au moins??
A+
Olivier L. | Certified LabVIEW Developer
le 04-24-2013 05:05 AM
Hello Olivier,
C'est une des nombreuses petites différences entre les menus déroulants et les énums 😉 L'enum est un type de données à part entière, mais les menus déroulants sont une représentation d'un simple entier. Pareil pour les combo box, qui sont une représentation d'une chaine, et pas un type de données natif.
Donc si tu travailles avec des objets en FA (commandes/indicateurs), tu dois passer par une typedef stricte si tu veux propager les valeurs de ton ring/combo box.
Pour les constantes, c'est grillé (une typedef stricte sur un diagramme n'a pas de sens et est castée en typedef automatiquement par LabVIEW), il n'y a pas vraiment de solution si ce n'est basculer la constante vers une commande, mettre à jour la typedef stricte, et la changer à nouveau en constante !
A+
Eric
Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.
le 04-24-2013 05:11 AM
Ah ouais quand même!!! J'avais jamais fait attention à tous ces détails là!!
Merci pour l'info!!
A+
Olivier L. | Certified LabVIEW Developer