Auteur Sujet: Décoduino : une "centrale DCC" dédiée à la voie de programmation  (Lu 2788 fois)

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2047
  • 100% Arduino et N
    • Voir le profil
Re : Décoduino : une "centrale DCC" dédiée à la voie de programmation
« Réponse #45 le: octobre 15, 2020, 07:16:08 pm »
Bravo Denis,

Ça mériterait de sortir un article dans le site éditorial, dès que tu as une version de DECODUINO stable.

On en parle ensemble...

Amicalement
Dominique
Cordialement

DDEFF

  • Hero Member
  • *****
  • Messages: 576
    • Voir le profil
Re : Décoduino : une "centrale DCC" dédiée à la voie de programmation
« Réponse #46 le: octobre 22, 2020, 10:46:53 am »
Plus de 1000 ?

Quand j'ai estimé le nombre de décodeurs listés dans DecoderPros, j'avais dit, au pif, "plus de 1000". 8)
J'étais loin du compte !
Les gens de JMRI (prononcez "J'aime rail") sont vraiment sympas et leurs fichiers sont vraiment open-source.
En effet, on retrouve les listes dans le lien suivant :
https://www.jmri.org/xml/XSLT/CSVindex.shtml
Liste les tailles des décodeurs, liste des courants maximaux.
Les deux autres ne sont pas lisibles (ou je n'y suis pas arrivé…) ???

Comme tout est au format .csv (Comma Separated Variables = variables séparées par des virgules), c'est aussi lisible dans Excel très simplement.
J'ai regroupé tout ça dans un seul fichier, corrigé quelques erreurs de typographies, et traduit les inches en 1/10 de mm, les mm en 1/10 mm (c'est très dur ;D) pour ne plus avoir de virgules.
Puis j'ai ajouté les numéros de constructeurs de la NMRA pour le CV8.

Tout cela est dans un fichier Base_JMRI.tsv.

Et ce fichier compte … 2895 lignes !!! :o :o

J'ai un peu bricolé mon programme pour que tout puisse être affiché correctement, particulièrement dans les choix de décodeur pour un véhicule donné et, maintenant, moi aussi, j'ai accès à 2895 décodeurs !
Cela change du seul petit MX617 que j'avais avant ! :P

Magique ?

Passée la joie de la découverte, on reprend pied et tout n'est pas aussi parfait que ça :

1°)  Tout d'abord, les pièges de la transformation d'un fichier .csv en fichier Excel .xlsx amène quelques surprises.
Par exemple "1 A" se traduit bien par "1 A", ce qui est normal pour 1 Ampère.
Mais "1A" se traduit par "01:00 AM" …
C'est facile à corriger.

2°) Certains champs contiennent 3 variables (!) comme "1A (peak 1.5 A) for 3s".
Il m'a fallu redistribuer les infos dans 3 champs.
Et, là, c'est un problème, car s'il faut faire ça à chaque fois qu'une modif sera faite dans la base JMRI, on n'a pas fini !! Et c'est, pour l'instant, un traitement manuel…

3°) Il reste aussi quelques erreur de frappes (JMRI est mis à jour manuellement).
Par exemple, Digirails/Locomotive lighting//DR80015 a un courant max de … 900 A !!
Je pense qu'il s'agit de 900 mA, bien sûr.

4°) Certaines données doivent être vérifiées.
Au hasard (!), prenons le MX617 de Zimo.
Dimensions dans la doc Fleischmann : 12,0 x 8,5 x 2,0 mm
Dimensions JMRI :                                13,0 x 9,0 x 2,5 mm
Dimensions chez Zimo :                       13,0 x 9,0 x 2,6 mm

A part Fleischmann, l'erreur est minuscule et JMRI est très proche de la bonne valeur.
C'est une très bonne nouvelle. ;D

A partir du moment où JMRI est utilisé dans le monde entier, par des milliers de personnes, je pense que les infos qui s'y trouvent sont vérifiées, corrigées régulièrement.
Qu'il puisse rester quelques erreurs est possible, mais c'est certainement la base la plus à jour actuellement. ;)

Décodeur inconnu :

Il faut répondre à la question : "quel décodeur ai-je dans ma loco ?"
En général, c'est dans la doc de la loco, mais c'est plus compliqué si on achète d'occasion.
La première piste, c'est déjà de lire le CV8 pour trouver le fabricant du décodeur.
Puis le CV7 donne le numéro de version. Ça aide, en particulier pour Zimo.
Puis, je comptais sur les dimensions, mais il va falloir faire attention aux "détails". ;)

Les répertoires :

Brièvement évoqué au début de ce fil, je précise les choses avec les nouveautés :
 


Le répertoire Processing peut être n'importe où.
Par contre, l'arborescence doit être respectée. C'est très important.
Attention à la typographie. Il n'y a pas d'accents.
Les cadres, à droite, contiennent les fichiers.

Donc, au départ, créez où vous voulez l'arborescence des 4 répertoires Processing, Communs, Decoduino et Trains_TCO.

Je vous fournirais des fichiers .zip contenant le répertoire et les fichiers correspondants.
Bases.zip, Materiel.zip, Proprietaires.zip et Decoduino_V0_13.zip

Les fichiers Materiel.xlsx, Materiel.tsv, Proprietaires.xlsx, Proprietaires.tsv sont à votre main et contiendrons VOS informations. C'est pour ça qu'ils sont en jaune.
Je vous fournis un premier jet, avec MES informations, pour que vous ayez la structure des fichiers, que vous puissiez faire des essais.
Mais après, ce sera à vous de rentrer les infos de VOS matériels, VOS photos, …

Ce qui est important, c'est de voir l'évolution de ces répertoires dans le temps :
Dans le répertoire "Communs" se trouvent les fichiers communs à deux programmes génériques (Decoduino et Trains_TCO). Par exemple, les images de véhicules servent aux deux programmes.

Le répertoire "Decoduino" contient les diverses versions du programme du même nom dont on ne garde que la dernière.
De la même façon, "Trains_TCO" contient les diverses versions de ce programme dont on ne garde que la dernière.

Voici les fichiers.zip
https://www.locoduino.org/IMG/zip/decoduino_v0_13.zip
https://www.locoduino.org/IMG/zip/bases.zip
https://www.locoduino.org/IMG/zip/materiel.zip
https://www.locoduino.org/IMG/zip/proprietaires.zip

Futur :

Pour l'instant je n'ai traité que 8 onglets et sur une seule loco, avec un seul décodeur.
Ça marche, mais je serais intéressé par vos essais, sur d'autres décodeurs.
Il y a forcément des bugs que je n'ai pas encore vus.
Pour la suite, avez-vous une préférence pour les sons ou les allumages de feux ?

A suivre  :P
Denis

PS : Ah, oui, j'oubliais : je ne peux pas écrire dans le CV105.
Pas de pb dans le CV106, mais pas CV105. C'est bizarre. C'est pareil pour vous ?
« Modifié: octobre 22, 2020, 11:29:32 am par DDEFF »

DDEFF

  • Hero Member
  • *****
  • Messages: 576
    • Voir le profil
Re : Décoduino : une "centrale DCC" dédiée à la voie de programmation
« Réponse #47 le: octobre 22, 2020, 11:28:46 am »
Je me suis trompé pour le programme Decoduino.
J'avais mis la version qui ne connectait pas l'Arduino !!
(elle me sert pour la mise en page)

Voilà le bon lien
https://www.locoduino.org/IMG/zip/decoduino_v0_13.zip

jfs59

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Décoduino : une "centrale DCC" dédiée à la voie de programmation
« Réponse #48 le: octobre 28, 2020, 03:49:51 pm »
Bonjour

depuis quelques jours je suis avec intérêt ce thread.
j'ai donc décidé cet aprem d'installer le programme.

je précise de suite que si je programme en a peu prés tous les langages (html,jav,sql,ajax,c++,delphi,appinventor ... j'en passe comme le forth le fortran etc ...) je suis totalement novice en processing que je découvre avec ce post !

Donc je vais chercher processing et je l'installe (je passe sur la demande de don quand on clic ..) je crée les répertoires et je balance dedans les différents fichier a part tco puisque j'ai lu qq part que c’était pas utile.

je lance le programme et la évidement que du rouge ... bon je sais lire un message d'erreur et je finis par comprendre que certains fichiers ne sont pas lus car pas dans le bon dossier

il faut remonter decoduino_v0_13 au niveau de processing et pas dans le dossier Decoduino de l'arborescence ou alors changer dans le programme le chemin des fontes .ttf

je relance et patatras je tombe sur ca en rouge

C:\Users\J-F\Desktop\PROGRAMMES\processCommuns/
C:\Users\J-F\Desktop\PROGRAMMES\processCommuns/Bases/Base_JMRI.tsv does not exist or could not be read
NullPointerException

ca ne m’arrête pas je rebaptise Communs en processCommuns et le remonte d'un cran

j'arrive finalement a un panneau chargement de fichier
et ensuite a aucun arduino de branché ... bon la ok je savais que j'aurais été bloqué a un moment mais je m'attendais a avoir au moins l'affichage des pages et juste un contrôle au moment d'envoyer qq chose sur la sortie DCC.
De toute façon j'ai pas encore de loco DCC j'ai même pas de locos du tout ni même un bout de rail c'est juste un projet qui trotte dans ma tête.

Bon je ne suis pas entré dans le programme (et donc je ne sais pas si c'est facilement possible) mais je dois dire que pour un novice ça va pas être facile de trouver son chemin.

Ne trouvez aucune agressivité ou aucun reproche dans mes propos qui sont juste la constatation de mon expérience présente.

En tous cas déjà un gros remerciement pour le travail abattu.

Cordialement jfs59


jfs59

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Décoduino : une "centrale DCC" dédiée à la voie de programmation
« Réponse #49 le: octobre 28, 2020, 04:11:25 pm »
Bon j'ai triché un peu

dans connexion j'ai commenté une partie et gardé ca a la fin

    trouve = true;
    choix_du_vehicule = true;
    debut_comptage = millis();
    if (trouve) {
        texte_ecrire = "Arduino trouve sur le port "+s;
        choix_du_vehicule = true;
    } else {
        texte_ecrire = "Aucun Arduino n'est branché à l'ordinateur"
           +char(10)+char(10)+"Branchez un Arduino avec son MotorShield"
                    +char(10)+"De plus, l'Arduino doit contenir"
                    +char(10)+"le sketch DCC_controller.ino"
           +char(10)+char(10)+"Puis relancez le programme Decoduino";
        choix_du_vehicule = true;       
    }   
 
j'arrive a l'affichage. youpi

voila j'arrive a naviguer dans certaines page d'autres sont bloquantes car j'imagine que clicquer sur un onglet active une com DCC avec un retour qui évidemment n'arrive pas chez moi

J'ai quand même réussi a aller chercher un décodeur esu nano (celui que je vais installer dans des loco ana si mon projet se concrétise ) et joué un peu avec même si je sais pas trop ce que je fais .

je vais en rester la pour l'instant de mes test faute de ne pouvoir aller plus loin. En tous cas un gros investissement et un énorme boulot ! chapeau !

cordialement jfs59
« Modifié: octobre 28, 2020, 04:23:19 pm par jfs59 »

DDEFF

  • Hero Member
  • *****
  • Messages: 576
    • Voir le profil
Re : Décoduino : une "centrale DCC" dédiée à la voie de programmation
« Réponse #50 le: octobre 28, 2020, 06:44:08 pm »
Merci jfs59 pour ces efforts. 8)

J'avoue ne pas comprendre le pourquoi tous ces changements de répertoires.
Il faut bien reporter l'arborescence. C'est celle que j'ai sur mon ordi et elle fonctionne parfaitement.

1°) D'abord, Decoduino remonte dans l'arborescence jusqu'à la racine.
J'ai donc, chez moi :
R:\Documents publics\_Trains\Processing\Decoduino\Decoduino_V0_13\
On appele ça le "Repertoire_decoduino" (ligne 11)

2°) Puis on "remonte" en effaçant 26 caractères
On est donc à R:\Documents publics\_Trains\Processing\

3°) On "redescend" en ajoutant "Communs/"
R:\Documents publics\_Trains\Processing\Communs/
On appelle ça le "Repertoire_Communs" (ligne 21)

Certains pourraient être surpris d'avoir des "/" en Windows, mais c'est pour que ce soit compatible Windows et Mac.

Je pense que tes problèmes viennent du fait que tu n'as pas pris le répertoire "Decoduino_V0_13" (en orange sur le schéma), mais seulement les fichiers qui étaient dedans. Le .zip contient les fichiers ET le répertoire.

Il faut que je réexplique mieux, ce n'était visiblement pas clair.
Bravo pour avoir trouvé une solution quand même  ;D

Pour ton autre problème, évidemment, si tu ne mets pas d'Arduino... ::)

Il y a une solution plus simple pour essayer le programme, même sans mettre d'Arduino :
Tu vas dans le premier onglet (Decoduino_V0_13)
Tu commentes les lignes 69 à 74 et la ligne 76.
On garde évidemment la ligne 75.
Cela évite de bricoler ailleurs dans le programme.

Ceci dit, bravo pour ta ténacité et encore merci.

Denis

jfs59

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Décoduino : une "centrale DCC" dédiée à la voie de programmation
« Réponse #51 le: octobre 28, 2020, 07:49:38 pm »
Bonsoir vu les lignes de code en rouge j ai pensé que vous aviez gardé différentes configuration qui font que ça marche chez vous

J ai bien recopié exactement les dossiers du schéma bien mis tous les fichiers au bon endroit désolé

Quand je vois ca
processCommuns/Bases/Base_JMRI.tsv does not exist or could not be read

C est bien que le dossier a été déclaré processCommun et pas Commun dans le programme

Enfin j ai pas cherché plus loin mais il me semble nécessaire de vérifier ce point de même pour les fontes utilisées sauf à dire que le schéma de dossier donné est faux.

Cordialement jfs

Édit probable que le fait de remonter le premier dossier provoque effectivement ma deuxième erreur je vais tout affacer et recommencer
« Modifié: octobre 28, 2020, 08:03:58 pm par jfs59 »

jfs59

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Décoduino : une "centrale DCC" dédiée à la voie de programmation
« Réponse #52 le: octobre 28, 2020, 08:34:05 pm »
Bon j'ai tout réinstallé et effectivement ça marche

donc méaculpa j'ai du merder a la première j'avais pourtant tout vérifié deux fois (comme quoi ...)

désolé

DDEFF

  • Hero Member
  • *****
  • Messages: 576
    • Voir le profil
Re : Décoduino : une "centrale DCC" dédiée à la voie de programmation
« Réponse #53 le: octobre 28, 2020, 08:35:53 pm »
Bonsoir,

Voilà ce que j'ai chez moi :



Donc, il faut, dans un premier temps, récupérer les bonnes lignes de programme pour que le premier onglet soit identique à celui qui a été donné.

Puis créer 3 répertoires (par exemple sur le bureau) :
"Processing", "Communs", "Decoduino" avec l'arborescence ci dessus. On oublie pour l'instant "Trains_TCO".
Tous ces répertoires sont VIDES.

Puis il y a 4 fichiers .zip.
Le premier (Bases.zip, en bleu clair) contient, lui aussi, un répertoire "Bases" qui doit être mis en sous-répertoire de "Communs" qui n'est donc plus vide.
Le deuxième (Materiel.zip, en vert) contient un répertoire "Materiel" (sans accent), lui aussi sous-repertoire de "Communs"
Le troisième (Proprietaire.zip, en bleu foncé), contient un répertoire "Proprietaire" (sans accent), lui aussi sous-repertoire de "Communs"

Enfin, le programme Decoduino_V0_13, avec son répertoire de "Decoduino" vont comme sous-répertoire de Decoduino.

Il ne peut plus rester de "processCommuns". Le nom des répertoires est fixe.

Les fontes sont dans le répertoire "Data", fait partie de "Decoduino_V0_13" en tant que sous_répertoire.

    Repertoire_Decoduino = sketchPath("");
                                                                                                                              println(Repertoire_Decoduino);
    Courier12 = createFont(Repertoire_Decoduino+"data/SLC_.ttf", 12, true);
    Courier14 = createFont(Repertoire_Decoduino+"data/SLC_.ttf", 14, true);
    Courier17 = createFont(Repertoire_Decoduino+"data/SLC_.ttf", 17, true);
    fontUnits = createFont(Repertoire_Decoduino+"data/DSEG7Classic-BoldItalic.ttf", TAILLE_POLICE, true);
    textFont(Courier12);
    textFont(Courier14);
    textFont(Courier17);
    int Repertoire_Decoduino_length = Repertoire_Decoduino.length();
    Repertoire_Communs = Repertoire_Decoduino.substring(0, Repertoire_Decoduino_length-26)+"Communs/";
                                                                                                                              println(Repertoire_Communs);

Puis, dans l'onglet "Tables" :
//----------------------------- charge_table_Materiel() ------------------------------------
void charge_table_Materiel() {
    Materiel = loadTable(Repertoire_Communs+"Materiel/Materiel.tsv", "header, tsv");

//----------------------------- charge_table_Proprietaires() ------------------------------------
void charge_table_Proprietaires() { 
    Proprietaires = loadTable(Repertoire_Communs+"Proprietaires/Proprietaires.tsv", "header, tsv");

//----------------------------- charge_table_Base_decodeurs() ------------------------------------
void charge_table_Base_decodeurs() { 
    Base_decodeurs = loadTable(Repertoire_Communs+"Bases/Base_JMRI.tsv", "header, tsv");

DDEFF

  • Hero Member
  • *****
  • Messages: 576
    • Voir le profil
Re : Décoduino : une "centrale DCC" dédiée à la voie de programmation
« Réponse #54 le: octobre 28, 2020, 08:48:05 pm »
Heureux que ça marche. J'étais sûr de moi.
De toutes façons, je ferai un article et ce sera utile de bien préciser. Ce n'est pas du temps perdu.

Je suis en train d'ajouter une mini commande de trains pour ceux qui ont, comme voie d'essai, un rond indépendant du réseau.
Un beau pupitre de commande "vintage" avec des vieux cadrans et de tubes nixies... ;D

Denis :P

jfs59

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Décoduino : une "centrale DCC" dédiée à la voie de programmation
« Réponse #55 le: octobre 28, 2020, 08:53:30 pm »
j'ai pas réussi a me depatouiller avec les modifs de mise en commentaire

j'ai ajouté ca

static final private boolean DEBUG = true; // false
 
au début

et
                     if (DEBUG)
      {trouve = true; } else {connexion();  }

 a la place de connexion();

plus rapide et plus concis pour moi

EDIT j'ai cherché désespéramment le TCO ... et j'ai abandonné il est ou ce truc même google connait pas ou alors j'ai pas tapé ce qu 'il faut ....
« Modifié: octobre 28, 2020, 08:59:52 pm par jfs59 »

DDEFF

  • Hero Member
  • *****
  • Messages: 576
    • Voir le profil
Re : Décoduino : une "centrale DCC" dédiée à la voie de programmation
« Réponse #56 le: octobre 28, 2020, 10:40:05 pm »
Ta solution est assez simple aussi.

Le programme Trains_TCO fonctionne, pas assez bien à mon goût et je dois le revoir, surtout en lien avec Communs qui n'est pas fait.
En particulier pourquoi il y a aussi des véhicules.

Tu auras une idée là :
http://forum.locoduino.org/index.php?topic=211.0
Une idée seulement : ça n'est pas branché à un réseau.
Il n'y a pour l'instant que des trains virtuels.

Mais l'expérience que j'ai eu depuis avec Decoduino devrait m'aider à faire cette connexion (mais c'est une autre paire de manches)

Denis :P
« Modifié: octobre 29, 2020, 07:23:46 am par DDEFF »

jfs59

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Décoduino : une "centrale DCC" dédiée à la voie de programmation
« Réponse #57 le: octobre 29, 2020, 10:58:37 am »
Re bonjour

J'ai essayé (et réussi ) de créer un exécutable. Évidemment la hiérarchie des dossiers est plus la bonne et il faut tout remettre a plat.

je connais pas processing plus que ca mais il semblerait qu'il faille au minimum

Decoduino_V0_13.exe plus des dossiers data , java , lib  et évidemment remettre dans l'arborescence le commun a sa bonne place.

le dossier source est lui inutile.

le concept Decoduino puis decoduino_version s'il peut être utile en dev (et encore) me semble compliqué et redondant en exploitation.



Donc pour en venir a mes essais si je comprends bien (et vous me pardonnerez si c'est pas le cas vu mon noviciat) pour ajouter une loco je dois le faire a la main dans le fichier matériel ??

si c'est le cas n'est il pas plus simple d'avoir une page ajout de matériel qui s'auto remplie avec un profil standard resterait a choisir une photo un décodeur un propriétaire un nom etc ....
enfin je dis ca mais comme je ne vois pas trop l'utilisation globale je pars d'une réflexion telle que :

j’achète une loco (ou je fabrique) analogique  que je digitalise en choisissant un décodeur ... il y a fort peu de chance que je retrouve ce matériel en existant .... je dois donc créer le profil de toute pièce.

Mais je n'ai pas forcément compris la philosophie de ce programme.

cordialement jfs

DDEFF

  • Hero Member
  • *****
  • Messages: 576
    • Voir le profil
Re : Décoduino : une "centrale DCC" dédiée à la voie de programmation
« Réponse #58 le: octobre 29, 2020, 11:22:35 am »
Bonjour,

Je note qu'on peut facilement faire un .exe avec un programme Processing.
Quelle est sa taille, comparée à la taille des zip ?

Ceci étant, ce serait utile en commercialisation, pour qu'on n'aille pas voir comment ça marche.
Mais sur Locoduino, c'est justement le contraire : on veut que les gens aillent voir comment c'est fait, y piocher des idées, ...

On ne garde que la dernière version, évidemment. Et le fichier zip s'intègre facilement dans une arborescence existante.

Pour ajouter une loco, on le fait à la main, dans le fichier Materiel.xlsx (qu'on transforme ensuite en Materiel.tsv).
On met tous les CV à "-1" et via une copie (page véhicule), on recopie les CV d'une loco qu'on connait.
Puis on bricole les quelques CV spécifiques à cette nouvelle loco.

Il n'y a que des infos spécifiques à rentrer : la photo, le nom du fichier .png,



Explique-moi ce qui, dans ces infos, correspondrait à une loco standard ?

Cordialement
Denis  :P

jfs59

  • Newbie
  • *
  • Messages: 13
    • Voir le profil
Re : Décoduino : une "centrale DCC" dédiée à la voie de programmation
« Réponse #59 le: octobre 29, 2020, 11:50:27 am »
Citer
Pour ajouter une loco, on le fait à la main, dans le fichier Materiel.xlsx (qu'on transforme ensuite en Materiel.tsv)
.

j'ai essayé (nouvelle image + ajout d'une ligne en copié collé puis changement nom et image) et pas réussi car pas réussi a trouver l'option tsv dans mon excel .... :-[

Citer
Explique-moi ce qui, dans ces infos, correspondrait à une loco standard ?
aucune idée j'ai une loco (sans rail) que j'ai retrouvée dans le grenier et elle a 40 ans .... si y a pas de loco standard un profil vide remplissable en changeant un choisissant un décodeur une image et un nom .... ::)

Citer
Ceci étant, ce serait utile en commercialisation, pour qu'on n'aille pas voir comment ça marche.
Mais sur Locoduino, c'est justement le contraire : on veut que les gens aillent voir comment c'est fait, y piocher des idées, ...

C'est aussi utile pour ceux qui veulent pas forcément s'embarquer dans l'install de plein de truc et ne voulant pas forcément mettre les mains dedans .. utilisateur lambda  :)

et puis l'un ne va pas forcément sans l'autre j'imagine un github ou autre avec la version source et la versions d'exploitation.

Citer
Je note qu'on peut facilement faire un .exe avec un programme Processing.
Quelle est sa taille, comparée à la taille des zip ?

ca prend 2 mn le plus long a été de rechercher l'option et de vérifier ce quelle faisait et l'utilité des fichiers.

l’exécutable fait 90 k  mais évidemment le java et le lib ça pèse 190 Mo

je vais zipper pour voir

edit en zippant locoduino uniquement ca fais 55 Mo je doute que ca grossisse plus vu que quand on a passé le minimum requis la complexité du programme influe plus énormément je supose que c'est comme les autres langages
« Modifié: octobre 29, 2020, 11:55:05 am par jfs59 »