le 05-30-2016 06:11 AM
Voilà,
Au premier appel tu fais "ReadFile" pour initialiser ton registre à décalage, et ensuite "GetValue" te donnera les valeurs de tes constantes sans avoir besoin de recharger ton fichier.
Quelques remarques sur ton code au passage par ordre de priorité :
1 --> Transforme ton cluster en définition de type si ce n'est pas déjà fait, afin de gérer plus facilement les évolutions de variables
2 --> Il est dommage que tu n'exploites pas complètement la structure du fichier INI. Pourquoi tout placer dans une clé "SECTION1" alors que tu as clairement des groupes (Pression/Temperature/...) qui te permettrait de calsser de manière plus agréable tes constantes.
---> Je chipote cela est principalement visuel, mais ainsi ton fichier INI aurait des sections explicites pour chaque groupement.
Cdt,
Michael
05-30-2016 06:22 AM - modifié 05-30-2016 06:30 AM
Désolé... mais j'ai pas très bien compris ce que tu as fait
J'ai l'impression que tu a creé une sorte de machine à état, ou init ne fais "rien" et get_value fais exactement ce que mon vi faisais avant !
Ah moins que getValue "zap" tout les accès à une key sauf celui demandé lors de mon appel ...
Moi je pensais que "ne pas multiplier les accès fichier" c'était avoir une sorte de boucle autour de "read key" et de n'en avoir plus qu'un ! Bref je n'ai pas trop compris ce que tu as fait... j'ai pas du saisir la subtilité
Michael.C a écrit :
Au premier appel tu fais "ReadFile" pour initialiser ton registre à décalage, et ensuite "GetValue" te donnera les valeurs de tes constantes sans avoir besoin de recharger ton fichier.
Du coup, qu'entends tu par "sans avoir besoin de recharger ton fichier." ?
Michael.C a écrit :
Quelques remarques sur ton code au passage par ordre de priorité :1 --> Transforme ton cluster en définition de type si ce n'est pas déjà fait, afin de gérer plus facilement les évolutions de variables
2 --> Il est dommage que tu n'exploites pas complètement la structure du fichier INI. Pourquoi tout placer dans une clé "SECTION1" alors que tu as clairement des groupes (Pression/Temperature/...) qui te permettrait de calsser de manière plus agréable tes constantes.
---> Je chipote cela est principalement visuel, mais ainsi ton fichier INI aurait des sections explicites pour chaque groupement.
1) Ah oui j'ai oubliais ! Merci beaucoup !
2) C'est vrai que je pourrais le faire, mais je n'ai pas pris le "temps" de le faire parce que de toute façon je vais toutes les lire ... Mais comme tu dit, je pourrais les trier pour que ce soit plus agreable dans le fichier INI.
PS: Tu travail avec un écran gigantesque ? Nan parce que la taille du vi est devenu ... imposante
le 05-30-2016 07:56 AM
Normal que tu comprennes pas. Dans la précipitation, j'ai pas vérifier le "case" ......
Alors remis d'aplomb ca donne :
1-ReadFile : On vient lire ton fichier, puis on mémorise tes valeurs dans le registre à décalage de la boucle (c est le seul intérêt ici de la boucle while, et c'est pour cela qu'une constante true est cablé à son terminal d'arrêt).
2-GetValue : On vient lire la valeur contenue dans le registre à décalage, comme celle ci correspond à ton fichier (sauf s'il est modifié entre temps), on prend pas la pein de le réouvrir, et on renvoit la valeur mémorisée.
En espérant que ca t'aide à comprendre, j'ai recabler correctemnet mon case en pièce jointe 😉
Sinon non juste 2 écran un 21 pouces et un 19 pour travailler .
le 05-30-2016 08:07 AM
Du coup, si j'ai bien compris, à chaque fois que j'ai besoin d'une constante, je vais appeler mon sous-vi et désassembler le cluster, mais il ne va pas re-parcourir tout le fichier vu qu'il aura déja tout mémoriser, il ira directement piocher dans le registre à décalage ? Donc gain de temps et gain de ressource pour le programme ?
C'est bien ça ou je suis à coté de la plaque ?
05-30-2016 08:26 AM - modifié 05-30-2016 08:27 AM
Non c'est tout à fait ça :).
Puis très bas niveau, j'ai tendance à penser que ca évite d'aller toucher au DD en permanence, et de jouer avec la RAM 😄
Pour les performances, pour te faire une idée, tu place place la boucle whil dans une structure séquence, et tu met une récupération d'horloge en ms avant après.
Le delta te donnera le temps d'exécution, et en jouant les deux cas tu verra la différence.
05-30-2016 08:41 AM - modifié 05-30-2016 08:44 AM
Ah oui c'est donc plutot interressant ! Je ne savait pas que c'était possible !
Du coup il faurait que dans ma phase d'initialisation du vi principal, j'appel ce sous vi en "mode ReadFile" et à chaque recherche de constante en mode "getValue", c'est bien ça ?
Un jour ou tu as la force, l'envie et le courage, je te montrerai bien la totalité de mon projet pour que tu jette un oeil et me dise tout ce qui ne va pas de ce point de vue
En tout cas merci, j'intégère ça à mon projet du coup ! Hop !
le 05-30-2016 08:49 AM
Oui c'est bien ça pour l"initialisation.
Pour le reste, pourquoi pas à l'occasion si le projet est pas trop gros 😄
Pense à passer le sujet en résolu.
Bonne soirée.