le 09-18-2017 03:25 AM
Voici un petit bug qui m'a donné du fil a retordre.
au départ j'ai voulu modifier une condition définie par string en ajoutant des accents. mais le code ne voulait toujours pas fonctionner.
au bout d'un certain temps je me suis rendu compte que, malgré que le champ étape de la structure condition contenait les accents, son menu contextuel de sélection des étapes ne les affichait pas.
pour résoudre ce problème, j'ai décâblé et recâblé le fil de condition
le 09-19-2017 04:09 AM
Bonjour Pierre,
Quelle est la question derrière ton post ? De mon côté je n'arrive pas à reproduire ce problème. Pourrais-tu m'en dire plus sur ce que tu as fait ?
Merci
le 09-19-2017 03:49 PM
Quelle est la version de LV sous laquelle tu as remarqué cette anomalie ?
le 09-20-2017 09:41 AM
Ma version est labview 2015 pas de service pack
je n'ai malheureusement pas réussi a résoudre le problème
a l'origine, mon programme générait des erreurs de conditions manquantes car a des endroits, il y avait "déja passé" avec accent, et a d'autres endroits, "deja passe" sans accent. j'ai donc decidé de rechercher les champs avec accent via CTRL+F, copier-coller vers les sans accents. ceci fait, nouvelle recherche sans accent pour m'assurer qu'ils avaient tous été eradiqués.
les objets concernés étaient des constantes strings et des étapes de condition
le bug a perduré malgré tous ces renommages, et c'est par hasard, en épluchant les etapes de la structure condition que j'ai remarqué que le menu contextuel affichait la version sans accent.
mystere 🙂
le 09-20-2017 12:00 PM
à première vue, comme tu expliques, "ça sent" le petit cancrelat.
C'est toujours le problème de pouvoir "reproduire" ... un bug que l'on ne peut pas reproduire est d'office un cul-de-sac sans solution. Apparemment, tu n'as pas réussi à contourner et ton code présente toujours une anomalie. As-tu essayé d'isoler une portion de code minimum où le problème se présente toujours. Soit, isoler cette structure condition, accompagnée d'un minimum de code incompressible, le tout ayant "toujours" le menu contextuel qui pose soucis. Ce serait intéressant de voir (chercher) à partir de quelle réduction de code ce menu contextuel va se resynchroniser sur du cohérent. Est-il possible pour toi de partager ce code qui pose problème ?
09-21-2017 01:03 AM - modifié 09-21-2017 01:13 AM
A mon humble avis, les causes les plus probables sont :
Si vous modifiez les textes d'un VI puis le mémorisez et que les textes reprennent leurs valeurs initiales, nous sommes véritablement en face d'un gros bug dont je n'ai encore jamais entendu parler.
@ouadji : La "Case Structure" étant pilotée par une chaîne de caractères, je ne vois pas comment ou sur quoi les noms de ses états pourraient se synchroniser.
le 09-21-2017 02:22 AM
Pierre_F évoque une incohérence entre les noms des états réels et ces mêmes noms dans le menu de sélection des états. J'ai compris par là le menu que l'on obtient par un clic sur la flèche contenue dans le "selector label". Avec accents pour l'un, sans accents pour l'autre. Si ma compréhension des choses constatées est correcte, on pourrait en effet y voir un bug. Quel que soit le contexte (VIs inclus/ou non, mémorisés/ou non... ceci dit, l'idée est bonne) il me semble anormal de se trouver devant un code "qui n'est pas cassé" avec une structure condition dont les états réels ne correspondent pas à ceux repris dans le menu de sélection des états de cette même structure. (d'où bug éventuel). Là ... je me suggérais de réduire le code pour voir (par curiosité) à quel moment de réduction ce menu de sélection retrouverait (ou pas) sa conformité par rapport aux états réels. Le terme "synchroniser" n'est peut-être pas le meilleur pour exprimer cette idée. L'ensemble du descriptif de Pierre_F et l'idée d'un bug m'a fait pensé que LV n'avait pas mis à jour le menu de sélection ... d'où l'idée de voir à quel moment il le ferait (ou pas).
le 09-21-2017 08:29 AM
Attention Ouadji,
Dans le cadre de structure "case", ton Vi n'apparaitra pas avec la flèche brisée, du moment que tu as choisi un état "par défaut".
Labview te laisse le choix de ne pas câbler un cas pour chaque évènement.
Après il faut dissocier de cas de fonctionnement :
1- un "enum" de connecter à la structure "case", dans ce cas là, labview va générer de lui même le nom des différentes étapes.
2 - une commande "string" cablée à la structure "case", et dans ce cas là, c'est à toi de remplir manuellement les différents possibilités, comme on le ferait avec une commande numérique d'ailleurs. Dans le cadre d'une commande chaîne, il est possible de préciser à LV de gérer la casse dans la structure case au travers d'une option disponible via clic droit.
Cdt,
Michael
le 09-21-2017 11:56 AM
ok pour tout Michael.
Mais je reste cramponné à ce qui est pour moi l'essentiel du constat de Pierre_F. Le menu du selector label ne reflète pas à l'identique l'ensemble des états codés dans la structure case. D'un côté on a une version avec accent, et de l'autre sans. Et ça, quel que soit le contexte, ou ceci, ou cela, je me dis que LV à loupé une mise à jour du menu des états. Quelque part, comment pourrait-il en être autrement ? A mon sens il n'est pas possible d'envisager un raisonnement, quel qu'il soit, qui donnerait un sens logique et donc qui légitimerait ce comportement. Je pense que nous sommes tous bien d'accord à ce sujet (enfin, je pense). C'est dans ce sens que j'aurais aimé "jouer" avec ce code (le bousculer un peu dans tous les sens) pour voir à quel moment LV va, ou ne va pas, se rendre compte de la différence et mettre à jour son menu.
le 09-25-2017 01:42 AM
Nous sommes clairement dans le cas 2 mentionné par Michael. Les noms des états ont été définis par le développeur en le tapant au clavier. Aucune possibilité pour LV de se synchroniser avec quoi que ce soit. Je ne vois donc pas en quoi il serait possible de jouer avec ce code pour tenter de reproduire un problème d'actualisation de LV. Avec un enum, ce serait différent.
Ce que je comprends est que l'auteur de la question avait d'abord défini les noms sans les accents. Puis il a effectué un "rechercher - remplacer" pour les remplacer par les textes avec les accents. A mon avis, la cause la plus probable est qu'une partie des VIs n'étaient pas inclus dans la recherche ou qu'ils n'avaient pas été sauvegardés après.