LOCODUINO

Parlons Arduino => Le logiciel DCC++ => Discussion démarrée par: lefebvre le avril 27, 2020, 08:26:43 pm

Titre: DCC+ JIMRI, erreur 308.
Posté par: lefebvre le avril 27, 2020, 08:26:43 pm
Bonsoir,

Je me suis lancé dans le montage de la centrale telle que décrite sur :
https://www.locoduino.org/spip.php?article253

L'électronique n'a pas fumé mais le téléversement ne fonctionne pas, il s'arrête à la compilation (vérification). J'ai le message d'erreur suivant :

DCCpp_Uno:184:2: error: #elif without #if
 #elif MOTOR_SHIELD_TYPE == 2
  ^~~~
Plusieurs bibliothèque trouvées pour "EEPROM.h"
Utilisé : C:\Program
exit status 1
#elif without #if

Mes souvenirs en C étant quelque peu dépassés, je n'avance pas ! Je précise que les modifications dans les fichiers sont conformes à ce qui est indiqué sur le site.

Jean-Luc

Titre: Re : DCC+ bug à la compilation (vérifier)
Posté par: Pyk35 le avril 27, 2020, 08:54:48 pm
Peux-tu préciser le nom du fichier qui t ‘a généré l’erreur? Est-ce dccpp_uno.ino? Car à la ligne 184, il n’y a pas du tout ça.

Titre: Re : DCC+ bug à la compilation (vérifier)
Posté par: lefebvre le avril 27, 2020, 09:06:39 pm
Voilà les lignes 183 et 184 :

// SET UP COMMUNICATIONS INTERFACE - FOR STANDARD SERIAL, NOTHING NEEDS TO BE DONE
#elif MOTOR_SHIELD_TYPE == 2

Effectivement, jamais entendu parler de ce elif

Du coup, j'ai rechargé les fichiers du GITHUB et ça fonctionne ! Pas compris ce que j'ai fait ...
Titre: Re : DCC+ bug à la compilation (vérifier)
Posté par: Pyk35 le avril 27, 2020, 09:44:30 pm
Il faut voir elif comme else if.

https://docs.microsoft.com/fr-fr/cpp/preprocessor/hash-if-hash-elif-hash-else-and-hash-endif-directives-c-cpp?view=vs-2019

++
Titre: Re : DCC+ JIMRI, erreur 308.
Posté par: lefebvre le avril 28, 2020, 02:09:04 pm
Bonjour,
Et merci, en fait, j'ai rechargé les fichiers et ça avance !
Sur mon installation, il faut d'abord cliquer sur Mode programming (dessin interrupteur qui passe alors au vert) avant de pouvoir cliquer sur NEW LOCO et de lancer la détection automatique (READ TYPE FROM DECODER).
Et là ça merdoie ! Quand je lance la détection, la locomotive (idem pour toutes celles que j'ai essayé) bouge sur les rails, tente de lire le CV8 (code constructeur qui est en lecture seule) et finit par donner ERROR 308 ... qui indique une absence de réponse de la part de l'engin interrogé !
Si quelqu'un a une idée  ...
Jean-Luc
Titre: Re : DCC+ JIMRI, erreur 308.
Posté par: Jeje_12_34 le avril 28, 2020, 09:08:42 pm
Bonsoir

N'est ce pas le problème de certains décodeurs qui ne se programment pas sur la voie de programmation, mais sur la voie principale ?

C'est peut être pas cela. Pour moi tout a fonctionné parfaitement du premier coup..
Titre: Re : DCC+ JIMRI, erreur 308.
Posté par: msport le avril 28, 2020, 10:57:41 pm
Pour sérier les problèmes entre JMRI et la centrale, je ferais le test à partir d'une BaseStation basique (style shield moteur sur Uno) avec les commandes depuis le serial monitor :
Sur voie prog : <R 1 123 123> et autres.
https://github.com/DccPlusPlus/BaseStation/wiki/Commands-for-DCCpp-BaseStation
Titre: Re : DCC+ JIMRI, erreur 308.
Posté par: lefebvre le avril 30, 2020, 11:07:54 am
Bonjour,
J'ai ignoré la détection automatique et imposé les détecteurs dont je me rappelais la référence.
Du coup, j'arrive à piloter les machines en question, ainsi qu'à paramétrer.
J'avance !
Titre: Re : DCC+ JIMRI, erreur 308.
Posté par: Jeje_12_34 le juin 03, 2020, 10:40:04 pm
Bonsoir

Je vais tenter cela quand j'aurai un peu de temps .

C'est la même erreur que j'ai avec mes locos nouvellement digitalisées.

Je connais leur type de décodeur.

Croisons les doigts :) :)
Titre: Re : DCC+ JIMRI, erreur 308.
Posté par: Jeje_12_34 le juin 08, 2020, 02:31:27 pm
Bonjour

Via la voie principale, j'ai réussi a forcer le changement des adresses.

A présent, je peux piloter mes "nouvelles" motrices indépendamment et c'est déjà un grand pas.

Néanmoins, l'accès et la modification des autres cv, que ce soit sur la voie de programmation comme sur la voie principale me restent impossible, pour l'instant.
Et bien sur, les locos ne sont toujours pas détectables automatiquement (erreur 308)
A noter que j'ai du programmer l'adresse de la fausse motrice, équipée d'un décodeur "accessoire", comme si elle était équipée du même décodeur que la motrice, avec bien entendu la même adresse, pour qu'elle daigne éclairer ses feux correctement :)

Mais comme je débute et que pour moi, voir tourner mes 5 locos me satisfait grandement, je vais laisser tomber mes investigations à ce sujet et passer à autre chose, le pilotage des aiguilles.

J'avais toutefois un début de piste :
Le firmware du décodeur de l'ancienne loco est le 3.06 et elle est détectée automatiquement et modifiable a souhait..
Toutes les autres, je les ai forcés au 3,11, puisque datant d'aujourd'hui. Si cela peut aider quelqu'un ...