Bonjour,
Je vais commencer par un état des forces en présence. L'ordre n'a aucune importance.
- Pierre59 (Pierre) a fait un article
http://www.locoduino.org/spip.php?article154On a là une programmation à base d'objets et utilisation intensive des héritages qui permet une description d'un réseau, côté aiguilles, zones, ...
- Pierre a fait un autre article
http://www.locoduino.org/spip.php?article167 qui, cette fois traite des signaux.
Toujours des objets et des héritages qui permettent la gestion complète de la partie signaux.
- Jean-Luc a, lui, porté son attention sur la gestion des itinéraires
http://forum.locoduino.org/index.php?topic=167.0 en partant de ma gare et en étendant à tout un réseau. Là encore, les objets et les héritages et un résultat impressionnant.
- Et, évidemment, toujours de Jean-Luc, les articles sur les gares cachées :
http://www.locoduino.org/spip.php?article155http://www.locoduino.org/spip.php?article156http://www.locoduino.org/spip.php?article157- Pour mémoire, je fais un peu pâle figure avec SGDD qui est bien à base d'objets, mais où je n'avais pas compris la notion d'héritage. Et d'autres choses, d'ailleurs.
Pourtant, toutes ces méthodes (y compris la mienne) souffrent d'une tare originelle : il faut "mettre les mains dans le cambouis" et décrire le réseau "en dur", directement dans le programme.
Cela est, certes, bien expliqué dans les articles cités, mais, à chaque fois, il s'agit d'une méthode de description nouvelle.
On part d'un objet originel, avec des fonctionnalités parfaitement adaptées à l'objectif à atteindre.
Et d'héritage en héritage, on arrive à ce qu'on voulait. Par des méthodes tout à fait géniales, d'ailleurs.
A moins que je n'aie pas compris, il faut décrire plusieurs fois le réseau en fonction des résultats à atteindre. Ce qui est dommage.
D'autre part, cette description se fait directement dans le programme, ce qui n'est pas évident.
Ce qu'il faudrait c'est "un anneau pour les gouverner tous", selon la formule consacrée.
Je ne suis certes pas Sauron (c'est le méchant
) et je n'y arriverais pas tout seul. Mais je pense avoir une piste.
Je suis parti sur autre chose : un TCO sur écran, gratuit et sans fils.
J'ai fait une première version, en mode objet, mais sans héritages. Et, donc, très dure à développer.
Pierre a eu pitié de moi et m'a fourni une solution presque "clés en mains", avec le bon objet de départ et les héritages nécessaires. Et là, j'ai (enfin !) compris comment ça marchait. Un grand merci.
Il était temps qu'on me "décolle la pulpe du fond"…
La V2 était donc nettement plus facile à développer, beaucoup plus souple et ceux qui ont vu le résultat ont l'air d'avoir apprécié.
Ces deux versions étaient compatibles avec SGDD. On pouvait suivre le déplacement d'un train géré par un Arduino DUE sur l'écran de l'ordinateur, PC ou Mac.
Et je développe en ce moment la V3 qui ne sera plus compatible SGDD pour plusieurs raisons :
1°) programmation SGDD lourde et "datée"
2°) j'ai voulu adjoindre à l'éditeur de TCO un embryon d'exploitation de réseau
Donc, avec mon éditeur de TCO, je fais (forcément) une description du réseau, à minima graphique.
L'intérêt d'un éditeur étant qu'on ne va pas écrire directement dans le programme. Cela résout l'un des problèmes cités.
Mais on peut plus !
Je suis en train de développer la V3 pour qu'à la fin on ait une matrice qui décrit tous les liens des cantons/aiguilles. Une description littérale, cette fois, du réseau et des connections des éléments entre eux. Description automatique, uniquement générée à partir des éléments graphiques de mon éditeur.
Il me reste à trouver le moyen que cette description soit compatible avec tous les objets dont on aura besoin pour la gestion du réseau.
Dit autrement, je cherche à ce que toutes les instanciations des classes soient paramétrées et qu'elles aillent chercher ces paramètres dans cette matrice.
Évidemment, pour l'instant, cette matrice sera sommaire, mais susceptibles d'évolution pour intégrer de nouveaux objets pour gérer le réseau.
Mais c'est une autre histoire…