LOCODUINO
Parlons Arduino => Le logiciel DCC++ => Discussion démarrée 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
-
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.
-
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 ...
-
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
++
-
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
-
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..
-
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
-
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 !
-
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 :) :)
-
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 ...