DeepPurple
Nombre de messages : 474 TrainController : Gold V10 B2 FR Localisation : Un peu plus à l'ouest Emploi : Président honoraire de la CAChALO Loisirs : Membre de l'AMFB Date d'inscription : 15/09/2018
| Sujet: Bonnes pratiques pour la gestion des variables Sam 11 Juil 2020 - 17:42 | |
| Toqué de génie logiciel depuis ma tendre enfance, je cherche à maîtriser le chaos qui s'instille inéluctablement dans l'automatisation du réseau, en TrainController comme en tout langage informatique. TrainController prévoit quelques mécanismes qui facilitent la gestion et la documentation des objets, variables et macros qui ont tendance à se multiplier comme des lapins. Comment utilisez-vous ces outils ? Pour ma part :
- Je tente de maîtriser la portée des variables, et d'éviter la prolifération des variables globales au profit des variables à portée limitée (variables privées, de canton, de train).
- Je veille à respecter quelques conventions pour nommer les variables.
- Variables globales : G.application.variable G.Autotrain.Demandé
- Variables privées : P.variable P.CantonCourant
- Variables propres à un canton : C.variable C.LongueurCanton
- Variables propres à un train : T.variable T.LongueurTrain
- Variables locales : je les évite, car elles ne sont pas visibles dans l'explorateur d'objet, ce qui rend leur gestion difficile
Je crée et gère les variables propres à un canton Soit dans un indicateur propre au canton Soit dans un bouton-poussoir attaché au canton; cette méthode est pratique car un bouton-poussoir peut être invoqué depuis une liste d'opérations, comme une macro, alors que les indicateurs ne peuvent être déclenchés que via leur déclencheur. Pour passer des paramètres à une macro, j'évite les variables globales au profit de variables privées ou de variables propres à l'objet qui invoque la macro.
Inconvénients :
- Le TCO est vite encombré de boutons-poussoirs liés aux cantons. On peut les cacher en dehors du mode édition.
- On ne peut récupérer que les variables liées aux objets du contexte courant. Dans un canton par exemple, je ne peux pas utiliser une variable liée à un autre canton (sauf à passer par une variable globale de transfert).
Avez-vous de votre côté développé des bonnes pratiques pour faciliter la gestion de vos macros et listes d'opérations ? Connaissez-vous de meilleures pratiques ? Merci de vos conseils. |
|
Geo69
Nombre de messages : 5255 Localisation : Ouest Lyonnais Emploi : Retraité Loisirs : VAE / Moto et ... Trains Date d'inscription : 21/01/2012
| Sujet: Re: Bonnes pratiques pour la gestion des variables Sam 18 Juil 2020 - 19:30 | |
| Bonjour, Tes questions "organisationnelles" sont surement intéressantes mais j'avoue que je ne me les suis pas posées ... Quelques éléments de réponses (ou de non réponse) par rapport à "mes pratiques" : - DeepPurple a écrit:
- ... Je tente de maîtriser la portée des variables...
Je n'ai utilisé que 3 variables (mais avec efficacité ) pour la gestion de mon pont roulant. Une de portée "globale" et deux de porté "privée" mais je ne sais plus pourquoi !... - DeepPurple a écrit:
- ...Le TCO est vite encombré de boutons-poussoirs liés aux cantons. ...
Je me suis crée un TCO supplémentaire que j'ai baptisé "Contrôles" ou je mets tous les objets (BP, indicateurs, signaleurs etc...) qui servent au fonctionnement mais que je n'ai pas besoin de manipuler ... - DeepPurple a écrit:
- ... On ne peut récupérer que les variables liées aux objets du contexte courant. Dans un canton par exemple, je ne peux pas utiliser une variable liée à un autre canton (sauf à passer par une variable globale de transfert)...
Quel est le problème d'avoir une variable de portée globale que l'on peut utiliser partout ? J'avoue ne pas avoir les idées très claires sur les "portées" des variables par manque d'entraînement ... A+ Georges |
|
DeepPurple
Nombre de messages : 474 TrainController : Gold V10 B2 FR Localisation : Un peu plus à l'ouest Emploi : Président honoraire de la CAChALO Loisirs : Membre de l'AMFB Date d'inscription : 15/09/2018
| Sujet: Re: Bonnes pratiques pour la gestion des variables Mar 11 Aoû 2020 - 10:51 | |
| Bonjour,
Je me permets d'y revenir, après avoir expérimenté quelque peu. Pour la gestion de trains en empilement sur mes voies de garage, j'utilise quelques variables, pour garder en mémoire combien de trains sont déjà garés sur la voie, quelle est la longueur totale de ces trains etc. Je pourrais utiliser des variables globales, avec un set de variables pour chaque voie de garage. J’aurais ainsi des variables telles que G.VoieDeGarage1.Longueur, G.VoieDeGarage2.Longueur, G.VoieDeGarage3.Longueur etc. Si j'ai une quinzaine de voies de garage, cela fait vite beaucoup de variables globales. Une autre option est d'utiliser un variable de portée Canton telle que C.Garage.Longueur. TrainController crée alors automatiquement une instance de cette variable pour chaque canton du réseau.
Comment TrainController sait-il quelle instance d'une variable canton utiliser ? TC utilise le canton du contexte courant. Ainsi, dans les opérations d'un bouton-poussoir associé au canton "Triage voie 2", TC utilisera la longueur de ce canton "Triage voie 2". Idem pour les opérations d'un indicateur ou d'un signaleur de ce canton. Ou encore pour les paramètres d'un marqueur d'arrêt de ce canton. |
|
Contenu sponsorisé
| Sujet: Re: Bonnes pratiques pour la gestion des variables | |
| |
|