le 05-04-2020 05:11 AM
Bonjour,
J'essaie de générer un tableau de cluster issu de la lecture d'un fichier xml de description matériel. j'avais d'abord commencé par générer d'avance les clusters dans le programme, pour les remplir au fur et à mesure, mais je trouve cette solution (très) insatisfaisante. je génère donc un tableau de clusters, mais j'ai besoin de la référence de chaque élément pour qu'ils soient accessibles depuis d'autres clusters.... (je trouve la prog objet de labview très laborieuse, et peut être que finalement je devrais insister )
Je voulais savoir si il y'a moyen de récupérer l'adresse d'un élément de taleau (et pas celle du tableau), soit directement (ce que je n'ai pas réussi à faire) soit en recalculant à partir de la référence (mais comme c'est une référence et pas un pointeur... )
Meric d'avance !
Dominique
Résolu ! Accéder à la solution.
le 05-04-2020 06:10 AM
Je vais me lancer dans le labview scripting. Je pense que ca va me permettre d'aller plus loin et de justement m'affranchir de ces limites !
Dominique
le 05-04-2020 07:05 AM
@vault101 a écrit :
Bonjour,
J'essaie de générer un tableau de cluster issu de la lecture d'un fichier xml de description matériel. j'avais d'abord commencé par générer d'avance les clusters dans le programme, pour les remplir au fur et à mesure, mais je trouve cette solution (très) insatisfaisante.
Dominique
Qu'est ce que tu trouves insatisfaisant dans cette solution au juste? Tu peux nous montrer comment tu fais et un exemple de ton fichier XML? Générer un tableau de cluster à partir d'un fichier XML est très simple et rapide si on utilise une bonne méthode et si le fichier XML est bien structuré.
Ben64
le 05-04-2020 07:23 AM
La génération du tableau de cluster à partir du fichier XML fonctionne parfaitement bien 🙂 et comme tu le dis c'est très simple. Mais je ne peux pas récupérer la référence de chaque élément du tableau.
L'autre méthode consiste à pré-créer ces éléments dans la face avant (ainsi je peux récupérer toutes les références), pour que leurs données contenues dans le fichier xml leur soit renseignées. Et ce que je ne trouve pas satisfaisant est devoir tout pré-créer dans le VI, je ne peuxpas changer dynamiquement rien qu'en completant le ficheir xml, le nombre de cluster. je suis limité dans leur nombre. d'où l'intérêt du tableau, mais dont je ne peux pas récupérer la référence des éléments...
Donc la solution que je suis en train d'essayer: VI scripting, il me permet, en amont de l'éxécution de mon VI, de créer dynamiquement tous les objets donc j'ai besoin dans le VI principal rien qu'en lisant mon fichier xml 🙂 ensuite j'execute le VI principal qui va faire le bilan de ce qui a été crée et en récupérer les références 🙂
le 05-04-2020 07:48 AM
le 05-04-2020 07:57 AM
@vault101 a écrit :
Donc la solution que je suis en train d'essayer: VI scripting, il me permet, en amont de l'éxécution de mon VI, de créer dynamiquement tous les objets donc j'ai besoin dans le VI principal rien qu'en lisant mon fichier xml 🙂 ensuite j'execute le VI principal qui va faire le bilan de ce qui a été crée et en récupérer les références 🙂
C'est en effet possible de faire ça par scripting. Par contre je te suggère que le tableau de référence soit un typdef dans ton projet LabVIEW (typedef appelé par ton vi principal) plutôt que de créer un tableau de cluster directement dans ton VI principal.
Ben64
le 05-04-2020 08:00 AM
Ces références feront elle même partie d'autres clusters. (Il est probable que je ne prenne pas le problème par le bon bout)
J'interface un instrument assez important ("fait maison") il est composé d'un grand nombre d'actuateurs, capteurs etc (environ 180 entrées dans le fichier xml), et ils composent des "blocs fonctionnels". Tous les capteurs sont définis dans le fichier xml, et les blocs fonctionnels aussi. Les blocs fonctionnels peuvent être amenés à être modifiés (échange de capteur ou autre). Chaque élément d'instru, verra sa référence associée à un des blocs fonctionnels. Une fois défini en début de programme, ca roule tout seul, alors qu'indexer les tableaux de cluster me parait moins direct. mais comme je te le dis, la philosophie que j'ai adoptée n'est peut-être pas la bonne 😞
le 05-04-2020 08:06 AM
le 05-04-2020 08:13 AM
Je ne comprends pas bien ce que tu veux dire, j'utilise effectivement des typedef pour mes clusters (beaucoup pour organiser/normaliser mes données) mais pas pour les tableaux, je pensais effectivement générer un tableau de references, mais pas forcement en typdef 😥 qu'est ce que ça peut m'apporter de plus? (j'ai peur d'être maladroit, ce n'est surtout pas une critique, je ne comprends pas le bénéfice que je peux en tirer 🙂 )
Sinon tu veux dire qu'il vaut mieux que je crée directement mon tableau de references avec le script?
05-04-2020 08:18 AM - modifié 05-04-2020 08:21 AM
@ben64 a écrit :
Tu pourrais également éviter tout ça et travailler directement avec le fichier XML au lieu de convertir en tableau et de ne plus utiliser le fichier par la suite.
Ben64
l'acces à l'état des capteurs se fait par liaison série la plupart du temps, et j'ai peur que la moulinette xml répétée soit un peu lourde pour le programme, il faut aussi gérer des communications tcp/ip et tout le process de la machine. (même si le tout fonctionne en boucles paralleles + machine à états + files d'attentes) J'aime autant une structure moulinée une bonne fois au départ, quitte à prendre 10 secondes (je dis ça au pif) au départ. mais peut-être qu'effectivement ce serait plus simple comme ça 😕 (ça me met le doute :D)