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 - Jeje_12_34

Pages: 1 2 [3] 4 5 ... 7
31
case EVENT_SELECT:
if (this->valueEdited)
{
if (!this->undefValue)
((ControllerDccpp *)DcDccController::pController)->WriteCv(this->cvAddress, this->value);
}
else
{
this->valueEdited = true;
int val = ((ControllerDccpp *)DcDccController::pController)->ReadCv(this->cvAddress);
this->undefValue = (val < 0);
if (val >= 0)
this->value = val;
else
this->value = 0;

showValue = true;
}
break;
Cette ligne  :
  int val = ((ControllerDccpp *)DcDccController::pController)->ReadCv(this->cvAddress);

Ne devrait pas être :
int val = ((ControllerDccpp *)DcDccController::pController)->ReadCv(this->cvAddress, this->value);

?

32
Bonjour a tous

A présent, toutes mes locos fonctionnent parfaitement sous DCC++ et DCCpp grâce à la rustine citée plus haut..

Je continue mes tests quand je peux, pour faire fonctionner correctement cette géniale DcDccNanoController, surnommée "ma petite"

J'ai lancé en parallèle ma "grosse centrale JMRI" et ma "petite". Je change simplement la connexion sans rien toucher d'autre pour passer de l'une à l'autre.

Contrairement à ce que j'ai écrit plus haut :

Par" ma petite" :

Je pose ma loco "21" et tente de lire un de ses CV , par exemple le 68 : la valeur affichée est  :  "021".
J'enlève la loco et tente de lire le  CV68  avec une piste vide : la valeur du CV68 affiche  "---" . Donc la centrale lit bien que la piste est vide et affiche la valeur en conséquence.
Je pose ma loco "14" et tente de lire le CV68 : la valeur affichée est "014" .

Je vais sous JMRI : je vois la valeur du CV 68  égale  09.
Je vais sur ma petite centrale : je lis le CV 68 : "014"  !    Je modifie cette valeur et je mets 18 dans le CV68. l'affichage affiche bien "018". Pour autant, si je sors de ce sous-menu,  par exemple pour lire un autre CV ,   puis que je retourne lire la valeur du CV68,  c'est redevenu "014".

Alors, je retourne sous JMRI et lis la valeur du CV 68 :  "18"   !?!?

La petite centrale modifie bien le contenu des CV !
C'est juste qu'elle n'affiche pas la valeur du CV qu'on lui demande, mais toujours la valeur du CV1.

Bien sur le CV68 est un exemple . Le symptôme est la pour tous les CV (sauf bien sur le 01). J'en ai testé plusieurs et sur plusieurs type de décodeurs.

Je pense comme Thierry, que c'est un bug logiciel, pas matériel.
Pourtant,  j'ai cru comprendre que d'autres que moi n'ont pas ce problème ?

J'ai beaucoup cherché en fouillant dans le code.
C'est vraiment trop ardu pour moi, encore.

Peut être un jour ...


Jerome, qui finit ses vacances sans avoir résolu ce problème   :'(


33
Bonjour Dominique

Les seules modifications de Thomas ne m'avaient pas suffit pour résoudre mon problème.

C'est bien l'ensemble des 8 modifications proposées dans les fichiers  (fournis me semble t il  par le service technique de D&H, avec l'aide de Thomas) qui m'ont aidé.

Je n'ai pas trop compris pourquoi il désactivait deux lignes en les commentant, par exemple.

 :)




34
Moi, je ne touche plus a rien .  je vais sagement attendre que Dominique teste  8)

35
Bonsoir

Bien que je ne l'utilise pas encore, j'ai déjà installé DCCpp dans mon IDE
Je dispose de la  version  : 02/04/2020 V1.4.1

J'ai donc jeté un coup d'œil et je pense avoir identifié les 8 endroits à modifier.
En fait, ce sont à chaque fois trois ou quatre lignes qui se suivent et qui sont strictement identiques  à celles que j'ai déjà modifiées avec succès dans DCC++ et dans DcDccNanoController .

Dans les extras fournis avec la bibliothèque,  on trouve les sources src  et les lignes y sont numérotées.

dans le fichier PacketRegister.cpp
la 419 et la 433 à modifier en : loadPacket(0, bRead, 3, 1) au lieu de loadPacket(0, resetPacket, 2, 1);
la  521 et la 591 à commenter pour qu'elles ne s'exécutent pas. // loadPacket(0, resetPacket, 2, 1);
la 533 et la 603 à modifier en : loadPacket(0, bWrite, 3, 1) au lieu de  loadPacket(0, resetPacket, 2, 1); 

dans le fichier  PacketRegister.h
la ligne 18  : mettre la valeur 250 au lieu de 500
la ligne 20   : Attention, la constante en "dur" 30 a été remplacée par  : DCCpp::setAckThreshold
Je présume qu'il suffit de la définir quelque part dans votre  script à 5 , ce que je ne sais pas encore faire, mais vous surement oui :)
La documentation indique que DCCpp::setAckThreshold est définie par défaut à 30, mais je n'ai pas trouvé où c'était.

Jeudi, je pourrai vous joindre les fichiers modifiés, si vous le souhaitez.
MAIS JE NE GARANTIS RIEN :) Je ne peux pas tester.

Bonne soirée .
Jérôme, qui n'aime pas lâcher un os tant qu'il ne l'a pas rongé jusqu'au bout  8)

36
Bonsoir

J'ai une  bonne et un mauvaise nouvelle, je commence par laquelle ?  :P

Concernant le problème N° 1:
Les modifications apportées en 8 endroits en tout dans les fichiers cités plus haut donnent entière satisfaction.
Toutes mes locos sont désormais automatiquement détectées par cette petite centrale
Il s'agit donc bien d'une incompatibilité avec le DCC++ original et les nouveaux décodeurs.
La rustine fonctionne pour moi ... youpi !


Concernant le problème N°2 :

J'ai passé une bonne partie de la journée à essayer de comprendre le code.
J'avais dans l'idée de trouver l'endroit où était demandé l'affichage de l'adresse autodetectée  (donc le CV1) dans le menu configDCC --> Adresse  puisque cet affichage fonctionne correctement .
Et ensuite de comparer avec l'endroit où est demandé l'affichage des autres CV dans  configDcc-->modif CV
A la recherche de la virgule manquante ... :)
Hélas ? Je ne trouve pas. Et je ne comprends pas "comment ça marche" :)

Toutes les valeurs affichées pour un  CV est en fait la dernière  "Valeur"
Je m'explique :
Par exemple si je cherche à modifier les CV de la  loco 021 qui a été détectée toute seule , toutes les valeurs de tous les CV est affichée 21!
ET pire : si je change de loco sans chercher à aller voir son adresse,  tous les CV restent affichés ... 21 :)

Thierry si tu veux que je fasse d autres tests, je pourrai Jeudi et Vendredi.

En attendant .. je deviens de moins en moins néophyte  ;D

Bonne soirée a tous

Je vous joins les fichiers modifiés.
pour remplacer  les fichiers que vous avez a cet endroit :
\Arduino\libraries\DcDccNanoController\src\DCCpp

37
Bonsoir Tony

Je pense que j'ai compris comment faire, mais je ne suis pas certain.

vois la page 5 ce post et la réponse de Thierry
https://forum.locoduino.org/index.php?topic=752.60

Je pense qu'il suffit de modifier ces fichiers (avec notepad)  dans ton répertoire  arduino/libraries/DCCpp/src

Je ne peux pas tester, n'ayant aucune centrale sous DCCpp mais demain je teste de faire les modifications pour DcDccNanoController





38


Bonsoir

Pour résoudre le problème N°1, est ce que la solution est de modifier avec un traitement de texte basique (notepad ?) les deux fichiers PacketRegister.cpp et PacketRegister.h situés dans le répertoire suivant sur mon ordinateur :

D:.........\Arduino\libraries\arduino_378281\src\DCCpp

Ces deux fichiers ressemblent furieusement à ceux que j'ai modifié pour faire fonctionner DCC++ et mes décodeurs D&H.


Puis sauvegarder ces deux fichiers à l'endroit où ils sont déjà puis recompiler  le tout dans l'IDE ?

Et enfin, bien sur, téléverser le nouveau programme dans le nano ?


PS : je ne comprends pas pourquoi le répertoire s'appelle arduino_378281 et pas DccDccNanocontroller, puisque c'est bien la bibliothèque qu'il contient.

39
Bonsoir

J'ai résolu mes problèmes de compatibilité entre les décodeurs D&H récents et la centrale JMRI/DCC++.
J'ai fait un post sur ce forum dans ce sens.

Je vais maintenant tenter de faire fonctionner cette merveilleuse  petite centrale "toute prête" avec mes 5 locos.

Pour cela, j'ai deux problèmes à résoudre :

1) appliquer à DcDccNanocontroller les 8 corrections qui ont permis à DCC++ de gérer correctement mes décodeurs D&H récents, tout en conservant la gestion des deux anciens.
2) résoudre le bug d'affichage décrit plus haut.

Je ne vous cache pas que je m'avance vers l'inconnu.
Je ne sais pas modifier une bibliothèque et j'ai encore énormément à apprendre sur la programmation  (this->  Kesako? j'ai pas compris à la première lecture des tutos de ce site   )
Je vais prendre mon temps, comme d'habitude.
Mais, tout éclairage sera bienvenu.

J'ai auparavant besoin d'une confirmation:
Est ce que mes décodeurs risquent de griller si je me trompe?


Jerome, qui vient de passer toute la journée sur ses écrans et qui va faire une pause jusqu'à Lundi !  :)

40
Je me réponds au lieu d'éditer mon précédent message, pour éviter que ce post ne passe inaperçu

J'ai apporté les modifications décrites dans les deux fichiers précédemment communiqués par bigboy.
Pour mieux comprendre, au lieu de remplacer les fichiers, j'ai joué aux "8 erreurs".

Car oui, il n'y a que 8 modifications à faire, en tout, pour que TOUT FONCTIONNE ! correctement.

Je suis trop content, et en prime  ça m'a bien occupé mon 15 aout coincé à la maison  :)

Rappel de ma configuration  : LA "Centrale JMRI"  décrite sur ce site (qui n'utilise pas DCCpp mais le DCC++ original), liaison Ethernet  et des décodeurs D&H récents, mais récalcitrants ! Les anciens étant bien plus malléables ... ;)

Voici les modifications apportées :
Dans l'IDE ARDUINO :

dans  l'onglet "PacketRegister.cpp"
- modifier les lignes  238 et 262 en : loadPacket(0,bRead,3,1);
- "commenter" les lignes 303et 361 pour qu'elles ne s'exécutent pas.
- modifier les lignes  318 et 376 en : loadPacket(0,bWrite,3,1);

 dans l'onglet "PacketRegister.h" :
- Ligne  18  :  remplacer 500 par 250
- Ligne 20  :   remplacer 30 par 5


Jérôme, trop trop content !
Thierry, maintenant je vais essayer de comprendre pourquoi  ma petite centrale "DCDCC" ne veut pas afficher mes CV :)

41
Milles merci

Yapuka essayer :)

42
Bonjour

Ci dessous copie de mon post sur le forum du N  :

Bonjour !

Ce matin , j'ai apporté les modifications préconisées.

Désormais, JMRI reconnait les décodeurs et leur versions. Je peux créer les nouvelles locos rien qu'en les posant sur la voie de programmation  Very Happy

Je peux lire en intégralité toutes les valeurs des CV de toutes les machines en ma possession.

Je peux  piloter toutes les machines sur la voie principale. Very Happy

MAIS  :
Les valeurs des décodeurs D&H récents restent immodifiables sur la voie de programmation. Alors que les anciens le sont à volonté.

Sur la voie principale, j'arrive à changer les CV1, malgré la réception d'un message d'erreur.
Je n'ai pas tenté de modifier d'autres CV sur la voie principale, j'ai vraiment trop peur de cramer quelque chose.

Je cherche donc encore.

Dans le fil de Trainboard, il est question à un moment donné de 2 "onglets" à modifier. Mais ils ne disent pas ce qu'il faut faire dans le 2e !
Malheureusement, je n'arrive pas à m'inscrire à Trainboard pour récupérer les zip censés regrouper toutes les modifications à effectuer.
Je ne reçois pas le mail pour activer mon compte ... bizarre.

Je continue à chercher.

Si l'un de vous est membre de Trainboard, peut-il m'envoyer les fichiers zip proposés dans le 12eme message de ce sujet ?
https://www.trainboard.com/highball/index.php?threads/dcc-issues-with-d-h-10c-resolved.106064/

Par avance merci !

43
Bus DCC / Re : Les Nistes à mon secours SVP
« le: juin 22, 2020, 04:41:00 pm »
Bonjour Tony

Vois sur le forum du  N  GVAX69  .. De plus,  il peut aussi se charger lui même de la digitalisation avec un retour impeccable .


J'ai fait digitaliser mes anciennes par lui . A part l'incompatibilité des Décodeur D&H avec DCC++, c'est vraiment parfait.
IL faut donc bien lui préciser en amont que le système est DCCPP :)

Le matériel m'est revenu plus neuf que quand je les lui ai envoyé :)

Et tout cela avec une patience d'ange et une disponibilité hors pair.

44
Bonsoir

Merci Thierry pour cette réponse.

Ca commence a être tres chaud pour moi au niveau compréhension, mais je prendrai mon temps et irait creuser cette piste dès que possible (tres certainement en Aout, les jours où je serai solo à la maison)

J'ai également une autre piste suite à des lectures de forums divers.
Il s'agirait peut être d'un défaut du booster .
Si j'ai bien compris ce pourrait donc etre mon LMD18200 qui serait en cause ?
Je le remplacerai par le gros booster de la centrale JMRI (oui, je sais c'est mal de mettre du 10A :) ) et on verra bien  . ;)
Je vous tiens au courant   :)

J édite pour une précision . L'adresse de la loco s'affiche correctement.
Ce sont les valeurs de tous les autres CV qui s'affichent mal. 
QUestion a Thierry : est ce le meme sous programme qui lit et affiche l'adresse de la loco  et les valeurs des CV ? Je viens de jeter un œil rapide dans le fichier indiqué plus haut . C'est ardu quand même :)

45
Bonjour

Merci Marcel :)

Nous allons pour l'instant oublier mes trois motrices nouvellement digitalisées et pour lesquelles j'ai réussi à changer les adresses via JMRI et la voie Principale.
C'est le seul CV modifiable via JMRI,  qui envoie, pour les autres CV, des erreurs 303 et 308 a qui mieux mieux suivant qu'on est sur la voire Prog ou sur la voie Main.
Quand  à la petite centrale DCDCC, elle  reste sur "---" pour tous les CV et  ne modifie même pas le CV1.
Il me semble que nous sommes dans le cas d'une certaine incompatibilité entre ces décodeurs et DCC++.
Ce n'est pas ce qui me préoccupe, je verrai cela plus tard.
Mes 5  motrices tournent indépendamment, avec leurs 5 adresses différentes, et cela me convient pour l'instant.

Non, je "chipote" pour autre chose :

J'ai deux autres locos, l'une une équipée d'un Viesman 5245   (la 21) et l'autre  d'un D&H DC10 de 2016 (la 42) .
JMRI lit et écrit sur n'importe lequel de leurs CVs "accessible". L'identification automatique a également  correctement fonctionné.

Et la petite centrale DCDCC aussi !
Elle lit et écrit sur tous les CV  .
J'ai testé . J'ai modifié via la petite centrale les CV4 des deux locos et j'ai été les lire via JMRI : les valeurs sont bien modifiées.

Mais ….
Ma petite centrale n'affiche pas ce qu'elle lit .
Elle affiche toujours  l'adresse au lieu de la valeur des CV .
A noter que dans le menu adresse, l'affichage de l'adresse se fait correctement quand on change de motrice sur le rail.

C'est tout ce qui me tracasse pour l'instant  :)

J'ai été voir le sketch ...  Je n'ai rien trouvé qui puisse régler cela.

C'est donc, à mon sens, un problème matériel de ma centrale .
Une mauvaise soudure quelque part ? Mais alors pourquoi l'adresse s'affiche-t-elle correctement ?

Jerome
Je retourne a mes centrales !

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