Auteur Sujet: Bibliothèque DcDccNanoController Une petite centrale toute prête…  (Lu 73242 fois)

msport

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 2217
  • HO avec DCC++ en DIY Réseaux très éphémères
    • Voir le profil
Re : Bibliothèque DcDccNanoController Une petite centrale toute prête…
« Réponse #60 le: août 15, 2020, 07:56:07 pm »
Une réponse rapide pour éviter de mal dormir cette nuit :
à mon sens le seul problème que peut rencontrer un décodeur est physique : court-circuit, tension trop élevée, surchauffe ...
les erreurs de programmation accidentelles sont corrigées par un reset général dudit décodeur.
Cordialement

Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Re : Bibliothèque DcDccNanoController Une petite centrale toute prête…
« Réponse #61 le: août 15, 2020, 10:43:55 pm »


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.
Le néophyte de service !
Adhérent AFAN

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 812
    • Voir le profil
Re : Bibliothèque DcDccNanoController Une petite centrale toute prête…
« Réponse #62 le: août 16, 2020, 10:24:52 am »
Oui, c'est bien comme ça qu'il faut faire. Mais le nom du répertoire m'interpelle. Normalement, le nom du répertoire doit correspondre avec le nom du fichier .h de la bibliothèque. S'il n'y a pas d'autre répertoire DcDccNanoController, je conseillerais de renommer arduino_378281 en DcDccNanoController...

Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Re : Bibliothèque DcDccNanoController Une petite centrale toute prête…
« Réponse #63 le: août 17, 2020, 06:51:08 pm »
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
Le néophyte de service !
Adhérent AFAN

Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Re : Bibliothèque DcDccNanoController Une petite centrale toute prête…
« Réponse #64 le: août 25, 2020, 11:11:53 am »
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   :'(

« Modifié: août 25, 2020, 11:14:39 am par Jeje_12_34 »
Le néophyte de service !
Adhérent AFAN

Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Re : Bibliothèque DcDccNanoController Une petite centrale toute prête…
« Réponse #65 le: août 25, 2020, 02:58:39 pm »
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);

?
Le néophyte de service !
Adhérent AFAN

Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Re : Bibliothèque DcDccNanoController Une petite centrale toute prête…
« Réponse #66 le: novembre 14, 2020, 11:26:22 pm »
Bonsoir Thierry

Est il possible de mettre a jour cette bibliothèque  en la basant sur tes avancées dans DCCpp ?

Si ce n'est pas trop dur ni trop long a faire, bien entendu.

Je sais bien que tu es tres occupé par LaBox .

Je pourrai ainsi plus facilement te confirmer si mes décodeurs D&H  fonctionnent "sans rustines".

Bon Week end

Jerome
« Modifié: novembre 14, 2020, 11:35:49 pm par Jeje_12_34 »
Le néophyte de service !
Adhérent AFAN

Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Re : Bibliothèque DcDccNanoController Une petite centrale toute prête…
« Réponse #67 le: décembre 26, 2020, 05:37:12 pm »
Bonsoir

Mon fils a trouvé où l'affichage des CV pèche :  8)
J'avais bien dégrossi le travail, mais il a trouvé en quelques minutes  ;)

int ControllerDccpp::ReadCv(byte inCv)
{
// return this->mainRegs.readCVmain(1, 100+inCv, 100+inCv); Pourquoi 1 ?
return this->mainRegs.readCVmain(inCv, 100+inCv, 100+inCv);

dans le fichier   controllerDccpp.cpp  ligne :844  :)


A présent ma petite centrale fonctionne comme je le veux . Je n'ai pas encore testé les fonctions et leurs modifications.

Joyeux Noel a tous

Le néophyte de service !
Adhérent AFAN

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 812
    • Voir le profil
Re : Bibliothèque DcDccNanoController Une petite centrale toute prête…
« Réponse #68 le: décembre 26, 2020, 05:44:23 pm »
Bravo à ton fils. Je corrigerai la version officielle en ajoutant en même temps la lecture/écriture de Cv comme dans DCCpp.

Thierry

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 812
    • Voir le profil
Re : Re : Bibliothèque DcDccNanoController Une petite centrale toute prête…
« Réponse #69 le: février 16, 2021, 10:51:50 pm »
Est il possible de mettre a jour cette bibliothèque  en la basant sur tes avancées dans DCCpp ?

Une nouvelle version 1.2.1 est sortie sur notre forge https://github.com/Locoduino/DcDccNanoController, elle reprend les évolutions de DCCpp sur la lecture/écriture des CVs et la correction de ReadCvByte(). Je ne suis pas équipé en ce moment pour tester, donc si des problèmes se posent, faites moi savoir.

AmadeusHF

  • Full Member
  • ***
  • Messages: 205
    • Voir le profil
Re : Bibliothèque DcDccNanoController Une petite centrale toute prête…
« Réponse #70 le: février 17, 2021, 09:35:19 am »
Merci pour le boulot Thierry !
Sébastien.
La perfection est un chemin, non un but...

Dominique

  • Global Moderator
  • Hero Member
  • *****
  • Messages: 3048
  • 100% Arduino et N
    • Voir le profil
Re : Bibliothèque DcDccNanoController Une petite centrale toute prête…
« Réponse #71 le: février 17, 2021, 10:20:21 am »
Il est bon de rappeler de temps en temps que cette bibliothèque permet aussi de commander un train en mode analogique sous PWM. Cela permet de faire rouler un engin non équipé de décodeur DCC plutôt que de le laisser dans sa boîte ou cramer son moteur en le posant par inadvertance sur un voie alimentée en DCC.

Il faut juste faire attention à ne pas dépasser 12v d’alimentation (en fait, la tension maxi supportée par la machine).
Cordialement,
Dominique

Jeje_12_34

  • Jr. Member
  • **
  • Messages: 95
  • Double ovale N
    • Voir le profil
Re : Bibliothèque DcDccNanoController Une petite centrale toute prête…
« Réponse #72 le: février 17, 2021, 07:15:46 pm »
Merci Thierry. Je n'ai pas le temps de l'installer pour l'instant , mais je le ferai dès que possible et je te tiendrai au courant  :)
Le néophyte de service !
Adhérent AFAN