Discussions Générales > Bus DCC
Perte des fonctions
Dominique:
Bonjour à tous,
Il suffit d'ajouter l'envoi périodique des fonctions dans la loop(), ou au moins de les répéter après une coupure longue (supérieure à la durée de réaction des détecteurs de conso)
Tony04:
Bonsoir (jour) Dominique,
c'est exactement ce que j'ai fait, mais si DCCpp pouvait garder en mémoire comme la vitesse par exemple, ce serait plus PRO, non ?
Bon début de semaine à tous.
Antoine
Dominique:
Ce n'est pas facile de demander cela à DCC++ !
Pourquoi ?
Parce que les commandes de vitesses sont inscrites dans des registres qui sont relus périodiquement et indéfiniment; il y en a 12, un par machine.
mais les commandes des fonctions sont inscrites dans un seul registre, pour toutes les machines donc elles ne peuvent pas être répétées.
S'il fallait répéter les commandes il faudrait aussi 12 registres et les multiplier par le nombre de commandes à répéter : c'est une énorme modification et le résultat ne tiendrait plus dans un Uno. Il y aurait peut-être même un risque sur les performances.
Donc forget it et gère les répétitions comme tu le fais déjà.
Tony04:
Bonjour Dominique,
réponse claire et sans appel comme toujours, merci à toi et bon courage pour Orléans où je ne pourrai pas me rendre car je suis en cure à Digne les Bains.
Amicalement
Antoine
Thierry:
La non répétition des fonctions fait partie de la norme DCC, la conservation de cette info est à la charge des décodeurs pour des micro-coupures. Malheureusement, si la machine n'est pas équipée avec des condensateurs, dès que l'on 'plante un choux' l'info est perdue.
La solution de renvoyer périodiquement les fonctions est possible, le problème est d'identifier le bon moment...
L'autre solution me parait pourtant acceptable. Utiliser deux registres par machine, avec un registre pour la vitesse et l'autre pour les fonctions, ça marche. Par contre il faut supporter de n'avoir que six machines à piloter. C'est la stratégie que j'ai employée dans DcDccNanoController, sachant que c'est fait pour un Nano et donc pour une toute petite centrale.
Navigation
[#] Page suivante
[*] Page précédente
Utiliser la version classique