Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - Pierre59

Pages: 1 2 [3] 4 5 ... 19
31
Vos projets / Re : Projet partagé d'un gestionnaire de réseau
« le: janvier 17, 2024, 04:00:17 pm »
Bonjour

J'ai fait une version un peu plus simple du programme qui transforme le fichier json en un gestionnaire, je peux le publier si besoin. cette version utilise des "lambda expression" appelées aussi fermetures ou clôtures.

Plus intéressant j'ai essayé une version complètement différente de la précédente. Le fichier json est lu ce qui donne un objet json recélant toutes les infos pour le gestionnaire. C'est cet objet json qui va mémoriser toutes les constantes : noms des zones et des aiguilles, sens de zones, types de aiguilles ... et les variables : l'état ("libre" ou "occupe") des zones, l'état "("gauche" ou "droite") des aiguilles, ... Les infos fournies par les capteurs pourront mettre à jour ces variables.

L'avantage de cette version est qu'il n'y a plus d'objets à créer, donc plus de programmation objet.

L'inconvénient est que l'exécution est nettement plus lente, Mais elle peut être accélérée en transformant un peu l'objet json issu de la lecture, par exemple en donnant des numéros aux zones et aux aiguilles et en y accédant non plus par leur noms (clés) mais par les numéros (indiçeage des tableaux). D'autre accélérations sont possibles, mais ce sera toujours plus lent que la première version.

Le programme Processing est téléchargeable ci-dessous. Il fait pratiquement la même chose que la première version.

Pierre

32
Vos projets / Re : Projet partagé d'un gestionnaire de réseau
« le: janvier 17, 2024, 09:56:44 am »
@ Denis

Le fichier jison c'est juste un exemple, inspiré du locoduinodrome, montrant des possibilités d'écriture. Cela ne présage en rien du format json qui sera adopté, notamment pour les voisins qui ne peuvent pas rester comme cela.
Le fichier est aussi une base pour des essais de transformations vers un gestionnaire.
Les erreurs n'ont pas d'importance, mais j'essaierai de les éliminer peu à peu.

Pierre

33
Vos projets / Re : Projet partagé d'un gestionnaire de réseau
« le: janvier 16, 2024, 01:00:10 pm »
@ Denis

Faut pas trop s'inquiéter, le fichier json a encore plein d'erreurs (Z3 c'est une erreur) et je n'ai toujours pas eu de réponses sur le nommage des TJS, mais je pense que pour les TJS (comme les TJD) il faut la position des deux aiguilles, à voir.

Faut plus se focaliser sur la forme du fichier json et sur son traitement.

Pierre

34
Vos projets / Re : Projet partagé d'un gestionnaire de réseau
« le: janvier 16, 2024, 11:33:32 am »
@ Denis

Ce que tu montre ce sont les voisins en tenant compte de la position des aiguilles (toutes gauches), regarde la liste des zones il y a tous les voisins potentiels.

Pierre

35
Vos projets / Re : Re : Projet partagé d'un gestionnaire de réseau
« le: janvier 16, 2024, 11:21:03 am »
Je viens de tester. Ça fonctionne, mais je ne retrouve pas tous les voisins (ou je n'ai pas compris)
z3 et z11 ont plus de 2 voisins et je ne les retrouve pas dans le test, vraisemblablement des choses à rajouter dans le JSON ?
Z3 a deux voisins1 et deux voisins2, cela fait 2x2 quatre voisins ?, pareil pour Z11.

Pierre

36
Vos projets / Re : Projet partagé d'un gestionnaire de réseau
« le: janvier 16, 2024, 10:18:36 am »
@ Dominique Denis

Voila une exemple restreint  de traitement d'un fichier json, pour générer automatiquement un gestionnaire.

Le programme est écrit en Java (Processing), mais serait très semblable en C++. Le programme traite le fichier json (sans test d'erreur !) et génère des objets "zone" et des objets "aiguilles". Les objets zone contiennent un codage (Java) des liens entre les zones (voisins).

Le programme (voir fichier accompagnant) comporte quatre onglets :
- un onglet qui appelle le traitement et qui affiche la liste des zones (avec le code des liens) et des aiguilles, puis qui affiche pour chaque zone les suivants réels en fonction de la position effectives des aiguilles.
- un onglet comportant deux classes : Zone et Aiguille. Ce sont des "modèles" qui seront instanciées par le traitement.
- un onglet traitement du fichier json. Il y a trois phases : le traitement des zones sans celui des voisins (infaisable pendant la première phase), une instance de "Zone" est crée pour chaque zone. La deuxième phase traite les aiguilles. La troisième phase traite des liens entre les zones. il y a deux cas, un cas simple et un cas compliqué. Le cas simple est quand le voisin ne dépend pas de la position d'aiguilles (zone sans aiguille, aiguille en talon, ...), une fonctionnelle simple est élaborée, un fonctionnelle c'est une méthode que l'on appellera dans le gestionnaire lors de son fonctionnement effectif sur le réseau pour connaitre un voisin d'une zone. Le cas compliqué est quand un voisin dépend de la position d'une ou plusieurs aiguilles, il faut transformer en objets Java la description json de la chose et élaborer une fonctionnelle(comme pour le cas simple), cette fonctionnelle ayant une forme beaucoup plus compliquée.
- le dernier onglet contient les classes Java nécessaires pour coder en Java les descriptions json des voisins dépendants d'aiguilles.

Pierre



37
Vos projets / Re : Projet partagé d'un gestionnaire de réseau
« le: janvier 16, 2024, 09:40:04 am »
@ Denis

En sur-découpant les zones on ne gagne rien en temps de libération (assez souvent on retarde volontairement la libération pour palier les micro-coupures de prise de courant des engins de traction), et on ne gagne rien en fluidité (le découpage des zones est fait de telle sorte qu'il ne puisse avoir qu'un train sur une zone, si on sur-découpe, cela reste vrai sur l'ensemble des zones issues de la découpe).

Pierre

38
Vos projets / Re : Re : Projet partagé d'un gestionnaire de réseau
« le: janvier 15, 2024, 06:24:24 pm »
En PRS, ça simplifie puisque chaque appareil de voie est une zone, mais, c'est pas facile quand même.

En PRS, comme tu dis, on peut avoir plusieurs aiguilles dans une zone !!!

Pierre

39
Vos projets / Re : Projet partagé d'un gestionnaire de réseau
« le: janvier 15, 2024, 06:07:25 pm »
@ Denis

Oui cela a l'air équivalent, mais plus difficile à exploiter à cause des numéros, bien penser que c'est un système clé-valeur, dans ton cas il faut fabriquer les clés, on sait pas trop combien il y en a.

Une autre remarque, dans certains cas (aiguille simple par exemple) vois1 peut être simple et vois2 compliqué ou vice versa. Pour une aiguille prise en talon il n'y a qu'un voisin possible.

Pierre

40
Vos projets / Re : Projet partagé d'un gestionnaire de réseau
« le: janvier 15, 2024, 04:45:52 pm »
@ Denis

Comment tu écrit un cas compliqué comme celui de l'image que j'ai donné.

Pierre

41
Vos projets / Re : Projet partagé d'un gestionnaire de réseau
« le: janvier 15, 2024, 04:27:37 pm »
@ Denis

Faut que cela soit décodable. Quid des cas compliqués, voir image.

Pierre

42
Vos projets / Re : Projet partagé d'un gestionnaire de réseau
« le: janvier 15, 2024, 03:13:31 pm »
Bonjour

Voila une nouvelle version du fichier json, j'ai intégré les voisins dans les zones. Les TJS sont vraisemblablement fausses (toujours besoin de précision de nommage A1 c'est laquelle, A3 c'est laquelle, ...)

@ Dominique

Les choses compliquées dans les voisins sont une interprétation json des méthodes selonAiguille(Aiguille* a,Zone* z1,Zone* z2) du gestionnaire.

Pierre

43
Vos projets / Re : Re : Projet partagé d'un gestionnaire de réseau
« le: janvier 15, 2024, 01:00:14 pm »
@ Pierre,
Je décortique ta proposition de JSON.
Si j'ai bien compris, Voisins1, c'est "en reculant" et Voisins2 c'est "en avançant" ?
Par ailleurs, dans une TJS, pour aller vers z1 en venant de z3, il suffit que A1 soit tout droit. A3 indifférent. (voir PJ)

Pour l'instant voisin1 c'est d'un côté et voisin2 de l'autre coté d'une zone, les sens est c'est à discuter (j'en ai déjà parlé précédemment). Je vais rentrer les voisins dans les zones pour le fichier json. Pour les TJS il faut que je peaufine, mais j'attends que l'on précise le nommage des "lames" (j'en ai déjà parlé aussi).

Pierre

44
Je verrais plus le json comme intermédiaire entre le PC et l'arduino et un programme à base de menus sur le PC pour créer ce json.
Donc si je te comprend bien on fait un programme sur PC pour aider à la saisie (quel language) du fichier json, puis le fichier json sert pour faire le gestionnaire de l'Arduino, avec quelle méthode  ( il faut sérieusement envisager aussi de prévoir le gestionnaire pour PC ou mini-PC).

Pierre

45
Donc pour les aiguillages il faudra gauche/droite/symetrique, et pour le canton on a la position droite ou déviée donc on peut en déduire la direction.
Pour les aiguilles appairées c'est tout simple : un seul décodeur mais 2 aiguilles dans le logiciel avec la même adresse DCC.
Non c'est gauche/droite dans tous les cas (même pour les cantons).

Je tiens à signaler que tout le monde ne commande pas ses aiguilles en DCC, et qu'il faudrait mieux ne pas parler, pour l'instant, de matériel ni de canton.

Pierre

Pages: 1 2 [3] 4 5 ... 19