Images des véhicules :
Pour moi, il est fondamental d'avoir une image de ses véhicules.
C'est un peu de travail, c'est vrai, mais c'est très agréable d'avoir pour chaque page l'image du véhicule sur lequel on agit. C'est beaucoup moins austère, comme interface !
Il s'agit donc de faire une photo de son véhicule posé de côté sur une feuille blanche et bien éclairée.
Puis, dans un logiciel gratuit comme Paint, on "détoure" le véhicule (on supprime tout le blanc qui entoure le modèle).
Cela rend le fond de la photo invisible.
En le sauvant au format ".png", on conserve cette invisibilité et on peut mettre ce modèle sur n'importe quel fond.
Comme il faut imposer une échelle, je propose de sauvegarder toutes les photos en 200 pixels de haut. C'est comme ça que le programme a été conçu.
Dans un premier temps, on rogne l'image dans un rectangle qui touche le véhicule en haut, en bas, à gauche et à droite. Puis on réduit l'image en utilisant "Image/Redimensionner" et en cochant "Conserver les proportions". Et on impose 200 pixels de haut, ce qui calcule la longueur de l'image.
Une image "pèse" ainsi environ 250 Ko.
Comme nous sommes sur un site communautaire, si quelqu'un a déjà l'image d'un véhicule, il peut en faire profiter les autres.
Ne vous gênez pas pour utiliser mes images si vous en avez besoin.
Page gestion :
C'est sur cette page qu'on arrive quand on lance le programme.
Là, l'image est prépondérante (elle sera plus petite dans les onglets du décodeur).
Le premier usage de cette image, c'est qu'on peut sélectionner le véhicule sur lequel on va agir.
Soit on avance de 1 en 1 avec les petits boutons bleus en dessous de l'image.
Mais avec 600 wagons, on ne peut pas agir ainsi…
C'est à ça que sert le curseur horizontal en dessous de l'image : on dégrossit la recherche, puis on affine avec les boutons.
Remarque :Comme on est sur une voie isolée, on n'agit que sur un et un seul véhicule.
Et, dans ce véhicule, il ne peut y avoir qu'un décodeur, associé à ce véhicule.
C'est une limitation, c'est vrai, mais c'est un début.
Deux cases, en dessous de l'image :
Les infos issues de "Materiel.tsv" concernant le véhicule et celles concernant le décodeur éventuel associé.
ID(+1) vaut ici 1/21 (1er véhicule sur 21 dans la liste)
Les boutons :On peut ajouter, mettre à jour ou retirer un décodeur dans le véhicule.
Pour ajouter un décodeur, il faut connaître son fabricant, sa famille et son modèle.
Et c'est là que les ennuis commencent : en général, on n'en sait vraiment rien…
J'ai donc crée un décodeur générique :
Fabricant = NMRA
Famille = famille_ generique
Modele = modele_generique
Cela permet de lire le CV8 (en lecture seule, voir la norme) qui donne le numéro du fabricant.
La dernière liste du NMRA date du 24/08/2020 et est en PJ.
Par exemple, Zimo a le numéro 145, qu'on retrouve donc dans le CV8.
C'est là que les dimensions exactes du décodeur vont servir, mais il faut aller sur internet.
On doit, au moins, trouver la famille.
J'avoue que c'est un défaut de mon programme : je ne sais pas aller plus loin.
Avez-vous une idée ?
Deuxième série de boutons : les copies.
On peut trouver intéressant de ne pas avoir à recopier un à un les CV d'un décodeur vers un autre décodeur.
Il existe à cet effet une fonction copier-coller de TOUS les CV d'un décodeur vers un autre.
On commence par aller sur le véhicule à copier.
On appuie sur "Copie". On peut encore changer de véhicule à ce stade.
Puis on appuie sur "Coller".
A ce moment, on a deux fois la même image en bas.
Mais si on bouge le curseur (ou on appuie sur les petites flèches de chaque côté), on change l'image du véhicule dans lequel les CV seront copiés.
Il suffit alors d'appuyer sur le bouton : "Réaliser la copie effective" ou "Sortir de la copie sans rien faire"
C'est dans cette fonction qu'on apprécie particulièrement d'avoir les images des véhicules !
Troisième série de boutons : les filtres.
Pour ne pas parcourir 600 wagons, on peut restreindre avec les filtres proposés :
Échelle, Moteur, DCC, Marque loco, propriétaire et, évidement, Effacer filtres.
Évidemment, plus on filtre, plus le compteur associé à ID(+1) diminue et, par voie de conséquence, l'écart, pour passer d'un véhicule à l'autre, augmente.
La ligne du curseur fait 1126 pixels (= 1366-240). On peut donc, théoriquement, gérer 1126 véhicules.
Dans l'exemple, comme il y a 21 véhicules, l'écart entre 2 véhicules est 1126/21 = 53 pixels.
Composition des trains :
Là, je n'ai pas encore développé jusqu'au bout.
L'idée est de sélectionner un véhicule en haut et d'appuyer sur "+" pour l'inclure dans un train et "-" pour retirer un véhicule dans le train, en bas.
Puis sauver ces compositions dans un fichier de plus dans "Communs".
A suivre. Je pense que c'est assez simple.
Les onglets :
En cliquant sur "Mise à jour" dans la version actuelle du programme, sur le véhicule "Loco0", on passe aux onglets, dans le même genre que Decoder Pro's.
Je n'ai, pour l'instant, développé que les 7 premiers onglets, parce que ce sont les plus utiles.
Je continuerai le développement des autres onglets quand j'aurai passé un cap fondamental : la lecture et l'écriture dans le décodeur.
Et là, comme demandé dans mon post du 06/09/20, je vais avoir besoin d'aide.
Par avance, merci.
Tout d'abord, lors d'échanges en juillet 2018, Pierre (Pierre59) m'avait proposé un programme capable de reconnaitre automatiquement sur quel port est branché l'Arduino depuis Processing.
C'est une pure merveille qui fonctionne sur Windows, Mac et Linux !
Si vous n'avez rien branché, il vous signale qu'il ne trouve pas l'Arduino, évidement.
Mais si vous avez branché l'Arduino, il vous donne dans une String le nom du port.
Par exemple : "Trouvé l'Arduino sur le port : COM4" pour Windows.
Fort de cette information, vous avez construit un port série entre l'Arduino (qui contient le programme de gestion DCC) et Processing.
On va pouvoir faire des échanges entre les deux programmes.
C'est à cette tâche que je vais m'atteler maintenant.
Dit autrement, mon programme actuel en Processing n'est qu'une IHM, avec un canal série, quand même.
Mais il fallait bien développer l'IHM pour savoir quelles informations échanger avec le gestionnaire DCC sur l'Arduino.
Interface Homme Machine :
Elle fait quand même plus de 5 000 lignes et mérite d'être décrite.
Dans un premier temps, je me suis attaché aux onglets du "Zimo/MX620//MX620 Version 9.12" car c'est l'un de ceux qui en a le plus dans Decoder Pro's.
Qu'on ajoute un décodeur ou qu'on le mette à jour, on tombe sur l'onglet "Fiche"
En haut, en vert, 3 cases qui se dimensionnement en fonction de leur contenu correspondent :
-> Le fabricant du décodeur
-> La famille du décodeur
-> Le modèle du décodeur
Au dessus des onglets, deux boutons explicites :
-> Mettre à jour et sortir
-> Sortir sans mettre à jour
Puis les 23 onglets de CE décodeur.
Le nombre d'onglet dépend du décodeur et est entré "en dur" dans le programme.
Pour chaque décodeur décrit, on devra donner les onglets dont il est composé et, dans chaque onglet, définir les groupes de boutons, puis les boutons et leur fonction spécifique.
Fort heureusement, on retrouve certains onglets dans tous les décodeurs (comme "Fiche") et il n'est décrit qu'une fois. C'est quand même un minimum.
On retrouve aussi certains groupes de boutons, certains boutons, …
Il n'empêche que la liste va être longue, très longue…
On retrouve dans chaque onglet :
-> L'image du véhicule
-> Le groupe de boutons "Boutons_validation_onglet"
-> Les boutons correspondants :
-> "Valider les choix pour cet onglet"
-> "Ne rien changer pour cet onglet"
Onglet "Fiche" :
On a :
-> Le choix du numéro du propriétaire qui sera dans le CV105.
En construisant le fichier "Proprietaires.tsv", il faudra bien faire attention à l'adéquation du nom du propriétaire et de son numéro (CV105). Il n'y a pas de garde-fou (pour l'instant, c'est en cours)
-> Les dimensions du décodeur qui sont "en dur" dans le programme
-> Le numéro du fabricant qui est en lecture seule dans le CV8
-> Le numéro de la version du décodeur qui est en lecture seule dans le CV7
Pour changer le numéro du propriétaire, on le tape au clavier, on fait RETURN
Le fond du bouton devient vert, preuve qu'on a bien pris en compte l'information.
C'est une constante pour tous les boutons.
Puis on appuie sur le bouton "Valider les choix pour cet onglet".
Cela met à jour le fichier "Materiel.tsv" (c'est fait) et le CV105 dans le décodeur (pour l'instant : non)
Le bouton "Valeurs usine" remet TOUS LES CV du décodeur dans leur version d'usine.
Sauf le CV105 qui est conservé.
En général, quand on fait ça, c'est que plus rien ne marche…
Il reste de la place pour d'autres informations. C'est voulu.
Notez que, de façon pédagogique, on sait, à chaque fois, sur quel CV on intervient, d'où vient l'info, etc…
On sait ce qu'on fait, au fur et à mesure. Cela peut même servir d'aide mémoire.
C'est tout pour aujourd'hui.
A suivre.
Denis